matplotlibでgif動画生成

3次元グラフの次は動画(gif)を用いたデータの可視化方法のメモです。

matplotlibでは、次のクラスに、パラパラ漫画のようにグラフのリストを渡してあげることで、
アニメーションさせることができます。
matplotlib.animation.ArtistAnimation

例として、サインカーブを少しずつずらしながら描いてみました。


import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import ArtistAnimation

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

# 0 <=x < 2pi の範囲の点列を作成。
x = np.linspace(0, 2*np.pi, 101)[: -1]
# 各コマの画像を格納する配列
image_list = []

for i in range(100):
    # ずらしながらsinカーブを描写し、配列に格納
    y = np.sin(np.roll(x, -i))
    image = ax.plot(x, y)
    image_list.append(image)

# アニメーションを作成
ani = ArtistAnimation(fig, image_list, interval=10)
# gifに保存
ani.save('sin_animation.gif', writer='pillow')

保存されたgifがこちらです。

フルサイズで貼り付けると記事中でも動くのですね。
(いつものようにサムネイルで張ったら止まってしまっていて、クリックしないと動画になりませんでした。)

動画が使えると少しデータの可視化の幅が広がりそうです。
とりあえず機械学習の学習の進捗とかの可視化などに使ってみたいです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です