본문 바로가기

카테고리 없음

[파이썬 엑셀 자동화] 파이썬 xlwings로 엑셀 다루기: 엑셀 차트, 엑셀 그래프 그리기

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)가 설치된 환경을 기준으로 작성되었습니다.