2017-06-16 16 views
2

私は、python(3.5.3)pandas(0.20.1)で表を作成し、xlsxwriterで表とグラフを作成することにより、Excel(2016) 0.9.6)。私は、この画像のようにすべての値の合計に対する値の割合で各列をラベル付けしたいと思います:Xslxwriterドキュメントの私の理解に基づいて Desired Output ChartXslxwriterの縦棒グラフのデータラベルのパーセントプロパティが機能しない

、私は必要'data_labels':{'percentage': True}プロパティが含まれている場合にI私は、次のコードでそうであるように、グラフに系列を追加:Actual Output Chart

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

しかし、このコードは、ラベルなしでチャートを作成します。

%データラベルのプロパティの仕組みを誤解していますか?

私は別のパーセンテージ列を作成し、その列の値を使って​​プロパティでラベルを付けることでこの問題を解決しましたが、私のコードが私が望む出力が得られなかった理由を説明できれば、それ。

答えて

1

私はあなたがちょうどXlsxWriter documentationで明確に文書化されていないExcelの制限に対してぶつかっていると思います。 Excelを開いて手作業でグラフを作成すると、棒グラフまたは縦棒グラフにはデータラベルの「パーセント」オプションが表示されません(ただし、円やその他の場合)。別のセル(「セルからの値」)を使用してデータラベルを引き続き使用する必要があります。 XlsxWriter GitHubissueを開いて、ドキュメントを改善しました。

率データラベルオプション付き円グラフExcel pie chart with percentage data label

割合プロパティはシリーズのためのパーセントとしてデータラベルの表示をオンにするために使用されていない割合のデータラベルオプションExcel column chart with no percentage data label

1

付き縦棒グラフ。主に円グラフに使用されます。

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() 
関連する問題