如何使用xlsxwriter

时间:2019-06-25 13:04:23

标签: python excel pandas dataframe xlsxwriter

我正在尝试使用具有python3和pandas的xlsxwriter在excel中创建图。如何让xlsxwriter将pubyear列用于x_axis值?

我可以使用matplotlib成功绘制,但是必须制作excel图。

此代码

n [248]: df1.describe
Out[248]: 
<bound method NDFrame.describe of          africa
pubyear        
2018      57371
2017      70838
2016      66250
2015      58572
2014      52453
2013      46733
2012      42521
2011      38851
2010      33463
2009      29603
2008      25947
2007      22573
2006      19188
2005      16701>

writer = pd.ExcelWriter('/tmp/pandas_simple.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')
workbook  = writer.book
worksheet = writer.sheets['Sheet1']
chart = workbook.add_chart({'type': 'column'})

# Configure the series of the chart from the dataframe data.
chart.add_series({'values': '=Sheet1!$D$1:$D$15'})
chart.set_x_axis({'name': 'Pubyear', 'min': '=Sheet1!$A$2', 
                  'max':  '=Sheet1!$A$14', 
                  "date_axis" : "=Sheet1!$A$2:$A15$" })
chart.set_y_axis({'name': 'Output'})
worksheet.insert_chart('I2', chart)

writer.save()


在电子表格中生成了包含此数据的文件,其中pubyear在A列中,非洲在B列中:

  A       B
pubyear africa
2018    57371
2017    70838
2016    66250
2015    58572
2014    52453
2013    46733
2012    42521
2011    38851
2010    33463
2009    29603
2008    25947
2007    22573
2006    19188
2005    16701

该图显示了一个条形图,其中 x轴:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

我希望将A列中的pubyear用作x标签。

1 个答案:

答案 0 :(得分:1)

添加系列时,您会同时添加类别(出版年份)

chart.add_series({'categories':'=Sheet1!$A$2:$A$15'
                   'values': '=Sheet1!$B$2:$B$15'})