gpt4 book ai didi

Python Matplotlib FuncAnimation + 保存

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:57 26 4
gpt4 key购买 nike

我是 python 的新手,我正在尝试使用 matplotlibs FuncAnimation 制作动画并将其保存为某种视频格式。如果我运行以下代码:

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

azimuths = np.radians(np.linspace(0, 360, 360))
zeniths = np.arange(0, 8, 0.2)
rho, psi = np.meshgrid(zeniths, azimuths)


fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, polar=True)
ax.set_yticks([])
plt.grid()


def frame(i):
values_i = prob_density(rho ** 2, psi, i)
ax.contourf(psi, rho, values_i)

animation = ani.FuncAnimation(fig, frame, np.linspace(0, 1000, 10))
animation.save('video.mp4', writer='ffmpeg')

有一个错误说:

ValueError: outfile must be *.htm or *.html

因为这似乎与 ffmpeg 文件有关 - 这些文件位于

/anaconda3/bin/ffmpeg

我已经研究这个问题很长时间了,但似乎无法找到解决方案,尽管这似乎是一个常见问题。感谢您提出任何建议。

最佳答案

我以前从未使用过 FuncAnimation,但是 matplotlib-example状态,你必须先初始化 ffmpeg。像这样:

import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import matplotlib.animation as animation


def update_line(num, data, line):
line.set_data(data[..., :num])
return line,

# Set up formatting for the movie files
Writer = animation.writers['ffmpeg']
writer = Writer(fps=15, metadata=dict(artist='Me'), bitrate=1800)


fig1 = plt.figure()

data = np.random.rand(2, 25)
l, = plt.plot([], [], 'r-')
plt.xlim(0, 1)
plt.ylim(0, 1)
plt.xlabel('x')
plt.title('test')
line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l),
interval=50, blit=True)
line_ani.save('lines.mp4', writer=writer)

也许,你可以试试这个。

关于Python Matplotlib FuncAnimation + 保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49133207/

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