Python の図を動画にして保存する

animation モジュールで図の動画を保存する時には、GIF 動画ファイルとして保存されることが多いらしい。検索してもそういった例が多く出てくる。GIF 形式は昔ながらのフォーマットでありながら Twitter 等でも投稿できるし、最近は GIF video なんていう形式も出てきて盛り返しつつあるフォーマット(GIFV の中身はただの動画で HTML5 を介して適当に制御されているらしい)。

ただ、ファイルサイズの小さい GIF と言えども、動画となると枚数が増えてファイルサイズも大きくなってしまう。1000 枚ぐらいのグラフを動画にすると数十 MB になったりしてとても扱いづらい。そこで、GIF ではなく mp4 の動画として保存すると早くて軽いファイルを書き出せる。save 関数の writer 引数を ffmpeg にしてやるだけなので簡単。


import matplotlib.pyplot as plot
import matplotlib.animation as animation

fig = plt.figure()

def plot():
  #描画済みのグラフを消去
  plt.cla()
  
  #グラフの描画処理
  plt.plot()

ani = animation.FuncAnimation(fig, plot, interval=1, frames=1000)
ani.save("output.mp4", writer="ffmpeg", fps=30, bitrate=1000)
 
#gif ならこっち
#ani.save("output.gif", writer="imagemagick")

コメント

このブログの人気の投稿

Excelで近似直線の傾きと切片を得る

塩基配列のデータを扱うときは専用エディタ ApE を使おう

Illustrator で稲妻マークを描く