xlsxwriter 도넛형 차트 그리기

2023. 11. 29. 20:38개발/Xlsxwriter

728x90
반응형
  • XlsxWriter로 도넛형 차트 그리기
  • 제목 도넛 안쪽에 배치
import xlsxwriter

workbook = xlsxwriter.Workbook('chart_doughnut.xlsx')
worksheet = workbook.add_worksheet()

chart = workbook.add_chart({'type': 'doughnut'})
chart2 = workbook.add_chart({'type': 'doughnut'})
chart3 = workbook.add_chart({'type': 'doughnut'})

data = [
    [1, 2, 3, 4, 5],
    [2, 4, 6, 8, 10],
    [3, 6, 9, 12, 15],
]

worksheet.write_column('A1', data[0])
worksheet.write_column('B1', data[1])
worksheet.write_column('C1', data[2])

chart.add_series({
    'values': '=Sheet1!$A$1:$A$5', # 데이터 범위
    'hole': 70, # 도넛의 구멍 크기
})
chart2.add_series({
    'values': '=Sheet1!$B$1:$B$5',
    'hole': 75,
    'data_labels': {'percentage': True}, # 데이터 라벨 표시

})
chart3.add_series({
    'values': '=Sheet1!$C$1:$C$5',
    'hole': 75,
    'data_labels': {'percentage': True},
})

chart3.set_title({
    'name': '도넛 차트', # 차트 제목
    'name_font': {'size': 14, 'bold': True}, # 제목 폰트
    'overlay' : True, # 차트가 겹쳐 보이게 설정
    'layout' : { # 차트 제목 위치 설정
        'x': 0.4,
        'y': 0.4,    
    }
})

chart2.set_legend({'position': 'top'}) # 범례 위치 설정
chart3.set_legend({'position': 'bottom'}) # 범례 위치 설정

worksheet.insert_chart('A7', chart)
worksheet.insert_chart('I7', chart2)
worksheet.insert_chart('Q7', chart3)


workbook.close()