Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Xslxwriter柱形图数据标签百分比属性不工作_Python_Excel_Pandas_Charts_Xlsxwriter - Fatal编程技术网

Python Xslxwriter柱形图数据标签百分比属性不工作

Python Xslxwriter柱形图数据标签百分比属性不工作,python,excel,pandas,charts,xlsxwriter,Python,Excel,Pandas,Charts,Xlsxwriter,通过使用python 3.5.3 pandas0.20.1创建表格和使用xlsxwriter 0.9.6创建表格和图表,我正在Excel 2016中为报表创建一些列图表。我想用值相对于所有值总和的百分比来标记每列,如下图所示: 根据我对Xslxwriter文档的理解,当我向图表中添加一个系列时,我只需要包括“data_labels”:{“percentage”:True}属性,就像我在以下代码中所做的那样: df = pandas.DataFrame(data=[1,2,3,4,5],inde

通过使用python 3.5.3 pandas0.20.1创建表格和使用xlsxwriter 0.9.6创建表格和图表,我正在Excel 2016中为报表创建一些列图表。我想用值相对于所有值总和的百分比来标记每列,如下图所示:

根据我对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()
但是,此代码创建了一个没有标签的图表:

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


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

我认为您只是遇到了Excel的局限性,而这些局限性在文档中没有明确记录。如果打开Excel并手动创建图表,您会注意到数据标签的百分比选项不适用于条形图或柱形图,而适用于饼图和其他图表。您需要继续使用数据标签,方法是使用独立于单元格的单元格值。我打开了一个打开的窗口,尝试改进文档

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


不带百分比数据标签选项的柱状图

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

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