gpt4 book ai didi

python - Matplotlib 无法识别属性 set_xdata。

转载 作者:太空宇宙 更新时间:2023-11-03 11:04:20 25 4
gpt4 key购买 nike

引用this post :我一直在尝试运行以下代码来绘制和实时更新图表。但是,每次尝试运行该函数时,都会出现以下错误:AttributeError: 'list' object has no attribute 'set_xdata'

函数的其余部分如下所示:

def getData(self):
self.data = random.gauss(10,0.1)
self.ValueTotal.append(self.data)
#With value total being a list instantiated as ValueTotal = []
self.updateData()

def updateData(self):

if not hasattr(self, 'line'):
# this should only be executed on the first call to updateData
self.widget.canvas.ax.clear()
self.widget.canvas.ax.hold(True)
self.line = self.widget.canvas.ax.plot(self.ValueTotal,'r-')
self.widget.canvas.ax.grid()
else:
# now we only modify the plotted line
self.line.set_xdata(np.arange(len(self.ValueTotal)))
self.line.set_ydata(self.ValueTotal)

self.widget.canvas.draw()

虽然此代码源自 sebastianJake French我没有成功实现这个。我做错了什么吗?是什么导致了此错误,我该如何解决?

这仅用于示例,不会复制到我的代码中。我只是将它用作引用 Material ,并认为这是与社区交流我的问题的最简单方式。我不相信以前的代码。

最佳答案

作为Joe Kington指出:plot 返回您想要第一个元素的艺术家列表:

self.line = self.widget.canvas.ax.plot(self.ValueTotal,'r-')[0]

所以,取第一个列表元素,这是实际的行。

复制此行为的最小示例:

l = plt.plot(range(3))[0]
l.set_xdata(range(3, 6))

l = plt.plot(range(3))
l.set_xdata(range(3, 6))

第一个运行良好,第二个给出 AttributeError。

关于python - Matplotlib 无法识别属性 set_xdata。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24309596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com