6

我想创建一个计算函数的动画。我无法在用于运行动画的集群上安装 ffmpeg 或 mencoder,但已安装 imagemagick。matplotlib.animation显然支持 imagemagick 作为动画编写器(例如,请参见此处)。文档说支持的格式是:

['png', 'jpeg', 'ppm', 'tiff', 'sgi', 'bmp', 'pbm', 'raw', 'rgba']

我将其中几个识别为非动画文件类型,但显然 ffmpeg.sgi以某种方式支持文件。如果我可以在我的家用计算机上使用 ffmpeg 或 mencoder 转换它,我必须在集群器上使用的编解码器是模糊的,这很好。

如何使用 imagemagick 保存带有 matplotlib 的动画?

4

2 回答 2

13

当我努力将一些matplotlib动画导出为动画 gif 时,这个旧帖子突然出现了。这不是火箭科学,但第一次设置仍然有些麻烦。我会留下这篇文章以供将来参考。

至于在集群上设置此环境时的细节,我猜您必须根据您的服务器的特定需求翻译每个步骤。动画 gif 至少是 提供的动画选项之一ImageMagickWriter,但可能还有更多。

如何

  • 获取ImageMagick二进制文件
  • MAGICK_HOME设置指向'<your-install-dir>\modules\coders'文件夹的环境变量(请参阅文档。在 Windows 上时,请记住注销并重新打开)
  • 将 matplotlib 指向 ImageMagick 的安装目录:(rcParams 上的 mpl 文档

    import matplotlib.pyplot as plt
    plt.rcParams['animation.convert_path'] = '<your-install-dir>/magick.exe'
    
  • 导出您的动画!(关于 mpl 文档ImageMagickFileWriter

    writer = ImageMagickFileWriter()
    your_animation.save('location.gif', writer=writer)
    

请注意,默认情况下,ImageMagick 抛出的错误不会到达您,除了非零返回码。要获得更广泛的反馈,您需要类似的东西

import matplotlib as mpl
mpl.verbose.set_level("helpful")

奖金

作为奖励,这是一个生命证明:

荷兰母亲第一次怀孕的年龄

于 2017-03-02T20:24:43.630 回答
0

实际上你可以下载 imagemagick 并编辑 matplotlibrc 来启用它

于 2015-04-10T14:50:06.227 回答