使用matplotlib动画交通

0 投票
2 回答
1314 浏览
提问于 2025-04-18 14:34

我想制作一个有汽车交通的视频。为此,我已经掌握了所有汽车的状态信息。绘制某个时间点的情况没问题,但动画就有点难了。我写了一些代码,像下面这样,但这并没有起作用:什么都没有动。我不太明白动画的基本原理。有人能给我指个方向吗?

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.animation as manimation
FFMpegWriter = manimation.writers['ffmpeg']
writer = FFMpegWriter(fps=10)

def animate_traffic():
    fig=plt.figure(1)
    ax=fig.add_subplot(1,1,1)
    tsim=tstart
    with writer.saving(fig, "roadtest.mp4", 100):
        for i in range(100):
            draw_roadlayout()
            for car in cars:
                # draw each of the cars on the road
                # based on time tsim
            plt.grid(False)
            ax.axis(plt_area)
            fig   = plt.gcf()
            writer.grab_frame()
            ax.cla()
            tsim+=timestep
    plt.close(1) 

谢谢。

更新:在写完之后,我清理了区域。现在完整版本对我来说可以用了。

2 个回答

0

如果你能生成显示运动的图片,那你可以把这些图片保存下来,然后用ffmpeg来制作视频。

0

ax.cla() 是答案中的一个重要部分。虽然还有很多可以改进的地方,但它确实有效。

撰写回答