首页 > 解决方案 > 使用 PythonPPTX 更新条形图

问题描述

我正在尝试仅使用一个值更新 powerpoint 平台中的现有条形图,并在尝试添加数据系列时不断收到此错误消息:“TypeError: 'numpy.float64' object is not iterable”。这张幻灯片上还有另一个条形图,它在数据系列中有 2 个值,并且工作得非常好。有人知道如何只用一个数据点更新条形图吗?

chart3=slide_8.shapes[22].chart
chart3=CategoryChartData()
chart3.data.categories=["TV"]
chart3.data.add_series=("Frequency",(slide_8_data.loc["TV Frequency"]["Value"]))
chart3.replace_data(chart3_data)

标签: pythonpython-pptx

解决方案


作为第二个参数提供的值.add_series()需要是可迭代的,这意味着类似于列表或元组。如果您改为提供标量值,例如单独的数字(不在列表中),那么您会收到您提到的错误。在一般情况下,一个系列的值是一个序列。因此,如果它只是一个单一的值,它需要是一个包含该单一值的列表(或元组或一维ndarray,或者可能是一个迭代器)。

如果括号周围slide_8_data.loc[...是为了使它成为一个元组,你需要一个逗号结尾(Python中单值元组的特殊情况)。(42,)是一个包含单个值的元组42(42)只是42在它周围加上括号,没有特别有用的原因(没有要进行的运算符优先级分组)。


推荐阅读