Matplotlib和Celluloid在Jupyter笔记本上显示了奇怪的行为

bgibtngc  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(153)

我正在尝试用Python执行模拟的结果动画。为此,我使用matplotlib来生成动画的帧,然后使用来自赛璐珞库的Camera类收集它们。生成动画的代码如下:

fig = plt.figure()
ax = plt.gca()
ax.set_aspect('equal')

camera = Camera(fig)

for i in range(result.t.size):
    if i % 10 == 0:
        x = result.y[0, i]
        y = result.y[1, i]

        plt.scatter(x, y, s = 100, c = 'red')
        plt.xlim(-3, 3)
        plt.ylim(-3, 3)
        plt.grid()

        camera.snap()

animation = camera.animate(blit = False, interval = 10)
HTML(animation.to_html5_video())

生成HTML5视频的最后一部分允许在Web上的Jupyter笔记本中观看动画。但是,我得到以下输出:

第一个输出是相应的动画,运行良好。第二个只是一个静态的空情节。所以我有两个问题:
1.第二个情节是从哪里来的,我如何删除它?
1.动画没有显示任何网格,尽管我在每一帧上通过plt.grid()请求它。为什么会这样?
提前感谢任何帮助。

7kqas0il

7kqas0il1#

在显示动画之前,调用plt.close()以避免显示未使用的图形。

相关问题