我正在使用matplotlib並創建一個圖形添加一個圖。我怎樣才能用一個新的地塊或一個新的地塊網格來替換這個地塊? 在我現在的代碼中,我使用菜單dosomething()創建了一個軸,然後在菜單中使用菜單dosomethingelse()在同一個軸上添加了其他紅線。每次我dosomething(),一個新的數字附加在當前的一個,但我實際上是想在同一個圖中用一個新的替換當前的軸。我怎樣才能做到這一點?如何用新地塊或地塊網格替換matplotlib圖中的以前的地塊?
import numpy as np
from Tkinter import *
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
class Test1:
def __init__(self, windows, data, axes):
self.windows = windows
self.data = data
self.figure = axes.figure
self.axes = axes
self.im = self.axes.plot(data)
def dosomething():
global test1
global fig
fig = Figure(figsize=(12, 4))
axes = fig.add_subplot(111)
canvas = FigureCanvasTkAgg(fig, master=windows)
canvas.get_tk_widget().pack()
data=np.arange(100)
test1=Test1(windows, data, axes)
def dosomethingelse():
global test1
test1.axes.plot(np.arange(100)+10*(np.random.rand(100)-0.5),'-r')
test1.figure.canvas.show()
windows = Tk()
menubar = Menu(windows)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Do something", command=dosomething)
filemenu.add_command(label="Do somethingelse", command=dosomethingelse)
menubar.add_cascade(label="Tool", menu=filemenu)
windows.config(menu=menubar)
windows.mainloop()