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
广告

© . All rights reserved.