我正在尝试用moviepy为matplotlib等高线图制作动画。我对matplotlib产生的单个框架感到满意。但是最终的视频分辨率要低得多,以至于难以阅读标签和注释。这不是我以前使用matplotlib图形中的moviepy动画或moviepy文档中提供的任何示例所遇到的问题。
我正在使用的代码非常接近moviepy文档中的示例:
import matplotlib.pyplot as plt
import moviepy.editor as mpy
from moviepy.video.io.bindings import mplfig_to_npimage
duration = 20
def make_frame(t):
i = np.int32(model.time_steps * t / duration)
fig, ax = model.plot_frame(i)
frame = mplfig_to_npimage(fig)
plt.close('all')
return frame
animation = mpy.VideoClip(make_frame, duration=duration)
animation.write_videofile("movie.mp4", fps=24, codec='libx264')
model
是我自己的类,其中包含所有要呈现的数据。
我知道渲染整个图并每次将其关闭都很笨拙-有些其他问题一时需要避免,但是要改进的事情还很遥远。
我猜我可能需要向ffmpeg
中的animation.write_videofile
传递一些额外的参数?但是我目前很困惑,不胜感激任何人可能拥有的任何指点?
干杯