如何使用“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代码?
答案 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
是用于指定电影质量的参数。您设置的值越高,电影的质量就越高。