본문 바로가기
프로그램

[파이썬] 문제 : 숙박시설 csv 파일 읽어 bar chart그리기

by 오디세이99 2023. 5. 6.
728x90
반응형

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

def add_value_label(x_list,y_list):           # bar chart에 값을 text로 표시
    for i in range(1, len(x_list)+1):
        plt.text(i-1,y_list[i-1],y_list[i-1])

df = pd.read_csv('travel_1.csv', header=0, encoding='utf-8')

# df2 = df[['호텔','친척 또는 친구집','유스호스텔/게스트하우스/여관','콘도/펜션/레지던스인','기타']]
df2 = df.groupby(['통계분류(2)']).sum()
df2 = df2.drop(columns='사례수')

fig = plt.figure(figsize=(14, 6))            # plot 크기 설정
plt.rcParams['font.family'] = 'NanumGothic'  # 한글 가능하도록 폰트 설정
f_size = 16                                  # 제목 폰트 크기
bar_width = 0.1
x_column = 'X축'
y_column = 'Y축'
x_label = list(df2.columns)                  # 데이터명
x = np.arange(len(x_label))
y = list(df2.iloc[0])                        # 데이터
y2 = list(df2.iloc[1])                       # 데이터
plt.bar(x, y, bar_width, alpha=0.4, label='남성')  # bar chart 그리기
add_value_label(x, y)                        # 값 표시
plt.bar(x+bar_width, y2, bar_width, label='여성')
add_value_label(x+bar_width, y2)             # 값 표시
plt.xticks(x, x_label)
plt.title("숙박시설 비율",fontsize=f_size)   # 제목 쓰기
plt.legend()
plt.show()

travel_1.csv
0.00MB

728x90
반응형

댓글