gpt4 book ai didi

python - 设置 matplotlib 视频动画大小 (1920x1080)

转载 作者:行者123 更新时间:2023-12-04 23:20:18 28 4
gpt4 key购买 nike

我正在尝试创建一个 1920x1080 的 matplotlib 动画。 .下面生成的动画是(1152x648),这个比例合适但是太小了。我知道我可以在使用 ffmpeg 之后做到这一点,但如果可能的话,我想避免重新编码。

y = my_data
fig = plt.figure(figsize=(16,9))

def ani(i):
# Animation Code

animator = FuncAnimation(fig, ani, frames=y.shape[0])

# Can't figure out what extra_args to set here
ffmpeg_writer = FFMpegWriter(fps=y.shape[0]/sound.duration_seconds, extra_args=['-scale', '1920x1080'])
animator.save('mymovie.mp4', writer=ffmpeg_writer)

print(ffmpeg_writer.frame_size) # prints (1152, 648)

ipd.Video('mymovie.mp4')
如您在上面看到的,我尝试了一些 extra_args ,但是我什么也做不了。

最佳答案

您可以设置DPI如下所述的参数post .
您系统的标称 DPI 为 72,因此分辨率为 72*16 x 72*9 = 1152 x 648 .
我们可以将 DPI 设置为 1920/16 以获得 1920x1080 的分辨率:

fig = plt.figure(figsize=(16, 9), dpi=1920/16)

这是一个可执行代码示例(用于测试):
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

# 72 is the nominal DPI that is the reason figsize=(16, 9) resolution is (1152, 648).
# Set the DPI to 120 for getting resolution is (1920, 1080)
fig = plt.figure(figsize=(16, 9), dpi=(1920/16))
ax = plt.gca() # Get current axes

l1, = ax.plot(np.arange(1, 10), np.arange(1, 10), **{'marker':'o'})

def init():
l1.set_data([],[])

def ani(i, l1):
l1.set_data(i/5, np.sin(0.5*i)*4+5)
l1.set_markersize(10)

animator = animation.FuncAnimation(fig, ani, fargs=(l1,), init_func=init, frames=50, interval=1, blit=False) # 50 frames, interval=1

ffmpeg_writer = animation.FFMpegWriter(fps=10)
animator.save('mymovie.mp4', writer=ffmpeg_writer)

plt.show() # Show for testing

关于python - 设置 matplotlib 视频动画大小 (1920x1080),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68231675/

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