python和matplotlib中的更新图

时间:2012-08-01 17:16:25

标签: python plot matplotlib figure

我已经对SO进行了搜索,但还没有找到解决问题的正确“解决方案”。我在一些我希望绘制的数据上运行循环。在循环的每一步 - 我用plt.show()绘制图形。但是,因为这是一个阻塞功能,所以直到我手动关闭窗口然后循环继续并且下一个图显示为止。

我想要做的是能够绑定按键事件以关闭图形并继续循环(而不是将鼠标用于图中的“X”)。

如果无法做到这一点,我想设置一个计时器来关闭数字并继续循环。

我所有的问题似乎都解决了plt.show()阻止其他一切的事实 - 任何解决方法?

关于我的情节的一些注释:它们使用相同的轴,但包含散点图,填充框和注释 - 它们总是在变化。

谢谢!

1 个答案:

答案 0 :(得分:5)

尝试使用ion中的matplotlib.pyplot

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

有关ion和互动与非交互式使用here

的更多信息

或者,如果您想按下按钮,则按下方法分配回叫

def moveon(event):
    pp.close()

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

事件计时器更棘手,因为show命令正在阻塞,因此它可能必须涉及线程。