Guidelines

데이터λ₯Ό 차트둜 μ‹œκ°ν™”ν•˜λŠ” 방법

차트(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 λͺ¨λ“ˆμ—μ„œ 더 μžμ„Ένžˆ μ•Œμ•„λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

Mission
0 / 1

λ‹€μŒ 쀑 λΉˆμΉΈμ— λ“€μ–΄κ°ˆ κ°€μž₯ μ μ ˆν•œ κ°μ²΄λŠ” λ¬΄μ—‡μΌκΉŒμš”?

openpyxlμ—μ„œ 차트λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄ 데이터 λ²”μœ„μ™€ μΉ΄ν…Œκ³ λ¦¬λ₯Ό μ°Έμ‘°ν•  λ•Œ μ‚¬μš©ν•˜λŠ” κ°μ²΄λŠ” μž…λ‹ˆλ‹€.
Workbook
LineChart
Reference
BarChart

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result

Result

The document is empty.

Try running the code.