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

时间:2013-02-02 20:57:02

标签: 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'])

从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)

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

非常感谢。

约翰

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

2 个答案:

答案 0 :(得分:6)

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

您可以在保存参数中设置dpi,在保存之前,使用

设置图的大小
fig.set_size_inches(w_in_inches, h_in_inches, True). 

您的解决方案是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)

你可能需要从源代码升级到更新版本的mpl(debian很棒,因为它太保守了,因为它太保守了)。

答案 1 :(得分:1)

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

相关问题