今週は大抵のUNIXシステムで利用できる、簡単なグラフ作成ツール gnuplot を使ってみる。
gnuplot の起動と簡単な使用
gnuplot
set title "My Simple Function 1" plot x
set title "My Simple Function 2" set xlabel "X-Axis" set ylabel "Y-Axis" plot x**2この例では、X軸とY軸の名前を入れている。 何のプロットかを理解するのに役立つように、 座標軸にも名前を付けることを勧める。 プロットした関数は「y=x**2(xの2乗)」。 この様に gnuplot は大抵の関数をプロット出来る (cos(x), log(x), cos(x)+sin(x) など)。
set title "My Simple Functions 1 and 2"
plot x,x**2
上の例のように2個以上の関数をカンマ「,」
で区切って並べることで複数の関数を1つの図に納めることができる。
plot [0.0:2.0] x,x**2
プロットの範囲は [x1:x2] の様に指定してやると、
x1からx2の範囲がプロットされる。
set title "My Simple Function 3" plot [0.0:5.0] exp(-x) set title "My Semi-Log Plot" set logscale y plot [0.0:5.0] exp(-x) set nologscale y最初の plot コマンドと二回目の plot コマンドの結果の違いがわかるだろうか。 「set logscale」コマンドと 「set nologscale」コマンドで、 ログプロットにするかどうかどうかを変更する。
set parametric set title "My Parametric Plot" plot cos(t),sin(3*t) set noparametricパラメットリックプロットというのはx座標とy座標が共通の変数 (ここではt)の関数で与えられているいる時に都合の良いプロット だった。 この例では「x=cos(t)」「y=sin(3*t)」となっている。 gnuplot が理解できる共通の変数は「t」 だということに注意。 最後の行のコマンドでパラメトリックプロットのモードを終了し、 通常のプロットのモードに戻っている。
gnuplot の使い方がわかってきただろうか。 gnuplot の終了は 「exit」 あるいは「quit」コマンドで。
実験データなどをプロットしたい場合には、 数値データファイルを用意し gnuplot にプロットさせるのが便利である。
数値データのプロット法set title "My Simple Data Plot" set grid plot "gnuplot.dat"このコマンドの例では、 データファイル中のX座標とY座標のみを使ってプロットを行なった。 プロットする前に実行している「set grid」 コマンドは、プロット中にグリッドラインを入れるコマンド。 ここではやらないが「set nogrid」で解除できる。 データが入ったデータファイル名は2個の「"」 で挟む必要がある。
plot "gnuplot.dat" with errorbars
エラーバー(誤差棒)が各データポイントに付いたはず。
plot "gnuplot.dat",0.25*x+9.0 plot "gnuplot.dat" with errorbars,0.25*x+9.02番目の例では、エラーバー付きでデータをプロットした上に、 関数をプロットしている。 見てわかるように、数値データの方にエラーバーを付けるという意味で 「"gnuplot.dat" with errorbars」 をひとかたまりに書いている。
gnuplot は2次元プロットももちろんできる。
簡単な2次元プロットset title "My Simple 2D Plot" set xlabel "X-Axis" set ylabel "Y-Axis" set zlabel "Z-Axis" splot [-10:10] [-10:10] x**2-y**22次元プロットでは新たにZ軸が付け加わるので、 Z軸の名前を付けている。 プロットの範囲指定は2次元なのでXとYについて行なう必要がある。
set view 80,30 splot [-10:10] [-10:10] x**2-y**2 set view 25,30 splot [-10:10] [-10:10] x**2-y**2 set view 60,60 splot [-10:10] [-10:10] x**2-y**2
set nosurface set contour set view 0,0 splot [-10:10] [-10:10] x**2-y**2プロットが粗いためにあまり奇麗では無いが等高線が描けたはず。 「set view 」コマンドは等高線が見易いように設定した。 元の surface のタイプに戻すには以下のコマンドが使える。
set nocontour set surface
set view 60,30 set parametric splot cos(u),sin(u),u一本の螺旋が描けたはず。
splot exp(-0.1*v)*cos(u),exp(-0.1*v)*sin(u),u
以上2次元のプロットの使い方だったが楽しめただろうか。