【发布时间】:2014-11-08 11:49:22
【问题描述】:
我正在使用以下代码在 tkinter 窗口中打开 matplotlib pyplot。我的问题是该情节仍然在 matplotlib 窗口中弹出,我不知道如何阻止它。我已经尝试注释掉每个 plt.plot,但这没有帮助。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('TkAgg')
from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
import Tkinter as Tkinter
def tester():
class window(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
self.parent = parent
self.initialize()
def initialize(self):
self.grid()
self.grid_rowconfigure(0,minsize=50)
self.grid_rowconfigure(1,minsize=5)
self.grid_rowconfigure(2,minsize=500)
self.grid_rowconfigure(3,minsize=5)
self.grid_rowconfigure(4,minsize=20)
self.grid_columnconfigure(0,minsize=5)
self.grid_columnconfigure(1,minsize=800)
self.grid_columnconfigure(2,minsize=5)
framer = Tkinter.Frame(self, borderwidth=2, relief='groove',bg='white')
framer.grid(column=0,row=1,columnspan=3,rowspan=3, sticky='NSEW')
Button1 = Tkinter.Button(bg='red',text="Click Me",command=self.onbutton1)
Button1.grid(column=1,row=0,sticky='NSEW')
def onbutton1(self):
array = np.array([[1,2,3,2,1],[2,3,4,3,2],[3,4,5,4,3],[4,5,6,5,4],[3,4,5,4,3]])
maximum = np.max(array)
index_max = np.where(array == maximum)
max_a, max_b = index_max
plotter=plt.figure('plot')
plt.contour(array, linewidths = 1, colors = 'k')
plt.contourf(array, cmap = plt.cm.jet)
plt.ylabel('y', fontdict = {'fontsize':16})
plt.xlabel('x', fontdict = {'fontsize':16})
plt.colorbar()
plt.title('Title', fontdict = {'fontsize':20})
plt.plot(max_b, max_a, 'wo')
F_canvas = FigureCanvasTkAgg(plotter, self)
F_canvas.get_tk_widget().grid(column=1,row=2)
if __name__ == "__main__":
app = window(None)
app.title('Window')
app.mainloop()
tester()
谁能成为我的英雄?
【问题讨论】:
-
您可以对数字进行编号——即 plt.figure(1)——然后对其进行处理。在您使用 plt.show(1) 之前,它们不应出现。如果您从不“显示”它,那可能会抑制 matplotlib 窗口。
-
@JKelly 在上面的代码中我根本没有使用 plt.show() 。我是否以不同的方式“展示”它?
-
好吧,我建议在他们的号码被调用之前给他们编号“持有”他们,但下面 BrenBarn 的建议可能更好。
标签: python python-2.7 matplotlib tkinter