好的,这是第 2 轮,感谢大家对上一个问题的帮助,但不幸的是,我又回到了开始的地方。当我尝试在该图中添加一条线时,这一切都发生了。传入的数据是来自另一个程序的列表。出于测试目的,我让另一个程序吐出 [100,110]。我想要一条线 100 条,另一条线 110 条。最终,这将是来自 Arduino 的传入数据,这些数据将是实时数据。我不断收到此错误。
AttributeError Traceback (most recent call last)
/Users/Tyler/Desktop/Arduino/Graphing_22.py in on_redraw_timer(self, event)
284 #self.data.extend(self.datagen.next())
285
--> 286 self.draw_plot()
287
288 def on_exit(self, event):
/Users/Tyler/Desktop/Arduino/Graphing_22.py in draw_plot(self)
240 visible=self.cb_xlab.IsChecked())
241
--> 242 self.plot_data.set_xdata(np.arange(len(self.data[0])))
243 #self.plot_data.set_xdata(np.arange([1,1000])
244 self.plot_data.set_ydata(np.array(self.data[1]))
AttributeError: 'list' object has no attribute 'set_xdata'
这是传入数据的代码以及发生错误的位置。
def __init__(self):
wx.Frame.__init__(self, None, -1, self.title)
self.datagen = DataGen()
self.data = self.datagen.next()
#splitting data at '
#self.data = [self.datagen.next().split(",")
self.paused = False
if self.cb_grid.IsChecked():
self.axes.grid(True, color='gray')
else:
self.axes.grid(False)
# Using setp here is convenient, because get_xticklabels
# returns a list over which one needs to explicitly
# iterate, and setp already handles this.
#
pylab.setp(self.axes.get_xticklabels(),
visible=self.cb_xlab.IsChecked())
self.plot_data.set_xdata(np.arange(len(self.data[0])))
#self.plot_data.set_xdata(np.arange([1,1000])
self.plot_data.set_ydata(np.array(self.data[1]))
self.canvas.draw()
谢谢你们的帮助!