時系列データをグラフでプロットして、アニメーションとして保存する方法

グラフをアニメーション(動画ファイル)で保存する方法です

gnuplotを使います

gnuplot の do for 構文

"do for" を使うと簡単にアニメーションが作れます.

とりあえずsinカーブをアニメーションさせる例です

do for [i=0: 60] {
   plot sin(x +  i/10.*pi)
}

これだけでplotコマンドを60回実行できます

gnuplotスクリプト

スクリプトといっても簡単で,単にテキストファイルにコードを保存して,gnuplotコマンドの引数で与えるだけです.

例えば以下の内容を anime.gp として保存して

do for [i=0: 59] {
   plot sin(x +  i/10.*pi)
}

コマンドラインgnuplot を次のように起動します

$ gnuplot  anime.gp

shebang を使う場合は先頭に

#!/usr/bin/env gnuplot

を加えるだけです.

アニメーションは,

動画として保存する

上記のスクリプトに2行を加えるだけでアニメーション gif を出力できます.

アニメーション

スクリプトを全部載せておきます.

#!/usr/bin/env gnuplot

set terminal gif animate delay 10 size 640,480
set output 'anime.gif'

do for [i=0: 59] {
   plot sin(x +  i/10.*pi)
}

アニメーションの再生速度は delay 10 で指定しています.

単位は1/100秒です.たとえば delay 10を指定した場合は 10/100秒,つまり1/10秒でアニメーションが1コマ(1フレーム)進みます.

ただし アニメーション gif の再生度は,再生ソフトに依存します.

パワーポイントやkeynoteにアニメーションを貼る場合

mp4 形式に変換しておいた方が安全です

$ ffmpeg -i anime.gif  anime.mp4

ffmpeg を使えばコマンド一発で動画を変換できます