Python3 - matplotlibでアニメーションGIFをつくる
matplotlib.animatioを使うとアニメーションがつくれます。自分の環境ではgifで保存しようとしたら、imagemagickがなくてエラーになりました。imagemagickのインストールとかはここに書いてありました。
Imagemagick
http://www.imagemagick.org/script/binary-releases.php#windows
Imagemagickのパスをmatplotlibに設定する必要がある。下記のようにするとmatplotlibが見ている設定ファイルの場所がわかる。
import matplotlibprint(matplotlib.matplotlib_fname())自分はユーザディレクトリ内のAnaconda3の中の下記だった。
Anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrcmatplotlibrcの最後の行らへんに、下記行があるので、ここにImagemagickのパスを入れる。
#animation.convert_path: 'convert' # Path to ImageMagick's convert binary.コメントを外して、下記のように入力します。入力の際、パスを「‘」で囲むと下記のようなエラーになります。
animation.convert_path: D:\ImageMagick-7.0.4-Q16\magick.exeC:\Users\hoge\Anaconda3\lib\site-packages\matplotlib\animation.py:782: UserWarning: MovieWriter imagemagick unavailable warnings.warn(“MovieWriter %s unavailable” % writer) Traceback (most recent call last): File “C:/Users/hoge/hoge.py”, line 15, in ani.save(‘sample.gif’, writer=‘imagemagick’) File “C:\Users\hoge\Anaconda3\lib\site-packages\matplotlib\animation.py”, line 810, in save writer.grab_frame(**savefig_kwargs) File “C:\Users\hoge\Anaconda3\lib\contextlib.py”, line 66, in exit next(self.gen) File “C:\Users\hoge\Anaconda3\lib\site-packages\matplotlib\animation.py”, line 196, in saving self.finish() File “C:\Users\hoge\Anaconda3\lib\site-packages\matplotlib\animation.py”, line 389, in finish + ’ Try running with —verbose-debug’) RuntimeError: Error creating movie, return code: 1 Try running with —verbose-debug
サンプルコード
import numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animation
def anim(): graphs = [] fig = plt.figure() x = np.arange(-50, 50, 0.1) y = x ** 2 for i in range(50): plt.plot(x, y) g = plt.plot(i, i ** 2, 'o') graphs.append(g) ani = animation.ArtistAnimation(fig, graphs, interval=50) plt.show() ani.save('anim.gif', writer='imagemagick')
if __name__ == '__main__': anim()