如何设置动画的图像分辨率?

mr_*_*res 10 animation matplotlib

如何使用"matplotlib.animation"模块设置保存为mp4电影的动画的分辨率?

在网络上我只找到了使用"animation.FuncAnimation"的例子.例如,使用http://jakevdp.github.com/blog/2012/08/18/matplotlib-animation-tutorial/上的精彩教程:

anim = animation.FuncAnimation(fig, animate, init_func=init,
                           frames=200, interval=20, blit=True)
anim.save('basic_animation.mp4', fps=30, extra_args=['-vcodec', 'libx264'])
Run Code Online (Sandbox Code Playgroud)

从matplotlib.animation模块参考我发现"animation.Animation.save"方法提供了一个"dpi" - 参数,但我不知道如何正确应用这个函数

matplotlib.animation.Animation.save(filename, writer=None, fps=None, dpi=None, codec=None, bitrate=None, extra_args=None, metadata=None, extra_anim=None)
Run Code Online (Sandbox Code Playgroud)

一个小示例代码可能会有所帮助.

非常感谢.

约翰内斯

PS:顺便说一下,如何使用sytax-highlighting插入Python代码?

tac*_*ell 9

您可以以圆形方式控制分辨率.分辨率,图形大小和dpi并非都是独立的,如果你知道其中两个,那么第三个是固定的.

您可以dpi在save参数中设置,在保存之前,请设置图的大小

fig.set_size_inches(w_in_inches, h_in_inches, True). 
Run Code Online (Sandbox Code Playgroud)

那你的解决方案就是dpi * w_in_inches X dpi * h_in_inches.

dpi = 100
writer = animation.writers['ffmpeg'](fps=30)
ani.save('test.mp4',writer=writer,dpi=dpi)
Run Code Online (Sandbox Code Playgroud)

您可能需要从源代码升级到更新版本的mpl(debian很棒,因为它非常保守而且非常糟糕,因为它非常保守).


Dav*_*vid 3

bitrate是用于指定电影质量的参数。您设置的值越高,电影的质量就越高。

  • 我认为“bitrate”(也许还有“dpi”)是在 MPL 1.2 左右添加的。 (2认同)