Python XlsxWriter - 饼图
饼图 是将单个数据系列表示为一个圆圈,圆圈被分成与系列中的每个数据项相对应的切片。 在饼图中,每个切片的弧长与其代表的数量成正比。 在下面的工作表中,产品的季度销售数据以饼图的形式显示。
使用 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 的 Chart 对象已声明,单元格区域 B1:D1 用作 add_series() 方法的值参数和季度(Q1、Q2 , Q3 和 Q4) 在 A 列中是类别。
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()
输出
看看上面程序生成的饼图。
圆环图
圆环图 是饼图的一种变体,中间有一个洞,它以圆弧而非切片的形式显示类别。 两者都使部分与整体的关系一目了然。 只需将图表类型更改为 doughnut。
chart1 = workbook.add_chart({'type': 'doughnut'})
上面例子中数据的圆环图如下 −

