gnuplot

gnuplot で遊ぼう

GNUPLOT は、Thomas Williams, Colin Kelleyらによって作られたグラフ作成ツールです 。UNIXの他、MS-DOS,MS-WINDOWS,Macintosh等で利用できます。

gnuplot で関数のグラフを描く

% 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
% 

gnuplot でデータの可視化

まず準備として、各自のホームディレクトリ以下のデータを 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 を起動してください。
データファイルのグラフ化は plot "ファイル名"です。

gnuplot> plot "1.dat"

データ点ごとに点を描いています。
同じデータを用いて、描画方法を変更することができます。

gnuplot> plot "1.dat" with line

データ点を直線で結んでいます。結果として滑らかな曲線としてのグラフに見えます。
以下のようにすると棒グラフの様に描画します。

gnuplot> plot "1.dat" with impulse

3次元プロットも可視化できます。

gnuplot> splot [-2:2][-2:2] exp(-(x**2 + y **2))
gnuplot> set hidden3d
gnuplot> replot
gnuplot> set isosample 30,30
gnuplot> replot

gnuplot バッチ処理を用いて簡易アニメーション。

まず以下の内容のファイルを 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

です。



TOP