用matplotlib迭代画图,在plt.show()执行后代码暂停

发布时间 2023-09-08 23:41:42作者: liushao-AI

https://tieba.baidu.com/p/4778495824

幸好刚刚找到答案了,对于题主来说可能是帮不上忙了,但是对于碰巧搜到这里的同萌们可能会方便很多,最简实现如下(Python 3.6.2):
import matplotlib.pyplot as plt
import numpy as np


plt.ion() #开启interactive mode
x = np.linspace(0, 50, 1000)
plt.plot(x, np.sin(x))
plt.pause(5)
plt.close()
plt.plot(x, np.cos(x))
plt.pause(5)
print('it is ok')


注意事项:
1.pyplot的ion(交互)方法和show(阻塞)方法冲突,不能同时使用。
2.在ion方法下,可以不plt.figure()创建绘图窗口,直接plot,也可以实现迭代中按代重绘的目的。
3.在ion方法下,正确的暂停方法应该用pause方法,而不是用time.sleep()。
4.想就这一问题进行更多探索,请参考本答案的引用文章:http://bbs.eetop.cn/thread-382878-1-1.html