2012-08-25 851 views
8

Estoy trazando algunos datos en un Tkinter FigureCanvasTkagg usando matplotlib. Necesito borrar la figura donde grafico de datos y dibujar nuevos datos cuando se presiona un botón.Cómo actualizar el contenido de un FigureCanvasTkAgg

Aquí es la parte el trazado del código (hay una clase de aplicación definido antes):

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

¿Cómo se actualiza el contenido de un lienzo tales?

+0

¿Está la incrustación de este lienzo en alguna aplicación GUI, o simplemente que utilizando la funcionalidad pyplot/pylab? – BrenBarn

+0

está incrustado en una aplicación GUI – Copo

Respuesta

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

esperanza esto ayuda

+0

Gracias. Esto debe marcarse como la respuesta. –

Cuestiones relacionadas