我试图制作一个程序,绘制点,显示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