【发布时间】:2016-04-13 02:23:00
【问题描述】:
我试图调整 Hans 在 Matplotlib plot in Tkinter - every update adds new NavigationToolbar? 中的回答,以便在 2 个不同的画布上绘制 2 个不同的图。
我有一个问题:我不知道如何引用这两个不同的数字。
虽然 fig1 在 canvas1 中,而 fig2 在 canvas2 中,但 plt.plot 函数并没有引用它们 - plt.figure() 没有帮助。如何在画布中绘制一件事,而在另一件中绘制另一件事?
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()
【问题讨论】:
标签: python canvas matplotlib tkinter