Python Xlsxwriter 简明教程

Python XlsxWriter - Pie Chart

pie chart 是单个数据序列在圆环中的表示,这个圆环被分成对应于序列中每个数据项目的切片。在饼图中,每个切片的弧长与它所表示的数量成正比。在以下工作表中,按季度划分的某个产品的销售额以饼图的形式显示。

pie chart of quarterly sales

Working with XlsxWriter Pie Chart

使用 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'})

pie chart 中,我们可以使用 data_labels 属性通过设置 percentage=True 来表示每个饼的百分比值。

Example

生成饼图的完整程序如下 −

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()

Output

看看上述程序生成的饼图。

pie chart of quarterly sales1

Doughnut Chart

doughnut chart 是饼图的一个变体,其中心有一个孔,它以圆弧而不是切片显示类别。两者都使人们一目了然地掌握整体与部分之间的关系。只需将图表类型更改为 doughnut

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

以上示例中数据的环形图显示如下 −

doughnut chart