-1

ラウンド 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()

助けてくれてありがとう!

4

2 に答える 2

0

あなたのコメントからのコードを考えると:

self.plot_data = self.axes.plot( self.data[0], linewidth=1, color=(1, 1, 0), )
self.axes.plot( self.data[1], linewidth=1, color=(1, 2, 0), )

plotあなたの問題は、それが生成する行オブジェクトのリストを返すという事実にあります。1 本の線を描いているように見えるので、リストの最初の (そして唯一の) 要素を見ていることを確認してください。

また

self.plot_data = self.axes.plot( self.data[0], linewidth=1, color=(1, 1, 0), )[0]

また

self.plot_data[0].set_xdata(np.arange(len(self.data[0])))
于 2013-09-05T21:52:08.480 に答える