matplotlib之pyplot模块——暂停(pause())
当前有效matplotlib版本为:3.4.1。pause函数概述pause函数功能运行GUI事件循环若干秒。pause函数的签名为matplotlib.pyplot.pause(interval)。参数interval表示秒数,类型为整数。如果当前有活动的图形,在pause函数运行前,图形将会更新并显示,在等待期间事件循环会一直运行,只到暂停时间interval后结束。如果没有当前有活动的图形,
·
当前有效matplotlib
版本为:3.4.1
。
pause
函数概述
pause
函数功能运行GUI事件循环若干秒。
pause
函数的签名为matplotlib.pyplot.pause(interval)
。参数interval
表示秒数,类型为整数。
如果当前有活动的图形,在pause
函数运行前,图形将会更新并显示,在等待期间事件循环会一直运行,直到暂停时间interval
秒后结束。
如果没有当前有活动的图形,将会调用time.sleep
函数,休眠interval
秒。
pause
函数原理
根据源码可知,pause
函数会检测当前是否有活动的图形对象,如果有,则会检测figure.stale
(它代表图形已发生变化,需要重绘),如果为True
则会重绘图形,并采用非阻塞形式显示图形,然后运行事件循环interval
秒。如果没有活动图形,直接运行time.sleep
函数,休眠interval
秒。
matplotlib.pyplot.pause()
def pause(interval):
manager = _pylab_helpers.Gcf.get_active()
if manager is not None:
canvas = manager.canvas
if canvas.figure.stale:
canvas.draw_idle()
show(block=False)
canvas.start_event_loop(interval)
else:
time.sleep(interval)
案例:pause
函数演示
通过对比可发现,使用pause
函数时图形会间隔一段时间后更新,而使用time.sleep
函数则不能正常显示。
使用pause
函数
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(19680801)
data = np.random.random((50, 50, 50))
fig, ax = plt.subplots()
for i in range(len(data)):
ax.cla()
ax.imshow(data[i])
ax.set_title("frame {}".format(i))
plt.pause(0.1)
使用time.sleep
函数
import matplotlib.pyplot as plt
import numpy as np
import time
np.random.seed(19680801)
data = np.random.random((50, 50, 50))
fig, ax = plt.subplots()
for i in range(len(data)):
ax.cla()
ax.imshow(data[i])
ax.set_title("frame {}".format(i))
# Note that using time.sleep does *not* work here!
plt.draw()
plt.show(block=False)
time.sleep(0.01)
更多推荐
已为社区贡献38条内容
所有评论(0)