GNUPLOT は、Thomas Williams, Colin Kelleyらによって作られたグラフ作成ツールです 。UNIXの他、MS-DOS,MS-WINDOWS,Macintosh等で利用できます。
% gnuplot
で gnuplot を起動します。
まず gnuplot の機能によって様々なグラフを描いてみましょう。最初は y=sin(x) のグラフから、
gnuplot> plot sin(x)
別のグラフを描きます(* は掛け算の記号を表します)
gnuplot> plot cos(2*x)
2つのグラフを重ねて描きます。
gnuplot> plot sin(x), cos(2*x)
2つのグラフが異なる色で表示されています。右上に色と関数との対応が表示されています。
更にこのグラフの上に別のグラフを重ねることもできます。
gnuplot> replot exp(-x*x)
ここで一旦 gnuplot を終了しましょう。quit が終了のコマンドです。
gnuplot> quit %
まず準備として、各自のホームディレクトリ以下のデータを emacs でファイル 1.dat として作成するか、
/homer/pl/tea/kht23151/Examples/gnuplot/1.dat を各自のホームディレクトリに
コピーしてください。
ちなみにデータは各点を x座標、y座標のセットで記述する形になっています。
-20.000000 -3.041676 -19.000000 -3.036427 -18.000000 -3.030596 -17.000000 -3.024081 -16.000000 -3.016755 -15.000000 -3.008456 -14.000000 -2.998978 -13.000000 -2.988049 -12.000000 -2.975310 -11.000000 -2.960273 -10.000000 -2.942255 -9.000000 -2.920278 -8.000000 -2.892883 -7.000000 -2.857799 -6.000000 -2.811295 -5.000000 -2.746802 -4.000000 -2.651635 -3.000000 -2.498092 -2.000000 -2.214297 -1.000000 -1.570796 0.000000 0.000000 1.000000 1.570796 2.000000 2.214297 3.000000 2.498092 4.000000 2.651635 5.000000 2.746802 6.000000 2.811295 7.000000 2.857799 8.000000 2.892883 9.000000 2.920278 10.000000 2.942255 11.000000 2.960273 12.000000 2.975310 13.000000 2.988049 14.000000 2.998978 15.000000 3.008456 16.000000 3.016755 17.000000 3.024081 18.000000 3.030596 19.000000 3.036427このデータを gnuplot でグラフ化しましょう。再び gnuplot を起動してください。
gnuplot> plot "1.dat"
データ点ごとに点を描いています。
同じデータを用いて、描画方法を変更することができます。
gnuplot> plot "1.dat" with line
データ点を直線で結んでいます。結果として滑らかな曲線としてのグラフに見えます。
以下のようにすると棒グラフの様に描画します。
gnuplot> plot "1.dat" with impulse
gnuplot> splot [-2:2][-2:2] exp(-(x**2 + y **2)) gnuplot> set hidden3d gnuplot> replot gnuplot> set isosample 30,30 gnuplot> replot
まず以下の内容のファイルを emacs で作成しましょう。ファイル名は sample.gpl とします。
plot [0:2*pi] [-1:1] sin(x) pause 0.5 plot [0:2*pi] [-1:1] sin(x-0.25) pause 0.5 plot [0:2*pi] [-1:1] sin(x-0.5) pause 0.5 plot [0:2*pi] [-1:1] sin(x-0.75) pause 0.5 plot [0:2*pi] [-1:1] sin(x-1) pause 0.5 plot [0:2*pi] [-1:1] sin(x-1.25) pause 0.5 plot [0:2*pi] [-1:1] sin(x-1.5) pause 0.5 plot [0:2*pi] [-1:1] sin(x-1.75) pause 0.5 plot [0:2*pi] [-1:1] sin(x-2) pause 0.5 plot [0:2*pi] [-1:1] sin(x-2.25) pause 0.5 plot [0:2*pi] [-1:1] sin(x-2.5) pause 0.5 plot [0:2*pi] [-1:1] sin(x-2.75) pause 0.5 plot [0:2*pi] [-1:1] sin(x-3) pause 0.5 plot [0:2*pi] [-1:1] sin(x-3.25) pause 0.5 plot [0:2*pi] [-1:1] sin(x-3.5) pause 0.5 plot [0:2*pi] [-1:1] sin(x-3.75) pause 0.5 plot [0:2*pi] [-1:1] sin(x-4) pause 0.5 plot [0:2*pi] [-1:1] sin(x-4.25) pause 0.5 plot [0:2*pi] [-1:1] sin(x-4.5) pause 0.5 plot [0:2*pi] [-1:1] sin(x-4.75)
emacs でこのようなファイルを作成する際は、コピー&ペーストを利用するのがうまい方法です。
コピー、カット(kill)、ペースト(yank)
●
set-mark-command : C-SPC ここでマークしたところから、現在のカーソル位置までを選択の対象にする
●
kill-region : C-w 領域のカット
●
copy-region-as-kill-nomark : M-w 領域のコピー
●
yank : C-y カットした領域の貼り付け
作成したら、再び gnuplot を起動して以下のコマンドを入力してください。
gnuplot> load "sample.gpl"
このアニメーションは, sin(x)のグラフを x 軸方向に 0.25ずらしたものを 0.5秒間隔で表示を繰り返すことで実行しています。
このように、gnuplot に対する一連の操作をあらかじめファイルで準備する事で、多少込み入ったことも出来るようになります。
パラメータ表示で定義される図形、例えば円{x=cos(t),y=sin(t), 0≦t≦2π}のようなものは次の様にして 描くことができます。まず
gnuplot> set parametric
とすることで、パラメータ表示モードになります。これ以降 plot や splot コマンドはパラメータ表示でのグラフを描くことになります。たとえば
gnuplot> plot cos(t),sin(t) gnuplot> splot cos(u)*cos(v),cos(u)*sin(v),sin(u)
で、円や球面が描けます。パラメータの範囲を指定したいときは
gnuplot> plot [0:pi] cos(t),sin(t) gnuplot> plot [0:4*pi] sin(t),sin(2*t)
などとしてください。パラメータ表示モードをやめるときは
gnuplot> unset parametric
です。