フリーウェアでシミュレーション結果アニメーションを作る

gnuplot + perl + imagemagick 編

<< Prev - Index - Next >>

0. gnuplotを使う
0.1 データ形式
■ gnuplotはコマンドを入力してグラフを作成します。
グラフ作成でもっとも根本となるデータは粒子データなら粒子ごとのx,y,z情報です。 時系列ごとのデータは、連番のファイルに作成します。

■ 今回サンプルデータとして、ダストに関するシミュレーションデータを使ったので、Dust001.txt, Dust002.txt … というように名前をつけておきます。 ファイルの中身は、例えば[x, y, z]を順番に書き出した、

Dust001.txtDust002.txt
0.363407 0.354748 0.419623
0.364718 0.356003 0.418807
0.362038 0.356399 0.419935
0.36348 0.357523 0.41915
.....
0.363407 0.354748 0.45668
0.364718 0.356003 0.455864
0.362038 0.356399 0.456993
0.36348 0.357523 0.456207
.....

のような形になります。

0.2 gnuplotを使う(LINUX/UNIX)

■ LINUX/UNIX 版はインストールされていれば端末から gnuplot で起動します。

apt系のパッケージ管理ならば、apt-get install gnuplot 等でインストールします。

■ 通常は、データの置いてあるディレクトリに行ってから gnuplot を動かすと思いますが、gnuplot 内でも cd '〜〜' でディレクトリ間の移動をすることができます。


■ Windowsであれば、gnuplotの移植版であるwgnuplotを入手して使います。

■ 最初に文字がうまく表示されない場合は、フォントの設定がされていません。右クリックメニューからフォント選択をして文字を読めるようにします。

■ wgnuplotの場合は、デフォルトの作業フォルダが実行ファイルのある場所になっています。
コマンド cd '〜〜' を使って順にデータのあるフォルダまで移動していくこともできますが、強引にOpenボタンから適当なファイルを選ぶことで、場所の移動ができます。
(当然文法が違うとエラーがでますが、簡単に場所の移動ができるので便利でしょう)

0.3 gnuplot 基本操作

■ 基本操作はそう難しくはありません。 plot または省略形の p でグラフを描画します。データ点だけではなく、数式を描画することもできます。
gnuplot> plot sin(x)
で、サインカーブを表示します。


■ splot または sp コマンドでは、3次元描画をすることもできます。昔はカメラ位置などを指定する必要がありましたが、マウスでぐりぐりと動かせるようになっています。マウスの中ボタン+左右で、ズームアップ&ダウンもできます。
gnuplot> sp sin(0.3*x)*cos(0.3*y)


■ データをプロットするときは、plot や splot の後にファイル名を記述します。
gnuplot> p 'SAMPLEDATA/Dust001.txt' u 2:3 w p pt 1 ps 0.3

■ ファイル名後にはオプションをつけます。using(u) は何列目を描画するかのオプションです。2:3 ならば y-z平面上のグラフを描画したということになります。

w p はポイント描画です。(with point の省略形)。point(p) の他に line(l) や dot(d) があります。
この他、pt (point type) や ps (point size) lw (line width) などのオプションで見た目の調整ができます。

■ 3次元描画も同様に行えます。
gnuplot> sp 'SAMPLEDATA/Dust001.txt' u 1:2:3 w p pt 1 ps 0.3
using(u) オプションを使うときは3つ数字が必要になります。

■ 描画が遅くてカメラを動かせないときには、Ctrlキーを押している間軸だけが表示されるので、遅延なくカメラを動かせます。

■ この他通常の使用で必要になるだろうコマンドは

set range x [-1:1] x軸の範囲を-1から1に
set autoscale 自動設定に戻す
set log x x軸をログスケールにする
unset log 戻す。昔は set nolog だった
rep 再描画
quit gnuplotの終了

といったところでしょうか。軸の範囲は、p [0:10] [-1:1] sin(x) のように、plot コマンド内でも設定ができます。


gnuplotの使い方についての日本語のサイトとしては以下のサイトが使いやすく便利です。

http://folk.uio.no/hpl/scripting/doc/gnuplot/Kawano/
<< Prev - Index - Next >>
inserted by FC2 system