데이터를 차트로 시각화하는 방법
차트(Chart)를 활용하면 데이터를 보다 직관적으로 이해할 수 있게 시각화할 수 있습니다.
물론, 단순한 데이터를 다룰 때는 엑셀의 기능을 활용해 차트를 직접 그리는 것이 더 빠릅니다.
그러나 대규모 데이터나 자주 업데이트되는 데이터를 다룰 때는 프로그램을 통해 차트 생성을 자동화하는 것이 훨씬 효율적입니다.
openpyxl는 차트를 코드로 생성할 수 있는 유용한 메서드를 제공합니다.
이번 수업에서는 openpyxl을 활용해 엑셀 파일에 차트를 추가하는 방법을 배워보겠습니다.
참고 : 본 수업은
라인 차트와막대 차트를 만드는 방법을 소개합니다. 하지만 openpyxl은 도넛 차트, 파이 차트 등 다양한 차트 유형도 지원합니다.
라인 차트(Line Chart) 생성하기
라인 차트는 시간의 흐름에 따른 데이터 변화를 시각적으로 나타낼 때 자주 사용합니다.
다음은 openpyxl을 사용해 라인 차트를 생성하는 코드 예제입니다.
from openpyxl import Workbook from openpyxl.chart import LineChart, Reference # 새로운 워크북 생성 wb = Workbook() # 활성 시트 선택 ws = wb.active # 데이터 입력 (예: 월별 판매량) data = [ ['월', '판매량'], ['1월', 30], ['2월', 40], ['3월', 50], ['4월', 20], ['5월', 60], ] for row in data: ws.append(row) # 차트 생성 line_chart = LineChart() # 차트 데이터 참조 (B2부터 B6까지) data = Reference(ws, min_col=2, min_row=2, max_row=6) # X축(카테고리) 레이블 참조 (A2부터 A6까지) cats = Reference(ws, min_col=1, min_row=2, max_row=6) # 데이터에 제목 포함하지 않음 line_chart.add_data(data, titles_from_data=False) line_chart.set_categories(cats) line_chart.title = "월별 판매량" line_chart.x_axis.title = "월" line_chart.y_axis.title = "판매량" # 시트에 차트 추가 (D1 셀 위치에) ws.add_chart(line_chart, "A10") # 파일 저장 wb.save("output_file.xlsx")
코드 설명
-
line_chart = LineChart(): 라인 차트 객체를 생성 -
Reference: 차트에 사용할 데이터 범위와 카테고리(월)를 참조 -
line_chart.add_data(data, titles_from_data=False): 차트에 데이터를 추가하고, 데이터에 제목을 포함하지 않음 -
line_chart.set_categories(cats): X축(카테고리) 레이블을 설정 -
line_chart.title: 차트 제목을 설정 -
line_chart.x_axis.title: X축 제목을 설정 -
line_chart.y_axis.title: Y축 제목을 설정 -
ws.add_chart(line_chart, "A10"): 시트에 차트를 추가
위 코드는 간편한 이해를 돕기 위해, data 변수에 월별 판매량 데이터를 리스트로 정의했습니다.
하지만 openpyxl을 사용하면 파일 경로(예: C:/Users/사용자명/Desktop/output_file.xlsx)를 지정해, 엑셀 파일을 직접 불러와 데이터를 읽어올 수 있습니다.
from openpyxl import load_workbook # 엑셀 파일 불러오기 wb = load_workbook("C:/Users/사용자명/Desktop/input_file.xlsx") ws = wb.active # 데이터 읽어오기 data = [] for row in ws.iter_rows(min_row=2, values_only=True): data.append(row)
막대 차트(Bar Chart) 생성하기
막대 차트는 데이터의 크기를 비교할 때 자주 사용하는 차트 유형입니다.
다음은 파이썬 코드로 막대 차트를 생성하는 코드 예제입니다.
from openpyxl import Workbook from openpyxl.chart import BarChart, Reference # 새로운 워크북 생성 wb = Workbook() # 활성 시트 선택 ws = wb.active # 데이터 입력 (예: 월별 수익) data = [ ['월', '수익'], ['1월', 1000], ['2월', 1500], ['3월', 1200], ['4월', 1700], ['5월', 1300], ] for row in data: ws.append(row) # 차트 생성 bar_chart = BarChart() # 차트 데이터 참조 (B2부터 B6까지) data = Reference(ws, min_col=2, min_row=2, max_row=6) # X축(카테고리) 레이블 참조 (A2부터 A6까지) cats = Reference(ws, min_col=1, min_row=2, max_row=6) # 데이터에 제목 포함하지 않음 bar_chart.add_data(data, titles_from_data=False) bar_chart.set_categories(cats) bar_chart.title = "월별 수익" bar_chart.x_axis.title = "월" bar_chart.y_axis.title = "수익" # 시트에 차트 추가 (D1 셀 위치에) ws.add_chart(bar_chart, "A10") # 파일 저장 wb.save("output_file.xlsx")
코드 설명
-
bar_chart = BarChart(): 막대 차트 객체를 생성 -
Reference: 차트에 사용할 데이터 범위와 카테고리(월)를 참조 -
bar_chart.add_data(data, titles_from_data=False): 차트에 데이터를 추가하고, 데이터에 제목을 포함하지 않음 -
bar_chart.set_categories(cats): X축(카테고리) 레이블을 설정 -
bar_chart.title: 차트 제목을 설정 -
bar_chart.x_axis.title: X축 제목을 설정 -
bar_chart.y_axis.title: Y축 제목을 설정 -
ws.add_chart(bar_chart, "A10"): 시트에 차트를 추가
다양한 차트 생성하기
openpyxl는 라인 차트와 막대 차트 외에도 파이 차트(Pie Chart), 도넛 차트(Doughnut Chart), 히스토그램(Histogram) 등 다양한 차트를 형식을 지원합니다.
각 차트 유형은 chart 모듈에서 더 자세히 알아볼 수 있습니다.
이 챕터의 강의 · 파이썬으로 엑셀 업무를 자동화하는 방법
- 1. 오피스 프로그램 반복 업무를 자동화하는 방법
- 2. 업무 자동화에 필요한 파이썬 라이브러리 소개
- 3. 데이터 처리에 특화된 파이썬 라이브러리, Pandas
- 4. 데이터프레임으로 데이터 다루기
- 5. Pandas로 데이터 요약 통계 계산하기
- 6. Pandas로 월별, 제품별 매출 분석하기
- 7. 빈칸 채우기 퀴즈
- 8. 파이썬으로 엑셀 업무 자동화하기
- 9. openpyxl 주요 메서드 알아보기
- 10. 엑셀 파일에 효율적으로 데이터를 입력하는 방법
- 11. 파이썬 코드로 셀의 값을 변경하는 방법
- 12. 글꼴, 배경 색상, 테두리 서식 지정하기
- 13. 셀의 너비와 높이 조정하기
- 14. 칼럼 서식 지정하기
- 15. 데이터를 차트로 시각화하는 방법
- 16. pandas와 openpyxl을 함께 활용하는 방법
- 17. 선택형 퀴즈
- 18. Pandas 및 openpyxl 주요 내용 정리
다음 중 빈칸에 들어갈 가장 적절한 객체는 무엇일까요?
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말