6

我已经对 SO 进行了搜索,但还没有找到正确的“解决方案”来解决我的问题。我正在对一些我希望绘制的数据运行循环。在循环的每一步——我用 plt.show() 绘制图形。但是,由于这是一个阻塞功能,我被卡住了,直到我手动关闭窗口,然后循环继续,下一个图出现。

我想做的是能够绑定一个按键事件来关闭图形并继续循环(而不是使用鼠标将“X”移出图形)。

如果这不可能,我想设置一个计时器来关闭图形并继续循环。

我所有的问题似乎都涉及 plt.show() 阻止其他一切的事实——有什么办法解决这个问题吗?

我的图上的一些注释:它们使用相同的轴,但包含散点图、填充框和注释——它们总是在变化。

谢谢!

4

1 回答 1

5

尝试使用ionfrom matplotlib.pyplot

import matplotlib.pyplot as pp
pp.ion()
fig = pp.figure()

ion有关交互式与非交互式使用的更多信息,请点击此处

或者,如果您想使用按钮按下方法,请分配回调

def moveon(event):
    pp.close()

cid = fig.canvas.mpl_connect('key_press_event', moveon)
pp.show()

事件计时器更棘手,因为show命令是阻塞的,所以它可能必须涉及线程。

于 2012-08-01T17:39:52.450 回答