使用PythonPPTX更新条形图

问题描述

我正在尝试仅使用一个值来更新PowerPoint甲板中的现有条形图,并不断收到此错误消息:当我尝试添加数据系列时,“ TypeError:'numpy.float64'对象不可迭代”。这张幻灯片上还有另一个条形图,该条形图在数据系列中有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)

解决方法

作为.add_series()的第二个参数提供的值必须是可迭代的,这意味着类似于列表或元组。如果改为提供标量值,例如单独提供一个数字(不在列表内),则会出现所提到的错误。在一般情况下,系列的值是序列。因此,如果只有一个值,则它必须是一个 list (或 tuple 或一维 ndarray ,或者可能是 iterator )包含该单个值。

如果slide_8_data.loc[...周围的括号是为了使其成为一个元组,则需要在末尾添加一个逗号(Python中单值元组的特殊情况)。 (42,)是一个包含单个值42的元组。 (42)只是42,括号内没有特殊用途(无需进行运算符优先级分组)。