【发布时间】:2020-11-14 18:54:58
【问题描述】:
我已经尝试了我自己能想象到的一切,我对 tkinter 和 matplotlib 知之甚少,我不知道如何关闭我创建的嵌入图,这是代码
from matplotlib import pyplot as plt
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import (FigureCanvasTkAgg, NavigationToolbar2Tk)
import tkinter
fig = Figure(figsize = (5, 5), dpi = 100)
plotf = fig.add_subplot(111)
window = tkinter.Tk()
def grafFertilidadeMulher():
idadeM = [18,22,27,32,37,42,47,67,87,99]
fertilidadeRelativaM = [0.84,1,0.96,0.9,0.8,0.48,0.1,0.08,0.05,0.01]
plotf.plot(idadeM, fertilidadeRelativaM, linewidth='4', color='pink', marker='o', markerfacecolor='purple', markersize='8')
plotf.set_xlabel('idade')
plotf.set_ylabel('fertilidade relativa')
plotf.set_title('Perda de fertilidade com a idade')
canvas = FigureCanvasTkAgg(fig, master = window)
canvas.draw()
canvas.get_tk_widget().pack()
toolbar = NavigationToolbar2Tk(canvas, window)
toolbar.update()
canvas.get_tk_widget().pack()
def grafFertilidadeHomem():
idadeH = [19,20,30,40,50,60,70,80,90,99]
fertilidadeRelativaH = [0.92,1,1,1,0.95,0.81,0.6,0.4,0.4,0.4]
plt.plot(idadeH, fertilidadeRelativaH, linewidth = '4', color = 'cyan', marker = 'o', markerfacecolor = 'blue', markersize = '8')
plt.ylim(0,1.2)
plt.xlim(17,100)
plt.xlabel('idade')
plt.ylabel('fertilidade relativa')
plt.title('Perda de fertilidade com a idade')
plt.show()
def grafFertilidadeAmbos():
idadeM = [18,22,27,32,37,42,47,67,87,99]
fertilidadeRelativaM = [0.84,1,0.96,0.9,0.8,0.48,0.1,0.08,0.05,0.01]
idadeH = [19,20,30,40,50,60,70,80,90,99]
fertilidadeRelativaH = [0.92,1,1,1,0.95,0.81,0.6,0.4,0.4,0.4]
plt.plot(idadeM, fertilidadeRelativaM, linewidth='4', color='pink', marker='o', markerfacecolor = 'purple', markersize='8')
plt.plot(idadeH, fertilidadeRelativaH, linewidth = '4', color = 'cyan', marker = 'o', markerfacecolor = 'blue', markersize = '8')
plt.ylim(0,1.2)
plt.xlim(17,100)
plt.xlabel('idade')
plt.ylabel('fertilidade relativa')
plt.title('Perda de fertilidade com a idade')
plt.show()
btnFertilidadeMulher = tkinter.Button(window, text = 'Mulher', command = grafFertilidadeMulher)
btnFertilidadeAmbos = tkinter.Button(window, text = 'Ambos', command = grafFertilidadeAmbos)
btnFertilidadeHomem = tkinter.Button(window, text = 'Homem', command = grafFertilidadeHomem)
btnCloseFertilidade = tkinter.Button(window, text = 'fechar', command = plt.close(fig))
btnFertilidadeMulher.pack()
btnFertilidadeAmbos.pack()
btnFertilidadeHomem.pack()
btnCloseFertilidade.pack()
window.title('Menu')
window.geometry("500x500")
window.mainloop()
不要介意奇怪的语言,这是我会为生物学开发的应用程序。
如果有人能帮我一把就好了
编辑:我只嵌入了其中一个图,我从使用 plt.show() 开始,后来才认为我应该嵌入
【问题讨论】:
-
关闭它是什么意思?您可以像销毁任何其他 tkinter 对象一样销毁小部件:使用
destroy()方法。
标签: python matplotlib tkinter