Python 使用matplotlib绘制更改的图形
所以我一直在尝试通过一个循环得到一个更新每次迭代的图。我的代码的精简版本如下:Python 使用matplotlib绘制更改的图形,python,matplotlib,Python,Matplotlib,所以我一直在尝试通过一个循环得到一个更新每次迭代的图。我的代码的精简版本如下: 1 import matplotlib.pyplot as plt 2 import numpy as np 3 4 x = np.linspace(0, 9, 10) 5 for j in range(10): 6 y = np.random.random(10) 7 plt.plot(x,y) 8 plt.show() 9 plt.pause(
1 import matplotlib.pyplot as plt
2 import numpy as np
3
4 x = np.linspace(0, 9, 10)
5 for j in range(10):
6 y = np.random.random(10)
7 plt.plot(x,y)
8 plt.show()
9 plt.pause(1)
10 plt.clf()
我的问题是,在创建下一个绘图之前,我必须关闭每个绘图;看起来plt.show()上的绘图被卡住了,而我希望每秒都有一个新的绘图替换当前的绘图,而不需要我的交互。我咨询了以下问题:
但所有的解决方案似乎都不适合我。任何帮助都将不胜感激 您应该使用plt.ion()设置交互模式,并使用draw进行更新
import matplotlib.pyplot as plt
import numpy as np
plt.ion()
fig=plt.figure()
x = np.linspace(0, 9, 10)
for j in range(10):
y = np.random.random(10)
plt.plot(x,y)
fig.canvas.draw()
plt.pause(1)
plt.clf()
请注意,它可能无法在所有平台上工作;我在Pythonista/ios上进行了测试,但没有达到预期效果
从
注
交互式模式在ipython和普通pythonshell中适用于合适的后端,但在空闲IDE中不起作用。如果默认后端不支持交互,则可以使用“什么是后端?”中讨论的任何方法显式激活交互后端