gpt4 book ai didi

python - 从一组预先计算的绘图创建动画 : ArtistAnimation

转载 作者:行者123 更新时间:2023-11-30 22:01:48 25 4
gpt4 key购买 nike

我正在尝试学习 Matplotlib 的一些动画功能。

考虑一下尝试绘制正弦和余弦曲线振幅增加的动画的尝试。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()


ims = []
x = np.linspace(0,10,20)
for i in range(60):
y1 = map (lambda t: i*np.sin(t) , x)
y2 = map (lambda t: i*np.cos(t) , x)

im1 = plt.plot(x, y1, 'bo-')
im2 = plt.plot(x, y2, 'go-')

ims.extend([im1,im2])

ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True, repeat_delay=1000)

plt.show()

这为我绘制了一组交替的蓝色正弦曲线和绿色余弦曲线。如果您尝试绘制它们,您会发现生成的图是正弦和余弦之间非常快速交替的图像集。

我知道这可能是 ims.extend([im1,im2]) 这是这里有问题的命令。但是,当我使用 .append() 代替 .extend 时,以便 ims 成为图像列表列表,我收到错误

Traceback (most recent call last):
File "dynamic_image.py", line 29, in <module>
ani.save("movie.mp4")
File "/usr/local/lib/python2.7/dist-packages/matplotlib/animation.py", line 1254, in save
anim._init_draw()
File "/usr/local/lib/python2.7/dist-packages/matplotlib/animation.py", line 1618, in _init_draw
artist.set_visible(False)
AttributeError: 'list' object has no attribute 'set_visible'

最佳答案

我不确定原因,但如果你只想要结果,你可以尝试下面的代码。如果您确实需要知道原因,我们拭目以待,看看其他人是否可以回答。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig, ax = plt.subplots()
x = np.linspace(0, 10, 50)
line1, = ax.plot(x, np.sin(x), 'bo-')
line2, = ax.plot(x, np.cos(x), 'go-')
ax.set_ylim(-60, 60)

def init():
line1.set_ydata([np.nan] * len(x))
line2.set_ydata([np.nan] * len(x))
return [line1, line2]

def animate(i):
line1.set_ydata(i * np.sin(x))
line2.set_ydata(i * np.cos(x))
return [line1, line2]

ani = animation.FuncAnimation(fig, animate, init_func=init,
blit=True, frames=60, repeat=True,
interval=50, repeat_delay=1000)
ani.save('result.mp4')

关于python - 从一组预先计算的绘图创建动画 : ArtistAnimation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53939764/

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