gpt4 book ai didi

python - 使用 ffmpeg 和 matplotlib 保存动画

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

我是这里的新手,也是python的新手,我用matplotliib的animation.FuncAnimation做一些动画。动画效果很好,但我在保存动画时遇到问题。这是动画的部分代码。

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

fig, ax = plt.subplots()

line, = ax.plot(range(N),sin(x[0,:]),'o-')
ax.axis([0,1,-1,1])

def animate(i):
line.set_ydata(sin(x[i,:])) # update the data
return line,

def init():
line.set_ydata(np.ma.array(x[0,:], mask=True))
return line,

ani = animation.FuncAnimation(fig, animate, np.arange(1, 10000),
interval=25, init_func=init, blit=True)
ani.save('2osc.mp4', writer="ffmpeg")
plt.show()

其中 x[:,:] 是先前设置的。 ani.save 将动画的每一帧保存为保存电影的 .npg 图像。我不知道这是否是它应该工作的方式,我必须用 .npg 和另一个程序制作电影,或者我做错了什么。
Obs:我以前安装过 ffmpeg,它似乎工作得很好。

最佳答案

对我来说,这段代码似乎运行良好:

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

fig, ax = plt.subplots(1,1)
x=np.linspace(np.pi,4*np.pi,100)
N=len(x)
ax.set_xlim(len(x))
ax.set_ylim(-1.5,1.5)
line, = ax.plot([],[],'o-')

def init():
line.set_ydata(np.ma.array(x[:], mask=True))
return line,

def animate(i, *args, **kwargs):
y=np.sin(x*i)
line.set_data(np.arange(N),y) # update the data
return line,

ani = animation.FuncAnimation(fig, animate, init_func=init,
frames=100, interval=10, blit= False, repeat = False)
ani.save('2osc.mp4', writer="ffmpeg")
fig.show()

您可以使用以下方法安装 ffmpeg 库:
sudo apt-get install ffmpeg

关于python - 使用 ffmpeg 和 matplotlib 保存动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31192125/

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