我想使用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)
循环内