0

我正在尝试调用一个应该一个接一个地运行图像的函数。所以我希望出现第一个图像,当我关闭它时,会出现下一个图像。但是当我使用 tkinter 窗口中的按钮调用绘图函数时,我得到第一个绘图,然后执行停止。

下面是一个示例代码。我希望在关闭第一个图后出现下一个直方图。有趣的是,当我在 dubug 模式下运行它并强制循环运行时,这工作正常,但是当我运行它时,通常在第一个窗口关闭后没有任何反应。我怎么做有什么问题吗?什么是实现这一目标的好方法?

from tkinter import *
import numpy as np
import matplotlib.pyplot as plt

window = Tk()
window.geometry("400x400")

def plot_graph():

    mean = [1,2,3,4]
    sd = [0.1,0.2,0.3,0.4]
    for m, s in zip(mean, sd):
        print(f"plotting mean {m}, sd {sd}")
        x = np.random.normal(m, s, 1000)
        plt.figure(figsize=(10,8))
        plt.hist(x)
        plt.title(f"Normal Distribution Mean:{mean} SD:{sd}", fontsize=10)
        plt.grid(alpha = 0.1)
        plt.show()



graph_button = Button(window,text = "Generate Graph", command = plot_graph)
graph_button.place(x = 100, y = 100 )

window.mainloop() 
4

0 回答 0