Webサイト: http://www.gnuplot.info/
参考Webサイト: http://www.yama-ga.com/gnuplot/
ports名: /usr/ports/math/gnuplot (/usr/ports/math/gnuplot+)
package名: gnuplot-3.7.2 (gnuplot371+-1.2.0)
起動コマンド: gnuplot
gnuplotは、xgraphのような、 ファイルに入ったデータをプロットするだけではなく、 y=0.3*x*x+xの様な任意の関数を記述することができます。 また、対話型インタフェースを用いてグラフをプロットするだけではなく、 命令を記述したファイルを利用してバッチ的な処理も可能です。 様々なフロントエンドプログラムも存在し、 これらを用いることでGUIでの操作が可能にです。 また、様々な統計処理や数値処理ソフトウエアの グラフ表示バックエンドとしても用いられています。
さらに、関数の当てはめ(fitting)を行うこともできますので、 理論式との比較などの実験データの整理にもってこいです。 ここでは、簡単な使い方しか説明しませんが、 helpコマンドを利用することで、 多彩な機能を見ることができます。
gnuplotをパッケージやportからインストールします。 ports/math/gnuplot+という拡張がほどこされた バージョンがあるので、こちらを利用してもいいでしょう。 ただし後者は、利用にはhacker条項による制限がありますので注意してください。
gnuplotを立ち上げるにはコマンドプロンプトで、 次のように入力します。 この場合、gnuplotは対話モードに入り、 コマンドを順に入力していくことになります。 スクリプトを書いて、自動で作業を行うことも可能ですが、 今回はこれに付いては触れません。
---------------------------------------------------------------------- $ gnuplot G N U P L O T Version 3.7 patchlevel 2 last modified Sat Jan 19 15:23:37 GMT 2002 System: FreeBSD 5.0-RELEASE-p5 Copyright(C) 1986 - 1993, 1998 - 2002 Thomas Williams, Colin Kelley and many others Type `help` to access the on-line reference manual The gnuplot FAQ is available from http://www.gnuplot.info/gnuplot-faq.html Send comments and requests for help to <info-gnuplot@dartmouth.edu> Send bugs, suggestions and mods to <bug-gnuplot@dartmouth.edu> gnuplot> ----------------------------------------------------------------------
最後の "gnuplot>"がgnuplotへのコマンドプロンプトです。
終了するためにはコマンドプロンプトで"exit" もしくは"quit"と入力します。
---------------------------------------------------------------------- gnuplot> quit(またはexit) $ ----------------------------------------------------------------------
グラフを書くためには"plot"コマンドを利用します。 例えば、図1の weight.dat というデータを描画するためには以下のようにします(図2)。
gnuplot> plot "weight.dat"
図 1. 例題として用いるデータ(weight.dat)
-------------------------------------------------- 44 75.800000 42 76.000000 40 76.800000 38 76.000000 36 75.400000 34 75.800000 33 76.800000 32 75.200000 31 75.600000 28 75.600000 27 75.800000 26 75.600000 24 75.600000 22 76.000000 21 75.200000 19 75.200000 18 75.600000 17 75.600000 16 75.200000 14 74.200000 12 76.000000 9 76.000000 8 76.200000 6 77.200000 1 75.600000 --------------------------------------------------
このままでは、点だけの表示なので見にくいですね。 点と点の間に線を引くには以下のようにします(図3)。
-------------------------------------------------- gnuplot> plot "weight.dat" with line --------------------------------------------------
他にも、棒グラフなどのさまざまなグラフを記述することができますが、 ここではデータの表示はこれぐらいにしておきます。
関数は任意の関数を記述することができます。 例えば、sin(x)等を表示することも可能です。 では見てみましょう(図4)。
-------------------------------------------------- gnuplot> plot sin(x) --------------------------------------------------
関数は自分で定義することも可能です。 図5以下の例を見て下さい。
-------------------------------------------------- gnuplot> f(x)=x**3+2*x**2+3*x+5 gnuplot> plot f(x) --------------------------------------------------
一般にプリントアウトするためには、 Postscriptと呼ばれる形式を利用して出力することになるでしょう [1]。 gnuplotでは、 デフォルトの設定ではXの画面にグラフを出力するようになっていますが、 "set term"コマンドを利用することで、 出力する先を変更することができます。
さらに、出力をファイルに変更するための"set output" コマンドを併用することで、望みのファイルにグラフを出力することができます。
---------------------------------------------------------------------- gnuplot> set term postscript Terminal type set to 'postscript' Options are 'landscape noenhanced monochrome dashed defaultplex "Helvetica-Ryumin" 14' gnuplot> set output "weight.ps" gnuplot> plot x**2+x ----------------------------------------------------------------------
出力は画面に出されず、ファイルに出されています。 gnuplotを終了させて、 lsでweight.psが存在することを確認し、 ghostscriptなどで出力イメージを見てください。
現在の版のgnuplotには、 強力な関数の当てはめ機能が用意されています。 これを利用することで、実験結果から妥当な実験式を導出することも 可能となります。
関数の当てはめ機能の利用の手順は以下のようになります。
当てはめたい関数を定義してやります。
この時、一般の関数とは違い、 未定変数を用意し、この値を変更することで、 当てはめを実現します。
fitコマンドをつかって、未定の変数を推定します。
これで、未定部分は決定されますので、普通に関数としてplotします。
実際にweight.datで2次関数の当てはめをおこなうと以下のようになります(図6)。
----------------------------------------------------------- gnuplot> f(x)=a*x**2+b*x+c(関数を定義) gnuplot> fit f(x) "weight.dat" via a,b,c(a,b,cを未定係数と考えて当てはめをおこなう) (ここにいろいろ表示されます) gnuplot> plot f(x),"weight.dat" -----------------------------------------------------------
マニュアルの日本語版があります。
[1] | gnuplotはTgifやLaTeXを含む、 様々な出力フォーマットに対応しています。 この場合、Postscriptでの出力はそちらのアプリケーションに 任すことになるでしょう。 |