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

파이썬 XlsxWriter 모듈로 엑셀 시트에 레이더 차트 그리기

레이더 차트(Radar Chart)는 세 개 이상의 정량 변수를 동일한 시작점에서 방사형으로 뻗어 나가는 축 위에 배치하고, 각 변수의 값을 이어 다각형 형태로 나타내는 다변량 데이터 시각화 기법입니다. 여러 항목 간의 비교나 데이터 패턴 분석에 유용하게 활용됩니다.

준비 사항

XlsxWriter는 외부 라이브러리이므로 아직 설치하지 않았다면 먼저 pip 명령으로 설치해야 합니다.

pip install XlsxWriter

예제 코드

아래 예제에서는 두 개의 데이터 배치(Batch)를 비교하는 레이더 차트를 생성하여 엑셀 파일에 저장합니다.

# xlsxwriter 모듈을 가져옵니다.
import xlsxwriter

# Workbook()은 생성할 파일 이름이라는 필수 인자 하나를 받습니다.
workbook = xlsxwriter.Workbook('chart_radar1.xlsx')

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

# add_format() 메서드로 셀 서식을 지정하는 Format 객체를 생성합니다.
# 여기서는 굵은 글씨(bold) 서식 객체를 만듭니다.
bold = workbook.add_format({'bold': 1})

# 데이터 리스트를 생성합니다.
headings = ['Number', 'Batch 1', 'Batch 2']
data = [
    [2, 3, 4, 5, 6, 7],
    [80, 80, 100, 60, 50, 100],
    [60, 50, 60, 20, 10, 20],
]

# 'A1' 셀부터 굵은 글씨 서식으로 한 행의 데이터를 작성합니다.
worksheet.write_row('A1', headings, bold)

# 각 열의 데이터를 A2 셀부터 순서대로 작성합니다.
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])

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

# add_series 메서드로 차트에 데이터 계열을 추가합니다.
# 첫 번째 계열을 구성합니다.
# 문자열 형태의 범위 참조를 사용합니다.
chart1.add_series({
    'name':       '= Sheet1!$B$1',
    'categories': '= Sheet1!$A$2:$A$7',
    'values':     '= Sheet1!$B$2:$B$7',
})

# 두 번째 계열을 구성합니다.
# 범위를 정의하는 대체 문법 [시트명, 첫 행, 첫 열, 마지막 행, 마지막 열]을 사용합니다.
chart1.add_series({
    'name':       ['Sheet1', 0, 2],
    'categories': ['Sheet1', 1, 0, 6, 0],
    'values':     ['Sheet1', 1, 2, 6, 2],
})

# 차트 제목을 설정합니다.
chart1.set_title({'name': 'Results of data analysis'})

# x축 레이블을 추가합니다.
chart1.set_x_axis({'name': 'Test number'})

# y축 레이블을 추가합니다.
chart1.set_y_axis({'name': 'Data length (mm)'})

# 엑셀 차트 스타일을 설정합니다.
chart1.set_style(11)

# 차트를 워크시트에 삽입합니다.
# 차트의 왼쪽 상단 모서리는 E2 셀에 고정됩니다.
worksheet.insert_chart('E2', chart1)

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

코드 주요 단계 정리

  1. 워크북·워크시트 생성: Workbook()으로 엑셀 파일을 만들고, add_worksheet()로 데이터를 담을 시트를 준비합니다.
  2. 데이터 입력: write_row()로 제목 행을, write_column()으로 각 열의 데이터를 작성합니다.
  3. 차트 객체 생성: add_chart({'type': 'radar'})로 레이더 차트 객체를 만듭니다.
  4. 데이터 계열 추가: add_series()로 차트에 표시할 이름, 범주(categories), 값(values) 범위를 지정합니다. 문자열 참조와 리스트 인덱스 참조 두 가지 방식을 모두 사용할 수 있습니다.
  5. 차트 꾸미기: set_title(), set_x_axis(), set_y_axis(), set_style() 등으로 제목, 축 레이블, 스타일을 지정합니다.
  6. 삽입 및 저장: insert_chart()로 원하는 셀 위치에 차트를 배치한 뒤, close()로 파일을 저장합니다.

코드 실행이 완료되면 chart_radar1.xlsx 파일이 생성되며, 파일을 열면 E2 셀을 기준으로 두 배치의 데이터를 비교하는 레이더 차트가 삽입되어 있는 것을 확인할 수 있습니다.