Python XlsxWriter - 餅圖



餅圖是將單個數據系列表示成圓形,並將圓形分成對應於系列中每個資料項的扇形。在餅圖中,每個扇形的弧長與其表示的數量成正比。在下面的工作表中,產品的季度銷售額以餅圖的形式顯示。

Pie Chart Of Quarterly Sales

使用 XlsxWriter 建立餅圖

要使用 XlsxWriter 以程式設計方式生成上述圖表,我們首先在工作表中寫入以下資料。

headings = ['Category', 'Values']
data = [
   ['Q1', 'Q2', 'Q3', 'Q4'],
   [125, 60, 100, 80],
]
worksheet.write_row('A1', headings, bold)
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])

宣告一個圖表物件,其type=pie,並將單元格範圍 B1:D1 用作add_series()方法的值引數,而 A 列中的季度(Q1、Q2、Q3 和 Q4)是類別。

chart1.add_series({
   'name': 'Quarterly sales data',
   'categories': ['Sheet1', 1, 0, 4, 0],
   'values': ['Sheet1', 1, 1, 4, 1],
})
chart1.set_title({'name': 'Pie Chart of Quarterly Sales'})

餅圖中,我們可以使用data_labels屬性透過設定percentage=True來表示每個扇形的百分比值。

示例

餅圖生成的完整程式如下所示:

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
worksheet = wb.add_worksheet()

headings = ['Category', 'Values']
data = [
   ['Q1', 'Q2', 'Q3', 'Q4'],
   [125, 60, 100, 80],
]
bold=wb.add_format({'bold':True})
worksheet.write_row('A1', headings, bold)
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])

chart1 = wb.add_chart({'type': 'pie'})
chart1.add_series({
   'name': 'Quarterly sales data',
   'categories': ['Sheet1', 1, 0, 4, 0],
   'values': ['Sheet1', 1, 1, 4, 1],
   'data_labels': {'percentage':True},
})
chart1.set_title({'name': 'Pie Chart of Quarterly Sales'})

worksheet.insert_chart('D2', chart1)

wb.close()

輸出

檢視上面程式生成的餅圖。

Pie Chart Of Quarterly Sales1

環形圖

環形圖是餅圖的一種變體,中間有一個孔,它將類別顯示為弧線而不是扇形。兩者都使整體關係一目瞭然。只需將圖表型別更改為doughnut即可。

chart1 = workbook.add_chart({'type': 'doughnut'})

上面示例中資料的環形圖如下所示:

Doughnut Chart
廣告