Pyplot plt.pause()每次运行时延迟变长



我试图制作一个程序,绘制点,显示plt,并暂停0.1秒。现在每次我运行程序的plt.pause(0.1)函数似乎是附加的。有人知道怎么解决吗?我使用下面的代码计时,但是你可以感觉到运行之间的时间间隔变长了。

start = time.process_time()
plt.show(block=False)
print("2: ", time.process_time() - start)
start = time.process_time()
plt.pause(0.1)
print("3: ", time.process_time() - start)

终端输出(第一次运行,最后一次关闭)

2:  0.0
3:  1.328125
2:  0.0
3:  4.703125

欢迎来到SO!

Matplotlib不一定在调用plt.show()时绘制图形画布。IIRC,与block=False图形画布实际上并不绘制,直到第一个plt.pause命令(或当控制在脚本执行结束时返回给用户)。因此,在plt.show调用中实际上没有发生任何事情,因此速度很快。第一个plt.pause调用很慢,因为这是脚本中实际绘制图形的点。如果您再添加一个plt.pause调用,执行时间将再次缩短。

import time
import matplotlib.pyplot as plt
plt.figure()
start = time.process_time()
plt.show(block=False)
print("2: ", time.process_time() - start)
start = time.process_time()
plt.pause(0.1)
print("3: ", time.process_time() - start)
start = time.process_time()
plt.pause(0.1)
print("4: ", time.process_time() - start)
# 2:  0.00012074099999992427
# 3:  0.020836499999999925
# 4:  0.007637112999999918

最新更新