转载自:https://www.jianshu.com/p/5392170c5fee
import matplotlib.pyplot as plt
import numpy as np
if __name__ == '__main__' :
t1 = np.arange(0, 30, 0.1)
plt.ion() # interactive on互动打开
for i in range(100):
plt.ylim(-10, 10) #此处限制了一下y轴坐标最大最小值,防止刻度变化,不利于观察。(也可以不指定)
plt.plot(t1, 0.1*i*np.sin(t1 + 0.1 * i))
plt.plot(t1, 0.1 * (i -100) * np.cos(t1 + 0.2 * i))
plt.pause(0.01) #暂停一段时间,否则清屏过快会导致只看到白色面板
plt.clf() #清除上次结果
plt.ioff()
plt.show()
也可以动态改变坐标刻度
import matplotlib.pyplot as plt
import numpy as np
if __name__ == '__main__' :
t1 = np.arange(0, 30, 0.1)
plt.ion()
for i in range(100):
plt.xlim(-10, i) #此处限制了一下y轴坐标最大最小值,防止刻度变化,不利于观察。
plt.plot(t1, 0.1*i*np.sin(t1 + 0.1 * i))
plt.plot(t1, 0.1 * (i -100) * np.cos(t1 + 0.2 * i))
plt.pause(0.01) #暂停一段时间,否则清屏过快会导致只看到白色面板
plt.clf() #清除上次结果
plt.ioff()
plt.show()
注:对于上面两个,实际上我们使用了plt.pause和plt.clf,效果跟plt.ion一样的,所以可以把plt.ion和plt.ioff去掉。
另一个例子
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-10,1,10)
def y(i):
return i**2
# plt.ion()
for i in x:
plt.pause(0.3)
plt.scatter(i,y(i),c='r')
# plt.ioff()
plt.show()
import matplotlib.pyplot as plt
plt.ion()
plt.imshow(img_seg)
plt.pause(0.3)
plt.imshow(masks)
plt.ioff()
plt.show()