ここでは、数式およびファイルに格納されたデータを、簡単に グラフ化するフリーソフトの一つである、GNUPLOT の基本的な 使い方について説明します。GNUPLOT では、2次元の X-Y グラフ、棒グラフ、3次元の X-Y-Z、 等高線図を作成することができます。また、X11, Postscript, PBM などさまざまな出力形式(装置)に対応しています。
1. GNUPLOT の起動と終了
2. 2次元グラフ
3. 3次元グラフ
4. 目盛り、ラベル、グリッドの指定
5. データをファイルから読み込んでグラス化する
6. 複数の関数やデータを同一グラフ上に表示する
7. グラフの表示形式
8. 縦横比、全体の大きさを変える
9. 出力ファイルと出力形式の変更
10. コマンドとオプションの情報を得る方法
11. 組み込み関数
起動 $ gnuplot G N U P L O T Linux version 3.7 ... termainal type set to 'x11' gnuplot> 終了 gnuplot> quit ! exit でもよい2次元グラフには、plot、3次元グラフには、splot コマンドを 用います。グラフの表示方法、出力形式などは set で変更します。
書式 plot 変域指定 [値域指定] 式 ディフォルトで x が独立変数として定義されている。 例 gnuplot> plot [0:10] 1-exp(-x) 独立変数を定義して、使用することもできる。 例 gnuplot> c(t,K) = K*(1-exp(-t/T)) gnuplot> T = 1 gnuplot> plot [t=0:10] c(t,1) 変域および値域の指定 gnuplot> plot [0:10] 1-exp(-x) ! 変域を 0 から 10 gnuplot> plot [0:10][0:20] 1-exp(-x) ! 変域を 0 から 10 値域を 0 から 20 gnuplot> plot [0:10][0:] 1-exp(-x) ! 変域を 0 から 10 値域の下限を 0 gnuplot> plot [0:10][:10] 1-exp(-x) ! 変域を 0 から 10 値域の上限を10 gnuplot> plot [t=0:5] 1-exp(-1/t) ! t を変数とする場合 データポイント数の指定 例:データポイント数を 500 に変更 gnuplot> set samples 500 ディフォルトの x 軸のデータ点数は、100 (3次元グラフの場合は、x 軸 100, y 軸100)。 現在の設定は、show samples で確認できる。
書式 splot 値域指定 値域指定 [変域指定] 式 x, y はディフォルトで、独立変数 例 gnuplot> splot [0:3.14][0:3.14] sin(x*y) gnuplot> f(x) = sin(x)/x gnuplot> splot [-30:30][-30:30] f(sqrt(x**2+y**2)) 視点位置の指定 書式 set view X軸の回転角, Z軸の回転角, 全体の縮尺, Z軸の縮尺 ディフォルトは、60, 30, 1, 1 例 gnuplot> set view 20,40,1,1 gnuplot> replot !前回実行した (s)plot を実行 陰線処理 set hidden3d ! 陰線処理を行う set nohidden3d ! 陰線処理を解除 等高線 set contour base ! 底面上に等高線を表示 set contour surface ! 面上に等高線を表示 set contour both ! 底面と面上に等高線をひ表示
set logscale x ! X軸の対数目盛りの指定 set logscale y ! Y軸の対数目盛りの指定 set nologscale x ! X軸の対数目盛りの解除 set nologscale y ! Y軸の対数目盛りの解除 set title "グラフのタイトル" set xlabel "X軸のラベル" set ylabel "Y軸のラベル" set grid ! グリッド線を入れる set nogrid ! グリッド線を入れない(ディフォルト)
データ列は、スペース、タブ、カンマのいずれかで区切られている。
データファイルの例 (2d_sample.data)
hotaru% more /usr/local/gnuplot_data/2d_sample.data 0.00000 0.00000 0.00008 0.00451 0.00066 0.01782 0.00220 0.03946 0.00514 0.06872
数式の替わりに'と'で括ってファイル名を書く。
使用するデータ列を明示しなければ、1 列目が X軸 が 2 列目が Y軸 (3列目が Z軸)となる。使用するデータ列は、'using' をオプションで指定する。
例
gnuplot> plot '/usr/local/gnuplot_data/2d_sample.data'2列目を X軸の値、3列目を Y軸の値にする場合
gnuplot> plot 'sample.dat' using 2:3
gnuplot> plot 'sample.dat' title "CO2" !グラフ点のタイトルを CO2 に変更する。 gnuplot> plot 'sample.dat' notitle !グラフ点のタイトルを表示しない。範囲指定や、set によるオプション指定は、式で与える場合と同様
方法 プロットしたい式、データを"," で区切って並べる。 例 gnuplot> plot [0:10] 1-exp(-x), sin(x), cos(x), sqrt(x) gnuplot> plot [0:10] sin(x), '/usr/local/gnuplot_data/2d_sample.data' gnuplot> plot 'abc.data', 'efg,data' gnuplot> plot 'abc data' using 1:2, 'abc.data' using 1:3
グラフを折れ線で書くのか、点のみをプロットするのか、棒グラフとして 作成するかなどのグラフの表示形式を指定するには、plot コマンドに with オプションを付けてそのスタイルを指定する。 指定方法 gnuplot> plot "data_file" with style または gnuplot> plot function with style グラフのスタイル lines ライン表示(関数を指定した場合のディフォルト) points データポイント表示(データファイルを指定した場合のディフォルト) linespoints ラインとデータポイント表示 impluses インパルス表示 dots ドット表示 steps ステップ表示 errorbars 誤差グラフ boxes 棒グラフ boxerrorbars 誤差と棒グラフ ◎例: gnuplot> plot 'sample.dat' with linespoints
図は、size 指定をしないと横長になっています。 set size で、図の縦横比を変えることができます。 例えば、図を正方形にしたければ、 set size 0.73, 1 とします。(プリントアウトしたときの縦横比は、プリンタにも 若干依存しますので、数値の微調整は、適当に行って下さい) また、図をプリントアウトしたり、gif に変換して Web ページに 張り付けるような場合、ディフォルトの大きさでは、一般に大きな 図になりすぎてしまいますが、これも set size で図全体の大きさ を変更することができます。 例えば、図の大きさを半分にしたければ、 set size 0.5, 0.5 のようにします。
出力ファイルの指定 set output 'ファイル名' 出力形式の変更 set terminal フォーマット 指定できるフォーマット (単に set terminal とタイプすれば指定できるタイプが確認できる) x11 X ウィンド(ディフォルト) png PNG 形式 postscript Postscript postscript eps Encapsulated Postscirpt latex LaTeX の picture 環境 eepic LaTeX の 拡張 picture 環境(eepic.sty) mf METAFONT pbm PBM 形式 例:postscript 形式で、abc.ps というファイルに出力する。 gnuplot> set output 'abc.ps' gnuplot> set terminal postscript Options are 'landscape noenhanced monochrome dasheddefaultplex .. gnuplot> replot
boarder, nonboarder グラフのまわりに枠を表示する、しない grid, nogrid グラフの中の、X、Y軸の目盛りの目盛り位置に 格子を表示する、しない key, nokey 曲線名を表示する、しない time, notime グラフに日時を入れる、入れない title グラフの中央上の表題文字列の指定 xlabel, ylabel, zlabel X軸、Y軸、Z軸のラベルの指定 x(yz)tics, nox(yz)tics X, Y, Z軸の目盛りを付ける、付けない x(yz)zeroaxis, nox(yz)zeroaxis X, Y 軸を表示するしない
help の後にコマンドやオプションを付けると取ることのできるオプションや その値が表示される。
例: gnuplot> help plot gnuplot> help set teminal
abs(x) 絶対値 acos(x) 逆余弦(戻り値の単位はラジアン) arg(x) 偏角(戻り値の単位はラジアン) asin(c) 逆正弦(戻り値の単位はラジアン) atan(a) 逆正接(戻り値の単位はラジアン) besj0(x) J0 ベッセル関数(引き数の単位はラジアン) besj1(x) J1 ベッセル関数(引き数の単位はラジアン) besy0(x) y0 ベッセル関数(引き数の単位はラジアン) besy1(x) y1 ベッセル関数(引き数の単位はラジアン) ceil(x) x の実部を下回らない最小の整数 cos(x) 余弦(引き数の単位はラジアン) cosh(x) 双曲余弦(引き数の単位はラジアン) exp(x) 指数関数 floor(x) x の実部を上回らない最大の整数 gamma(x) x の実数部の gamma 関数 imag(x) 虚数部(戻り値は実数) int(x) 整数部 log(x) e を底とする自然対数 log10(x) 10 を底とする常用対数 real(x) 実数部 sgn(x) x > 0 であれば1、x < 0 であれば -1、x = 0 であれば 0 sin(x) 正弦(引き数の単位はラジアン) sinh(x) 双曲正弦(引き数の単位はラジアン) sqrt(x) 平方根 tan(x) 正接(引き数の単位はラジアン) tanh(x) 双曲正接(引き数の単位はラジアン)