matplotlibで動くグラフを書いて、AnimationGifに保存するにはImageMagickという画像のソフトをmatplotlibから呼び出すように設定すれば、こんな風な動くグラフが作成できます。
まずはImageMagickの入手から。
ImageMagickは下記ページより、ダウンロードします。
Windows版のファイルは下の方にあるので、downloadをクリックしてファイル(ImageMagick-7.0.6-0-Q16-x64-dll.exe)を入手します。
ImageMagickのインストールはダウンロードしたファイルを実行し、基本デフォルトのままのインストールで大丈夫だと思います。
ImageMagickのインストールが出来たら、matplotlibの設定を行います。
まず、matplotlibのmatplotlibrcというファイルがある場所を確認します。
場所はPythonのプログラムで
import matplotlib
print(matplotlib.matplotlib_fname())
と入力し実行すると、matplotlibrcのファイルのパスが表示されるので、matplotlibrcファイルをメモ帳などのテキストエディタで開きます。
私の場合のパスは
C:\Program Files\Anaconda3\Lib\site-packages\matplotlib\mpl-data\matplotlibrc
でした。
このmatplotlibrcファイルの一番下の方に
#animation.convert_path: ‘convert’ #・・・・・・
と書いてある部分があるので、これを編集してもいいのですが、私は↓のようにImageMagickの実行ファイル(magick.exe)のパスを追記しました。
この状態で、このようなコード↓を書くと、最初に示したアニメーションGifのファイルが生成されます。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig = plt.figure()
x = np.arange(-np.pi, np.pi, 0.1)
ims = []
for a in range(40):
y = np.sin(x - a / 20 * np.pi)
# sinカーブ
im1, = plt.plot(x, y, "b")
# 点
im2, = plt.plot(-np.pi, np.sin(-np.pi - a / 20 * np.pi), marker='o', color='b' )
ims.append([im1, im2])
ani = animation.ArtistAnimation(fig, ims, interval=33)
ani.save('sample.gif', writer='imagemagick')
Sinカーブだけのサンプルは探せばいっぱいあるのですが、線上に点を打つだけでも、訳わかんなかった~(まだ、分かってないですけど。。)
コメント