Script for Gnuplot
Home >> Note >> Script for Gnuplot

gnuplotスクリプトファイルに関するTips

実験データなどをgnuplotを用いてグラフに出力する時,(少し修正したいなど様々な理由で) 同じグラフを何度も出力する必要がたびたび出てきます.この時,修正するたびにgnuplot の描画コマンドを全て入力してくのは面倒に感じてきます.gnuplotには,そのような時の為に, あらかじめ描画コマンドを羅列したファイル (スクリプトファイル)を作成しておき, そのファイルを読み込むという機能が備わっています.ここでは,そのgnuplotのスクリプト ファイルに関するTipsをいくつか紹介します.

まず,スクリプトファイルを読み込むための命令としてloadがあります.

gnuplot> load "<filename>"

gnuplot実行中に上記のようなのようにコマンドを打つと,<filename> の中に記述されている命令が順に実行されていきます.ただし,load 命令は引数を指定することができないにで,例えば,複数の実験データを同じ体裁で 描画する時などは少し面倒になります.そこで,そのような場合には,call命令を用います.

gnuplot> call "<filename>" "<args1>" "<args2>" ...

基本的にはload命令と同じですが,call命令では<argsN>に指定された部分が スクリプトファイルに渡されます.スクリプトファイル内では,最初に指定したものから順に $0,$1,... と言う形でアクセスすることができます.

注意事項として,gnuplotでは通常でも$1,$2といった変数を使用しています.例えば,plot "hoge.txt" using ($1+2):2 with line などのように,データ中のある列の各要素に対して, 何らかの計算を行った後に描画したい場合にこれらの変数を用いて各要素へアクセスします. これをそのままスクリプトファイルへ記述した場合,期待通りの動作を行いません(上記の例では, $1の部分に引数で受け取った値を当てはめてしまう).スクリプトファイル中で上記の例と同じ動作をさせるためには, plot "hoge.txt" using ($$1+2):2 with lineといったように$マークを2つ続けて 記述しておきます.