<p>要绘制一组连续的随机线图,需要在matplotlib中使用动画:</p>
<pre><code>import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
max_x = 5
max_rand = 10
x = np.arange(0, max_x)
ax.set_ylim(0, max_rand)
line, = ax.plot(x, np.random.randint(0, max_rand, max_x))
def init(): # give a clean slate to start
line.set_ydata([np.nan] * len(x))
return line,
def animate(i): # update the y values (every 1000ms)
line.set_ydata(np.random.randint(0, max_rand, max_x))
return line,
ani = animation.FuncAnimation(
fig, animate, init_func=init, interval=1000, blit=True, save_count=10)
plt.show()
</code></pre>
<p><a href="https://i.stack.imgur.com/jD4CY.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/jD4CY.png" alt="animated graph"/></a></p>
<p>这里的想法是您有一个包含<code>x</code>和{<cd2>}值的图。其中<code>x</code>只是一个范围,例如0到5。然后调用<code>animation.FuncAnimation()</code>,它告诉matplotlib每隔<code>1000ms</code>调用你的<code>animate()</code>函数,让你提供新的<code>y</code>值。在</p>
<p>您可以通过修改<code>interval</code>参数来任意加快速度。在</p>
<hr/>
<p>一种可能的方法,如果您想绘制随时间变化的值,可以使用<code>deque()</code>来保存<code>y</code>值,然后使用<code>x</code>轴来保存<code>seconds ago</code>:</p>
^{pr2}$
<p>给你:</p>
<p><a href="https://i.stack.imgur.com/DjRea.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/DjRea.png" alt="moving time plot"/></a></p>