2012-08-25 28 views
8

我使用matplotlib來繪製Tkinter FigureCanvasTkagg中的一些數據。 我需要清除繪圖數據,並在按下按鈕時繪製新數據。如何更新FigureCanvasTkAgg的內容

這裏是代碼的一部分繪製(有之前定義的App類):

self.fig = figure() 
    self.ax = self.fig.add_subplot(111) 
    self.ax.set_ylim(min(y), max(y))  

    self.line, = self.ax.semilogx(x, y, '.-') #tuple of a single element 
    self.canvas = FigureCanvasTkAgg(self.fig, master=master) 
    self.ax.semilogx(x, y, 'o-') 
    self.canvas.show() 
    self.canvas.get_tk_widget().pack(side='top', fill='both', expand=1) 
    self.frame.pack() 

如何更新這樣的畫布的內容是什麼?

+0

你嵌入這個帆布到一些GUI應用程序,或者你只是使用pyplot/pylab功能? – BrenBarn

+0

它嵌入在一個GUI應用程序 – Copo

回答

5
#call the clear method on your axes 
self.ax.clear() 

#plot the new data 
self.ax.set_ylim(min(newy), max(newy)) 
self.ax.semilogx(newx, newy, 'o-') 

#call the draw method on your canvas 
self.canvas.draw() 

希望這有助於

+0

謝謝。這應該被標記爲答案。 –