Xlsxwriter 柱形图数据标签百分比 属性 无效

Xslxwriter column chart data labels percentage property not working

我正在通过使用 python (3.5.3) pandas(0.20.1) 创建表格并在 Excel (2016) 中为报告创建一些柱形图和图表与 xlsxwriter (0.9.6)。我想用值相对于所有值之和的百分比来标记每一列,如下图所示: Desired Output Chart

根据我对 Xslxwriter 文档的理解,我只需要在向图表添加系列时包含 'data_labels':{'percentage': True} 属性,就像我在以下代码中所做的那样:

df = pandas.DataFrame(data=[1,2,3,4,5],index=['a','b','c','d','e'])
writer = pandas.ExcelWriter('C:/Users/Name_A_Place/sandbox.xlsx')
df.to_excel(writer)
wrkbk = writer.book
wrksht = writer.sheets['Sheet1']
chrt = wrkbk.add_chart({'type':'column'})

chrt.add_series({'categories': '=Sheet1!A2:A6',
                 'values': '=Sheet1!B2:B6',
                 'data_labels': {'percentage':True,
                                 'font': {'rotation':-45}},
                 })

wrksht.insert_chart("E1",chrt)
writer.save()

但是,此代码创建了一个没有标签的图表:Actual Output Chart。

我是不是误解了百分比数据标签 属性 的工作原理?

我一直在通过创建一个单独的百分比列并使用该列中的值用 'data_labels': {'value': True} 属性 标记来解决这个问题,但是如果有人可以解释为什么我的代码没有产生我想要的输出,我将不胜感激。

我认为您只是遇到了 Excel 的限制,这些限制在 XlsxWriter documentation. If you open up Excel and create the charts by hand you'll notice that "percentage" option for data labels is not present for bar or column charts (but is for pie and perhaps others). You'll need to continue to use data labels by using separate cells ("value from cells"). I've opened an issue on XlsxWriter GitHub 中没有明确记录,试图改进文档。

带有百分比数据标签选项的饼图

没有百分比数据标签选项的柱形图

百分比 属性 用于将数据标签显示为系列的百分比。主要用于饼图:

import pandas as pd
df = pd.DataFrame(data=[1,2,3,4,5],index=['a','b','c','d','e'])
writer = pd.ExcelWriter('C:/Users/Name_A_Place/sandbox.xlsx')
df.to_excel(writer)
wrkbk = writer.book
wrksht = writer.sheets['Sheet1']
chrt = wrkbk.add_chart({'type':'pie'})

chrt.add_series({'categories': '=Sheet1!A2:A6',
                 'values': '=Sheet1!B2:B6',
                 'data_labels': {'percentage':True,
                                 'font': {'rotation':-45}},
                 })

wrksht.insert_chart("E1",chrt)
writer.save()