Python XlsxWriter 饼图


A 饼形图 是将单个数据系列表示为一个圆圈,该圆圈被分成与系列中的每个数据项对应的切片。在饼图中,每个切片的弧长与其表示的数量成正比。在下面的工作表中,产品的季度销售数据以饼图的形式显示。

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 用作值参数 添加系列() 方法和 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'})

In the 饼形图 , 我们可以用 数据标签 属性来表示每个饼图的百分比值,通过设置 百分比=真 .

例子

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

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

甜甜圈图


The 甜甜圈图 是饼图的一种变体,其中心有一个孔,它将类别显示为弧线而不是切片。两者都使部分对整体的关系一目了然。只需将图表类型更改为 doughnut .

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

上例中数据的圆环图如下:

Doughnut Chart