如何在不关闭窗口的情况下释放matplolib执行



我想使用imshow()for循环显示一系列图像,但我想等待用户在图像上(而不是在终端上(输入后再继续。以下内容确实有效,但它需要关闭窗口,这不是最佳的,因为我的for循环有一千多次迭代。如何放置plt.clf((并暂时取消阻止,直到下一个循环。

x, y, z = sp.mgrid[0:10, 0:100, 0:100]
for img in x:
    f = plt.figure()
    def onkey(event):
        print("pressed {}".format(event))
        plt.close(f)
    f.canvas.mpl_connect("key_press_event", onkey)
    plt.imshow(img)
    plt.show()
    print("continuing")

谢谢!

事实上,这是一个重复的问题:

matplotlib:故意阻止挂起GUI事件的代码执行

CCD_ 3和CCD_。

谢谢!

使用:

plt.ion()
plt.show()

在循环之前移除plt.close()&循环内的plt.show()

要阻止循环直到按下事件发生,请添加:

f.canvas.start_event_loop(timeout=-1)

循环内

相关内容

  • 没有找到相关文章