gpt4 book ai didi

python - Matplotlib ArtistAnimation 一步显示多个元素

转载 作者:行者123 更新时间:2023-12-04 10:04:49 25 4
gpt4 key购买 nike

我一直在使用 matplotlib 来创建绘图,但现在才发现 animation选项。我想使用 animation.ArtistAnimation 在动画中显示一系列图(不仅仅是单个元素) .

不幸的是,我无法一次为多个绘制元素设置动画。这是一个最小的例子来解释我的意思:

import random
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()

ims = []
for _ in range(10):
im1, = plt.plot([random.randrange(10), random.randrange(10)], [random.randrange(10), random.randrange(10)])
im2, = plt.plot([random.randrange(10), random.randrange(10)], [random.randrange(10), random.randrange(10)])
ims.append((im1,))
ims.append((im2,))
ani = animation.ArtistAnimation(fig, ims)

ani.save('im.mp4')

这会随机生成两行 im1 , im2 10 倍。我一直都想看 im1im2同时。但这一次只显示一行。
如果我评论 ims.append((im1,)) ,背景充满了静态线条,但它仍然只是动画一行。
我也尝试结合 im1im2使用 im1 + im2[im1, im2] ,但两者都会导致错误。

额外问题:是否有任何原因 blit=False默认情况下?我想,它应该提高性能?

最佳答案

解决方案只是将两位艺术家一次添加到列表中。

documentation谈论“代表每帧需要启用的内容的艺术家集合”,还有什么ims需要是艺术家列表(每帧一个)(每帧任何一个)。

import random
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()

ims = []
for _ in range(10):
im1, = plt.plot([random.randrange(10), random.randrange(10)], [random.randrange(10), random.randrange(10)])
im2, = plt.plot([random.randrange(10), random.randrange(10)], [random.randrange(10), random.randrange(10)])
ims.append([im1, im2])
ani = animation.ArtistAnimation(fig, ims)

ani.save('im.mp4')

关于python - Matplotlib ArtistAnimation 一步显示多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61639399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com