我正在使用 python 的 matplotlib
来绘制图形。
我想绘制一个超时的图形,比如 3 秒,然后窗口将关闭以在代码上移动。
我知道 pyplot.show()
会创建一个无限超时的阻塞窗口; pyplot.show(block=False)
或 pyplot.draw()
将使窗口非阻塞。但我想要的是让代码阻塞几秒钟。
我想出了一个想法,我可能会使用事件处理程序或其他东西,但仍然不清楚如何解决这个问题。有没有简单优雅的解决方案?
假设我的代码如下:
绘制.py:
import matplotlib.pyplot as plt
#Draw something
plt.show() #Block or not?
最佳答案
这是一个简单的示例,我创建了一个计时器来设置超时并在计时器的回调函数中关闭窗口 plot.close()
。在 plot.show()
之前启动计时器,三秒后计时器调用 close_event()
,然后继续执行其余代码。
import matplotlib.pyplot as plt
def close_event():
plt.close() #timer calls this function after 3 seconds and closes the window
fig = plt.figure()
timer = fig.canvas.new_timer(interval = 3000) #creating a timer object and setting an interval of 3000 milliseconds
timer.add_callback(close_event)
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
timer.start()
plt.show()
print "Am doing something else"
希望这是有帮助的。
关于python - 如何在 matplotlib 中为 pyplot.show() 设置超时?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30364770/