본문 바로가기
프로그램

[파이썬] 문제 : 파일을 읽어 2번째 줄 데이터로 Bar Chart 그리기

by 오디세이99 2023. 11. 30.
728x90
반응형
'''
a.csv 파일
연도,a,b,c,d
2005,3699,6610,5500,7800
2006,3840,7459,8100,6400
'''

import pandas as pd
import matplotlib.pyplot as plt

# f = open('a.csv','r',encoding='UTF-8')
f = open('a.csv','r')                   # 파일 읽기
lines = f.readlines()                   # 라인 읽기
header = []                             # 헤더 저장 위한 변수
data = []                               # 데이터 저장 위한 변수
for i, line in enumerate(lines):       # 라인별로 읽기. 라인수 확인위해 enumerate 사용. i가 라인넘버가 됨
    tmp = line.replace('\n','')         # 라인 데이터의 라인바꿈 문자 '\n' 제거
    tmp = tmp.split(',')                # ','로 분리
    if i == 0:                         # 0번은 헤더
        header = tmp                    # ['연도', 'a', 'b', 'c', 'd']
    if i == 2:                          # 2번째 라인
        data = list(map(int, tmp[1:]))   # 0번은 년도가 되므로 제외하고 나머지는 정수로 변환. [3840, 7459, 8100, 6400]
    

plt.rcParams['font.family'] = 'NanumGothic'     # 한글사용을 위한 폰트 지정
plt.bar(header[1], data[0])
plt.bar(header[2], data[1])
plt.bar(header[3], data[2])
plt.bar(header[4], data[3])
plt.title('bar chart', fontsize=16)              # 그래프 제목
plt.xlabel('데이터', fontsize=12)                 # X 축 제목
plt.ylabel('측정치', fontsize=12)
plt.show()

728x90
반응형

댓글