datファイルからアニメーションを作る方法
を先輩に教えてもらった。
#!/bin/csh -f @ i = 8900 while ($i <= 11000) # bcは電卓。下記はエコーして""を投げる。 set a = `echo "$i / 10000" | bc -l` if($i < 10000) then set eps = "a0$i.eps" set dat = "a0$i.dat" ./a.out $a > a0$i.dat #echo a0$i.dat else set eps = "a$i.eps" set dat = "a$i.dat" ./calcvar $a > var_a$i.dat #echo a$i.dat endif gnuplot << EOF set terminal postscript eps color enhanced set output "${eps}" set title "a=$i" set xrange [0:10000] set yrange [0:100] plot "$dat" title "" EOF @ i = $i + 15 end
お作法が厳しいらしい。
- シェルスクリプトを実行し、gnuplotでファイルを沢山作らせる。
- 「# mogrify -format gif *.eps」でepsファイルをgifファイルに変換する。
- ImageMagicのconvertコマンドで
# convert -delay 50 -loop 0 -dispose Previous a*.gif Animation.gif
とする。コマンドの引数の説明
- delay hogeはアニメーション速度の設定
- loop hogeは何回ループするか(0は無限ループ)
- dispose Previousは前の画像を捨てる(なぜか上書きになってしまったので)
var_a*.gif は連番のファイルで作るvarAnimation.gifがアニメーションファイル名
追記:画像が粗くなる問題が解決した。mogrifyを使わず
# convert -delay 50 -loop 0 -dispose Previous -density 400 a*.eps Animation.gif
としたら綺麗なままにできた。