[英]Plotting changing graphs with 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)
10 plt.clf()
我的问题是我必须在创建下一个图之前关闭每个图; 似乎情节卡在 plt.show() 上,而我希望新情节每秒替换当前情节,而无需我的互动。 我咨询了以下问题:
何时使用 cla()、clf() 或 close() 清除 matplotlib 中的绘图?
Matplotlib pyplot 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 和普通 python shell 中的合适后端,但它不适用于 IDLE IDE。 如果默认后端不支持交互性,则可以使用什么是后端?中讨论的任何方法显式激活交互式后端。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.