两个matplotlib图形在两个不同的tk画布中

2024-06-23 18:54:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着修改汉斯在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()

Tags: importplot画布npcolumnpltrandomroot
1条回答
网友
1楼 · 发布于 2024-06-23 18:54:39

好吧,我想好了。。。 您只需每次使用plt.gcf().canvas.draw(),因为gcf()代表get current figure,并且与plt.figure(协同工作),它可以在不同的画布中更新不同的图形。在

相关问题 更多 >

    热门问题