xlwings 라이브러리를 이용하면 코드 몇 줄로 그래프를 그릴 수 있습니다. 매번 작성해야 되는 보고서 스타일이 있다면 그래프 그리기도 자동화할 수 있습니다.
샘플 데이터를 만들겠습니다. 2020년 1월 1일부터 5일 까지의 가상의 치킨 판매량입니다.
import pandas as pd
data = {'date': ['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04', '2020-01-05'],
'amount': [14, 20, 16, 30, 20]}
df = pd.DataFrame(data)
df
# >>> date amount
# >>> 0 2020-01-01 14
# >>> 1 2020-01-02 20
# >>> 2 2020-01-03 16
# >>> 3 2020-01-04 30
# >>> 4 2020-01-05 20
xlwings 라이브러리로 새 통합 문서 만들기
import xlwings as xw
wb = xw.Book()
sht1 = wb.sheets[0]
sht1.name = 'Graph'
샘플 데이터 입력하기
sht1.range('A1').options(index=False).value = df
xlwings로 차트를 그리는 순서
엑셀 차트를 그리는 방법은 다음과 같습니다.
- 빈 차트를 그린다.
- 차트의 데이터를 선택한다.
- 차트의 제목, 크기, 종류 등 원하는 설정을 추가한다.
지금부터 순서대로 그려보겠습니다.
1. 빈 차트 그리기
chart = sht1.charts.add()
2. 차트의 데이터 선택하기
A1:B6 셀 범위에 입력했던 샘플 데이터를 선택하겠습니다.
chart.set_source_data(sht1.range('B2').expand())
3. 차트 설정 추가하기
차트 제목 추가
아쉽지만 excel의 모든 기능을 xlwings에서 지원하지는 않습니다. 차트 제목도 그 중 하나입니다. 하지만 다행히도 xlwings에서는 api 속성을 이용하여 VBA 기능을 사용할 수 있습니다. VBA 기능에 대한 내용은 링크를 참조해주세요.
chart.api[1].HasTitle = True
chart.api[1].ChartTitle.Text = '일별 판매량'
차트 크기 조절하기
chart.height = 200
chart.width = 500
범례 설정하기
# 범례를 켜고 끕니다.
chart.api[1].HasLegend = False
차트 종류 변경하기
api 속성을 이용해 차트 종류를 변경하고 싶다명 링크를 참조해주세요.
# 꺽은선형 차트로 바꿔줍니다.
chart.chart_type = 'line'
# api 속성을 이용할 수도 있습니다
# chart.api[1].ChartType = 4
차트 위치 변경하기
차트가 데이터를 가리고 있습니다. 차트 위치가 C1부터 시작하도록 이동시키겠습니다.
chart.top = sht1.range('C1').top
chart.left = sht1.range('C1').left
-이 글은 아나콘다(Anaconda3)가 설치된 환경을 기준으로 작성되었습니다.