Figura clara subplots matplotlib python

Escribí una función Python simple para generar una figura de matplotlib. Llamo a plotData varias veces desde una secuencia de comandos separada, pero cada vez que genera una nueva ttwig. Lo que me gustaría es tener siempre una sola gráfica con algo como subplot.clear() para borrar las subplots entre los cambios de datos.

Necesito una forma de identificar la figura desde plotData exterior para poder borrar los gráficos para nuevos datos. ¿Cuál sería la mejor manera de lograr esto?

 ## Plot Data Function def plotData(self): # Setup figure to hold subplots f = Figure(figsize=(10,8), dpi=100) # Setup subplots subplot1=f.add_subplot(2,1,1) subplot2=f.add_subplot(2,1,2) # Show plots dataPlot = FigureCanvasTkAgg(f, master=app) dataPlot.show() dataPlot.get_tk_widget().pack(side=RIGHT, fill=BOTH, expand=1) 

No estoy seguro si entiendo completamente dónde está el problema. Si desea actualizar la ttwig, necesitará una función que haga esto. Yo llamaría a esta función plotData . Antes de eso, también es necesario configurar la ttwig. Eso es lo que tienes actualmente en plotData . Así que vamos a cambiar el nombre de para generatePlot .

 class SomeClass(): ... def generatePlot(self): # Setup figure to hold subplots f = Figure(figsize=(10,8), dpi=100) # Setup subplots self.subplot1=f.add_subplot(2,1,1) self.subplot2=f.add_subplot(2,1,2) # Show plots dataPlot = FigureCanvasTkAgg(f, master=app) dataPlot.show() dataPlot.get_tk_widget().pack(side=RIGHT, fill=BOTH, expand=1) ## Plot Data Function def plotData(self, data, otherdata): #clear subplots self.subplot1.cla() self.subplot2.cla() #plot new data to the same axes self.subplot1.plot(data) self.subplot2.plot(otherdata) 

Ahora debes llamar a generatePlot solo una vez al principio. Luego puedes actualizar tu plot con nuevos datos cuando quieras.

puedes usar

 subplot.cla() # which clears data but not axes subplot.clf() # which clears data and axes