如何解决使用python-pptx
我正在尝试使用python-pptx
模块在同一张图上绘制多个折线图。这是我的数据:
month desc value
201911 a 1164
201912 a 971
202001 a 1125
202005 b 1549
202005 a 1038
202006 b 1244
202006 a 1475
202007 a 960
month
列的范围可以是201910 to 202008
。
我用a
为b
和month on X axis
desc列值绘制折线图。
代码如下:
chart_data = ChartData()
cat=list(data["month"].unique())
chart_data.categories = cat
data=data.sort_values(['month'],ascending=[True])
for i in list(data["desc"].unique()):
chart_data.add_series(i,tuple(data[data['desc']==i]['value']))
x,y,cx,cy = Inches(1),Inches(1),Inches(9),Inches(6)
chart = slide.shapes.add_chart(XL_CHART_TYPE.LINE,x,cy,chart_data).chart
正如我们在desc列中看到的a
的值和b
的值不同。
该图给出了x轴和y轴值的错误对齐方式。
b
的绘图从201911
开始...但是它应该从202005
开始。该如何纠正?
解决方法
您需要使用None
作为您不想绘制的任何点的值。我看起来您的数据检索只是 omits 丢失的数据点。您需要获取它,以便类别序列和值序列(对于每个系列)具有相同的长度并按位置对齐。
赞:
categories = ("Jan","Feb","Mar")
series_values = (1,2,3)
如果缺少1月和2月的值,请发送:
categories = ("Jan","Mar")
series_values = (3)
将为您提供示例中的图表。它需要的是:
categories = ("Jan","Mar")
series_values = (None,None,3)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。