Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python XlsxWriter 모듈로 엑셀 시트에 파이 차트 그리기

파이 차트(Pie Chart)는 원을 여러 조각(slice)으로 나누어 수치 비율을 표현하는 원형 통계 그래프입니다. 각 조각의 호 길이(중심각)는 해당 조각이 나타내는 값에 비례하므로, 전체에서 각 항목이 차지하는 비중을 한눈에 파악할 수 있습니다.

Python의 XlsxWriter 모듈을 사용하면 엑셀 파일 안에 손쉽게 파이 차트를 생성하고 삽입할 수 있습니다. 먼저 다음 명령으로 모듈을 설치하세요.

pip install XlsxWriter

아래 예제는 파이 판매 데이터를 워크시트에 작성한 뒤, 이를 기반으로 파이 차트를 만들어 시트에 삽입하는 전체 과정을 보여줍니다.

전체 예제 코드

# xlsxwriter 모듈 임포트
import xlsxwriter

# Workbook()은 필수 인자로 생성할 파일명을 받습니다.
workbook = xlsxwriter.Workbook('chart_pie.xlsx')

# add_worksheet() 메서드로 워크북에 새 워크시트를 추가합니다.
worksheet = workbook.add_worksheet()

# add_format() 메서드로 셀 서식용 Format 객체를 생성합니다.
# 여기서는 굵게(bold) 서식 객체를 생성합니다.
bold = workbook.add_format({'bold': 1})

# 데이터 리스트를 생성합니다.
headings = ['Category', 'Values']
data = [
    ['Apple', 'Cherry', 'Pecan'],
    [60, 30, 10],
]

# 'A1'부터 굵은 글씨 서식으로 제목 행을 작성합니다.
worksheet.write_row('A1', headings, bold)

# A2, B2부터 시작해 각 열에 데이터를 작성합니다.
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])

# add_chart() 메서드로 워크시트에 추가할 차트 객체를 생성합니다.
# 여기서는 파이(pie) 타입의 차트 객체를 생성합니다.
chart1 = workbook.add_chart({'type': 'pie'})

# add_series 메서드로 차트에 데이터 계열을 추가합니다.
# 형식: [시트이름, 첫 행, 첫 열, 끝 행, 끝 열]
chart1.add_series({
    'name':       'Pie sales data',
    'categories': ['Sheet1', 1, 0, 3, 0],
    'values':     ['Sheet1', 1, 1, 3, 1],
})

# 차트 제목을 설정합니다.
chart1.set_title({'name': 'Popular Pie Types'})

# 엑셀 차트 스타일을 지정합니다. (흰색 테두리와 그림자가 적용된 색상)
chart1.set_style(10)

# 차트를 워크시트에 삽입합니다(오프셋 지정).
# 차트의 왼쪽 상단 모서리가 C2 셀에 고정됩니다.
worksheet.insert_chart('C2', chart1, {'x_offset': 25, 'y_offset': 10})

# 마지막으로 close() 메서드로 엑셀 파일을 닫습니다.
workbook.close()

코드 단계별 설명

1. 워크북과 워크시트 생성

xlsxwriter.Workbook()에 파일명을 전달하면 새 엑셀 파일이 생성됩니다. 이 인자는 생략할 수 없으며, 이후 add_worksheet() 메서드로 실제 데이터를 담을 워크시트를 추가합니다.

2. 데이터 작성

add_format({'bold': 1})로 굵은 글씨 서식 객체를 만든 뒤, write_row()로 제목 행을, write_column()으로 카테고리와 값 데이터를 각 열에 기록합니다.

3. 파이 차트 생성 및 데이터 계열 추가

add_chart({'type': 'pie'})로 파이 차트 객체를 생성하고, add_series()에서 categories(항목명 범위)와 values(값 범위)를 지정합니다. 범위는 시트 이름과 행·열 인덱스 조합으로 표현됩니다.

4. 차트 꾸미기와 삽입

set_title()로 차트 제목을 정하고, set_style(10)로 미리 정의된 엑셀 차트 스타일을 적용합니다. 마지막으로 insert_chart()를 호출하면 차트가 지정한 셀(C2)에 오프셋만큼 떨어진 위치에 배치되며, close()로 파일을 저장하고 닫으면 완료됩니다.