가이드라인

데이터를 차트로 시각화하는 방법

차트그래프를 활용하면 데이터를 보다 직관적으로 이해할 수 있도록 시각화할 수 있습니다.

물론 단순한 데이터를 다룰 때는 엑셀의 기능을 활용해 차트를 직접 그리는 것이 빠릅니다.

하지만 대규모의 데이터, 또는 자주 업데이트되는 데이터를 다룰 때는 프로그램으로 차트 생성을 자동화하는 것이 훨씬 효율적입니다.

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 모듈에서 더 자세히 알아볼 수 있습니다.

Mission
0 / 1

다음 중 빈칸에 들어갈 가장 적절한 객체는 무엇일까요?

openpyxl에서 차트를 생성하기 위해 데이터 범위와 카테고리를 참조할 때 사용하는 객체는 입니다.
Workbook
LineChart
Reference
BarChart

가이드라인

AI 튜터

배포

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

실행 결과

결과물

문서가 비어 있습니다.

코드를 실행해보세요.