我有一个包含6个选项卡(工作表)的excel文件。每个工作表都具有相同的结构并包含两列 - 第1列包含品牌名称,第2列包含与每个品牌对应的值。对于excel文件中的每张表格,我想制作一个饼图,显示每个品牌的%份额。xlsxwriter - Excel饼图图例 - python
你可以用它来运行该脚本上是here
我写的代码非常简单,并生成图表的例子xls文件。问题在于图表的图例需要序列号名称而不是品牌的名称。
import pandas as pd
import xlsxwriter as excel
df = pd.read_excel("/Users/jack/Documents/python-pptx/filename", sheetname=None)
workbook = excel.Workbook('/Users/jack/Documents/python-pptx/chart_pie.xlsx')
for sheetname, data in df.iteritems():
if len(data) > 0:
worksheet = workbook.add_worksheet(sheetname)
chart = workbook.add_chart({'type': 'pie'})
worksheet.write_column('A1', data['Brand'])
worksheet.write_column('B1', data['Share_of_interactions'])
chart.add_series({'categories': '='+sheetname+'!$A$1:$A$'+str(len(data)),
'values': '='+sheetname+'!$B$1:$B$'+str(len(data)),
'name': '='+sheetname+'!$A$1:$A$'+str(len(data))})
## insert chart into the worksheet
worksheet.insert_chart('C3', chart)
## Close the workbook
workbook.close()
以下是图表的屏幕截图:
如果在图表的传说1,2,3注意到..。 。 7。它实际上应该是说品牌名称。如xlsxwriter
- http://xlsxwriter.readthedocs.io/chart.html文档中所述,我已将名称参数添加到chart.add_series
。任何帮助将非常感激。
介意分享您的数据帧的样本'df'? –
@JulienMarrec让我把它放在一起,并分享它。 – vagabond
我已经分享了一个excel文件的链接。您可以使用它来运行该脚本。 – vagabond