[파이썬 ] 데이터프레임 엑셀 시트 / 차트 만들기 - pandas / xlsxwriter 모듈

2021. 1. 14. 15:20자동화

728x90

 

 

 

import pandas as pd

data = {'name' : [ 'Jerry', 'Riah', 'Paul'],
        'java' : [ 91, 98, 85],
        'basic' : [ 81, 63, 83],
        'c++' : [ 65, 83, 98],
        }

df = pd.DataFrame(data)
df.set_index('name', inplace=True)   # name 열을 인덱스로 지정
print(df)

#---------------------------------------------------------------------------------
# 데이터 작업
writer = pd.ExcelWriter('test_chart.xlsx', engine='xlsxwriter')  
df.to_excel(writer, sheet_name='Sheet1')             # 시트에 데이터 전달

#---------------------------------------------------------------------------------
# 차트 작업
chart = writer.book.add_chart({'type': 'bar'})      # 가로형막대 차트 객체 생성

name_a = ['Sheet1', 1, 0]             # (1, 0)
name_b = ['Sheet1', 2, 0]             # (2, 0)
name_c = ['Sheet1', 3, 0]             # (3, 0)

categories = ['Sheet1', 0, 1, 0, 3]   # (0, 1) 에서 (0, 3) 까지
values_a = ['Sheet1', 1, 1, 1, 3]     # (1, 1) 에서 (1, 3) 까지
values_b = ['Sheet1', 2, 1, 2, 3]     # (2, 1) 에서 (2, 3) 까지
values_c = ['Sheet1', 3, 1, 3, 3]     # (3, 1) 에서 (3, 3) 까지

chart.add_series({'name': name_a, 'categories': categories, 'values': values_a})
chart.add_series({'name': name_b, 'categories': categories, 'values': values_b})
chart.add_series({'name': name_c, 'categories': categories, 'values': values_c})
chart.set_y_axis({'min': 0, 'max': 3, 'major_unit': 1, 'reverse': True}) 
                                  # 축 주눈금선 크기 : 1 , 축 반전 : True
writer.sheets['Sheet1'].insert_chart(0, 5, chart)   # 차트삽입 - 위치(0, 5)

#---------------------------------------------------------------------------------
# 엑셀파일 저장 
writer.save()  

 

 

 


 

  ◎ 생성 가능한 차트 종류

 

line 꺾은선형 차트
area 영역형 차트
radar 방사형
bar 가로막대형
column 세로막대형
doughnut 도넛형
pie 원형
scatter 분산형

 

 

 

반응형