替换饼图数据会导致损坏

2024-04-26 10:16:56 发布

您现在位置:Python中文网/ 问答频道 /正文

用python pptx库替换特定饼图中的数据会导致错误。但是,替换同一幻灯片上另一个饼图中的数据不会导致任何问题。你知道吗

如果我只替换第二个饼图(我在更改时遇到错误的饼图)中的数据,它仍然存在相同的问题。就我所知,它没有理由这么做,因为我试图放入其中的数据与已经存在的数据是相同的。我使用的是运行python3.7.3和python-pptx最新版本的windows10enterprise(版本10.0.15063内部版本15063)。你知道吗

不过,替换第一个饼图上的数据效果很好,所以我不知道问题出在哪里。他们都在同一张幻灯片上。你知道吗

chart = slide.shapes[-2].chart
chart_data = ChartData()
ctg = []
for i in mcdata:
    ctg.append(i+" - "+str(mcdata[i]))
chart_data.categories = tuple(ctg)
chart_data.add_series("",tuple([float(mcdata[i]) for i in mcdata]))
chart.replace_data(chart_data)

mcdata是一个如下所示的字典:

{"total": 268788, "rejected": 13103, "Virus Signature Detection": 416, "Anti-Spoofing Header Lockout": 66, "Anti-Spoofing Lockout": 470}

在我要替换其中数据的饼图中,chart.plots[0].categories如下所示:

{"Virus Signature Detection":416, "Anti-Spoofing Header Lockout": 66 ...}

chart.series[0].values看起来像这样:

(416.0, 66.0, ...)

当我打开演示文稿时,会收到错误消息“PowerPoint发现中的内容有问题”输出.pptx. PowerPoint可以尝试修复演示文稿。如果您信任演示文稿的来源,请单击“修复”

当我单击“修复”时,它会显示另一条消息“PowerPoint无法读取中的某些内容”输出.pptx[修复]并将其移除。请检查您的演示文稿,看看其余部分是否正常。”整张幻灯片是空白的。你知道吗


Tags: 数据版本fordata错误chart幻灯片文稿