2012-08-25 22 views
8

Ich zeichne einige Daten in einem Tkinter FigureCanvasTkagg mit matplotlib. Ich muss die Abbildung löschen, wo ich Daten grafiere und neue Daten zeichne, wenn eine Taste gedrückt wird.Wie aktualisiere ich den Inhalt eines FigureCanvasTkAgg

Hier ist das Plotten Teil des Codes (es gibt eine App-Klasse definiert vorher):

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() 

Wie aktualisiere ich den Inhalt einer solchen Leinwand?

+0

Werden Sie diese Leinwand in eine GUI-Anwendung einbetten, oder verwenden Sie einfach die pyplot/pylab Funktionalität? – BrenBarn

+0

es ist in eine GUI-App eingebettet – Copo

Antwort

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() 

hoffe, das hilft

+0

Danke. Dies sollte als Antwort markiert werden. –

Verwandte Themen