我为一维元胞自动机创建了一个动画,模拟交通流。动画的目标是拍摄此图像的每一行: (https://i.imgur.com/Oe2GhsW.png)
并逐行绘制,以查看“车辆”的运动方式。我想远离imshow,因为我需要的两点之间没有间距,我可以用这种方式来处理标记样式。
我已选择使用散点图,但我一直在努力使事物进行动画处理。上图中绘制的数组的类型为Float64,大小为(50,50),下面的节点是我用来绘制动画的对象。
In[1]:a
Out[1]:
array([[0., 1., 1., ..., 0., 0., 1.],
[1., 1., 1., ..., 0., 0., 0.],
[1., 1., 1., ..., 0., 1., 0.],
...,
[1., 1., 1., ..., 1., 1., 1.],
[1., 1., 1., ..., 1., 1., 1.],
[1., 1., 1., ..., 1., 1., 1.]])
fig3, ax3 = plt.subplots()
scat = plt.scatter(range(L), a[0], marker = ">")
fig3.set_figheight(1)
fig3.set_figwidth(10)
ax3.set_ylim(1,1)
ax3.axes.get_yaxis().set_visible(False)
ax3.set_xlabel("Space")
plt.show()
i=0
def updatefig2(*args):
global i
if (i<n_iters-1):
i += 1
else:
i=0
scat.set_offsets(a[i])
return scat,
Writer = animation.writers['ffmpeg']
writer = Writer(fps=2, metadata=dict(artist='luke'), bitrate=3600)
ani2 = animation.FuncAnimation(fig3, updatefig2, blit=True)
ani2.save('im2.mp4', writer=writer)
plt.show
运行代码后出现错误;
ValueError:“顶点”必须是形状为Nx2的2D列表或数组
但是在删除行时不会发生这种情况;
ani2.save('im2.mp4', writer=writer)
我将非常感谢您的帮助。