【发布时间】:2017-10-17 10:16:56
【问题描述】:
当我尝试在 tkinter 窗口中使用 matplotlib 绘制某些东西时,它根本不会出现。如果我删除 tkinter 特定部分,并且只执行基本的 plt.plot(...) 和 plt.show() 它会显示在我的常规文本输出字段中。但是,在这种情况下,我希望它显示在 tkinter 窗口中。我相信它是因为我在 mac (macOS 10.12.4) 上运行它,但是我不知道如何让它显示在 tkinter 窗口中。
import numpy as np
import Tkinter as tk
import matplotlib
matplotlib.use('TkAgg')
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import matplotlib.pyplot as plt
root = tk.Tk()
fig = plt.figure(1)
t = np.arange(0.0,3.0,0.01)
s = np.sin(np.pi*t)
plt.plot(t,s)
canvas = FigureCanvasTkAgg(fig, master=root)
plot_widget = canvas.get_tk_widget()
def update():
s = np.cos(np.pi*t)
plt.plot(t,s)
plt.show()
plot_widget.grid(row=0, column=0)
tk.Button(root,text="Update",command=update).grid(row=1, column=0)
root.mainloop()
正如我所说,我相信这是因为我在 MacOS 上运行。仅供参考,当我运行此程序时,会显示一个带有更新按钮的空白 tkinter 窗口,但没有图表。然而,图形确实显示在常规文本输出中,但我希望它在 tkinter 窗口中用于 GUI。请帮忙!
【问题讨论】:
标签: python-2.7 matplotlib tkinter