我正在使用以下代码在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()
谁能成为我的英雄?
如果要自己管理所有窗口,则根本不要使用pyplot。plt.figure
例如,当您这样做时,它将创建一个由matplotlib管理的图形窗口。
甚至不导入pyplot。确切的代码适应方式会因所使用的matplotlib功能而异,例如,要创建您要执行的操作:
from matplotlib import figure
plotter = figure.Figure()
您将contour
通过访问该Figure的Axes对象并使用其方法(例如,如果您有ax
可以校准的轴)来访问大多数绘图类型(例如ax.contour
)。
见这个例子中,了解如何嵌入matplotlib的一个Tkinter的应用一个简单的演示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句