ここでは、数式およびファイルに格納されたデータを、簡単に グラフ化するフリーソフトの一つである、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) 双曲正接(引き数の単位はラジアン)