我试着修改汉斯在Matplotlib plot in Tkinter - every update adds new NavigationToolbar?中的回答,在两个不同的画布上有两个不同的情节。在
我有一个问题:我不知道如何引用这两个不同的数字。在
虽然图1在画布1中,图2在画布2中,但是plt.绘图函数不引用它们-并且plt.图()无济于事。我怎么能在画布上画出一件事,在另一件事上画另一件事呢?在
from Tkinter import Tk, Button
import numpy as np
import random
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
def plotthem():
plt.figure(1)
plt.clf()
x = np.arange(0.0,3.0,0.01)
y = np.sin(2*np.pi*x+random.random())
plt.plot(x,y)
plt.gcf().canvas.draw()
plt.figure(2)
plt.clf()
x = np.arange(0.0,3.0,0.01)
y = np.tan(2*np.pi*x+random.random())
plt.plot(x,y)
plt.gcf().canvas.draw()
root = Tk()
b = Button(root, text="Plot", command = plotthem)
b.grid(row=0, column=0)
# init figures
fig1 = plt.figure()
canvas1 = FigureCanvasTkAgg(fig1, master=root)
toolbar = NavigationToolbar2TkAgg(canvas1, root)
canvas1.get_tk_widget().grid(row=0,column=1)
toolbar.grid(row=1,column=1)
fig2 = plt.figure()
canvas2 = FigureCanvasTkAgg(fig2, master=root)
toolbar = NavigationToolbar2TkAgg(canvas2, root)
canvas2.get_tk_widget().grid(row=0,column=2)
toolbar.grid(row=1,column=2)
root.mainloop()
好吧,我想好了。。。 您只需每次使用
plt.gcf().canvas.draw()
,因为gcf()
代表get current figure,并且与plt.figure(
协同工作),它可以在不同的画布中更新不同的图形。在相关问题 更多 >
编程相关推荐