使用 python-pptx 绘制多折线图时如何处理缺失的 x 轴值

How to handle missing x-axis values when plotting multiple line charts using 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

我用 month on X axis.

ab desc colum 值绘制折线图

代码如下:

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, y, cx, cy, chart_data).chart

我们可以看到 desc 列中 a 的值与 b 中的值不同。

该图给出了 x 轴和 y 轴值的错误对齐。

b 的情节从 201911 开始……但是它应该从 202005 开始。如何纠正?

您需要使用 None 作为您不想绘制的任何点的值。我看起来你的数据检索只是 忽略了 缺失的数据点。您需要获取它,以便类别序列和值序列(对于每个系列)长度相同并按位置对齐。

喜欢:

categories = ("Jan", "Feb", "Mar")
series_values = (1, 2, 3)

如果缺少 1 月和 2 月的值,发送:

categories = ("Jan", "Feb", "Mar")
series_values = (3)

将为您提供与示例中的图表类似的图表。它需要的是:

categories = ("Jan", "Feb", "Mar")
series_values = (None, None, 3)