gnuplotのスクリプト

gnuplotのスクリプトとは

gnuplotは対話型で使うのが一つのやり方ですが、これだとグラフを作るたびにいろいろなコマンドを打ち直さなければならず、現実的ではありません。この欠点はスクリプト形式を使うことで回避できます。スクリプト形式とはgnuplotのコマンドを予め保存したファイルを作りそれをgnuplotへ読み込ませることです。この方法により数々のデータ処理やグラフ描画を連続して行わせることができます。

この方法の長所としては、

  1. スクリプトが保存されていればいつでも同じグラフを再描画できる。
  2. いったん作ったグラフのスクリプトを別のグラフの描画に再利用できる。
  3. グラフ描画やデータ処理の流れが見えるため、後でどんな処理を行ったのか確認がしやすい。
  4. 関数定義・変数定義・文字列変数・ループ・外部コマンドなどを用いた複雑な処理が行える。

などの点が上げられます。

gnuplotを使うときはぜひスクリプト形式で使うことをお勧めします。

スクリプト形式でのgnuplot使い方

スクリプト形式でgnuplotを使うには、まずはスクリプトファイルを準備する必要があります。まずはテキストファイルで以下のようなファイルを作り、それを例えばC:/gnuplot/というフォルダにtest.pltという名前で保存します。

set title "test of gnuplot script"
plot sin(x)

そして、gnuplotのプロンプトからload "C:/gnuplot/test.plt"と入力します。(もしくはcd "C:/gnuplot"と入力してC:/gnuplotフォルダに移動してからload "test.plt"とします。)wgnuplotを使用している場合はopenボタンをクリックしてファイル選択画面からtest.pltを選択する方法もあります。すると、以下のようなグラフが表示されるはずです。

test.pltを読み込ませたときのグラフ出力

このようにスクリプト形式を使うと、ファイルを読み込ませるだけでset title "test of gnuplot script"という命令とplot sin(x)という命令が順に連続してgnuplotに送られます。

上の例だけではあまりスクリプト形式のありがたみが判らないかもしれません。しかし、以下の例ではどうでしょうか? この全てのコマンドをグラフを作るたびに毎回入力していたのではさすがに大変ですが、スクリプトとして保存しておけばいつでもグラフを再描画することができるわけです。また、どんな処理をしたかも一目瞭然で、後から処理過程を検討する場合にも大いに役に立ちます。

set xrange [0:50]
set samples 500
set xlabel "time (sec)"
set ylabel "amplitude (V)"
set multiplot layout 2,1
theta=0.5*pi
tau=25
set title "test of gnuplot script - oscillation"
plot sin(x) title "input", sin(x-theta) title "output"
set title "test of gnuplot script - dumping oscillation"
plot sin(x) title "input", \
     sin(x-theta)*exp(-x/tau) title "output"
unset multiplot
test2.pltを読み込ませたときのグラフ出力

スクリプト形式でgnuplotを使うより詳細な説明はスタートガイドも御覧ください。