gnuplot
は簡単に 2D、3D のグラフが作成できるツールです。関数の
プロットだけでなくデータをファイルから読み込んでプロットしたり、
フィッティングしたりできます。
Ver.3.7.3 を LinuxMLD 7
に収録しています。
(右図をクリックすると大きく表示します。)
作者: Thomas Williams さん、
Colin Kelley さん他
ホームページ:
http://www.gnuplot.info/
(Gnuplot Central)
バージョン: 3.7.3 (2002/12/12)
ライセンス: distributable
付属ドキュメント マニュアルを読む (390 KB)
2004年4月にバージョン4.0が正式リリースされています。 以下の説明は古くなってしまいました。
gnuplot は、 Algae、 IPC、 Octave、 RlaB、 statist、 Yacas など多くのアプリケーションで グラフ表示のための外部プログラムとして使われています。
MLD5,
MLD6
には Ver.3.7.1 が収録されています。以下の説明でバージョン番号の部分を
適宜読み替えてください。
インストールしたら、まず付属のデモを眺めてみましょう。
デモは /usr/share/doc/gnuplot-3.7.3/demo/
にあります。
どこか適当な場所にディレクトリを作ってそこへコピーします
(X Window 上のターミナル・エミュレータから実行してください)。
$ cp -a /usr/share/doc/gnuplot-3.7.3/demo . $ cd demo $ gnuplot all.dem
リターンキーを押していくだけで次々にデモを見ることができます。全部終ると 終了しますが、途中で止めるには control-C (Ctrl キーを押しながら C) を押します。
見ているだけではつまらないので、自分でやってみましょう。 対話的に使うには単に
$ gnuplot
です。何行かのメッセージのあと
gnuplot>
とプロンプトが出て来ます。終了は quit あるいは exit と入力します。 簡単な例としてサインカーブを書いてみます。
gnuplot> plot sin(x)
このように、特になにも指定しなければ、x 軸の範囲は -10 から 10 に、 y 軸の範囲は図が収まるように自動決定され、x の範囲を 100 等分して 計算した結果がプロットされます。目盛も適当に付けてくれます。
gnuplot> plot sin(x),cos(x)
とすれば2つのグラフを同時に書くことができます。
グラフの書き方を指定するには set コマンドを使います。
例えば x の範囲を -5 から 5 にするには
gnuplot> set xrange [-5:5]
何がどう設定されているかを知るには
gnuplot> show all
とするとわかります。全ての設定をデフォルトに戻すには reset を実行します。
gnuplot は詳細なオンラインヘルプを備えています。
gnuplot> help
特定のコマンドについて知りたいときは help のあとにコマンド名を付けます。
gnuplot> help set
ヘルプの出力が1画面に収まらないときは
Press return for more:
と表示され、リターンキーを押すと次が表示されます。ヘルプの表示を途中で
止める方法はないようです。
他に、HTML のドキュメントが
/usr/share/doc/gnuplot-3.7.3/gnuplot.html
にあります。
全部の機能はとても説明しきれないので gnuplot のデモからいくつか御紹介しましょう。
実験データをエラーバー付きでプロットし、スプラインで補間した例です。 データファイルは
10.000000 280.000000 16.733201 20.000000 191.000000 13.820275 30.000000 152.000000 12.328828 ...
のように3番目のフィールドに誤差が入っています。
Ver.3.6 からは最小自乗法 (Marquardt-Levenberg 法) による fit
コマンドも実装されました。
3 次元のプロットコマンド splot で、等高線 (contour) を一緒に書いた例です。 データファイルは
0.687151 -0.636061 0.351070 0.641845 -0.232436 0.730759 0.273514 -0.848211 0.453572 ...
のように x,y,z の組で与えています。
媒介変数 (parametric) による曲面の表示例です。
様々なファイル形式でファイルに出力することができます。 ファイル形式の指定は set terminal terminal-type です。 出力ファイル名は set output で指定します。 help terminal で設定可能な terminal-type を知ることができます。
aed512 aed767 aifm bitgraph cgm corel dumb dxf eepic emf emtex epslatex epson-180dpi epson-60dpi epson-lx800 fig gpic hp2623a hp2648 hp500c hpdj hpgl hpljii hppj imagen kc-tek40xx km-tek40xx latex mf mif mp nec-cp6 okidata pbm pcl5 png postscript pslatex pstex pstricks qms regis selanar starc svg table tandy-60dpi tek40xx tek410x texdraw tgif tkcanvas tpic vttek x11 xlib
例えば set terminal fig としてファイルに出力すれば Xfig で加工することができます。
gnuplot は LinuxMLD 7 の DVD-ROM に収録されています (MLD 6 では Disc4 に、MLD 5 では Disc3 に gnuplot-3.7.1 が収録されています)。
rpm コマンドでインストールするには、DVD-ROM を マウントして、
# rpm -i /mnt/cdrom/RPMS/gnuplot-3.7.3-2.i386.rpm
とします (MLD 6 では、先に gd-1.8.4 を追加インストールしておくことが必要です)。
MLD 5-7 の RPM には印刷できるマニュアルは含まれていません。必要な方は SRPM から作成して下さい (MLD 6,7 では teTeX をインストールしていることが必要です)。 適当な作業ディレクトリを作ってそこに移動し、 DVD-ROM (MLD 5 では Disc4、MLD 6 では Disc6) をマウントして
$ rpm2cpio /mnt/cdrom/SRPMS/gnuplot-3.7.3-2.src.rpm | cpio -i $ tar xzf gnuplot-3.7.3.tar.gz $ cd gnuplot-3.7.3 $ ./configure $ cd docs $ make gnuplot.ps
とすると 116 ページの PostScript マニュアル gnuplot.ps
ができます。
gnuplot は名前が“gnu”で始まっていますが、FSF の GNU とは関係がありません。
Web 上の参考になるページを御紹介します。
金沢大学情報処理教育センターの利用のために書かれていて、 入門レベルがよくまとまっています。 佐藤哲さんによる FAQ (よくある質問集)、日本語リファレンスガイドなども 読めます。
バージョンが 3.5 ですが、例も多くやや詳しい入門です。
バージョン 3.7.x, 3.8.x, 4.x のマニュアルの日本語訳を公開されています。 gnuplot について も参考になります。
実験データのプロットなどについて、様々な書き方のヒント、 実例集「ぷろっとぎゃらりぃ」があります。
gnuplot の GUI フロントエンド、3D 関連の情報、 Visualize-ML 入会 案内、 Tips集 などがあります。 データの可視化と解析ツール も参考になります。 Gnuplot Q&A 掲示板 というのもできたようです。
自作の gnuplot フロントエンドをいくつか公開しておられるほか、 詳細なリンク集があります。ver.3.7附属の demo (の結果)を Web 上で 見られます。
いろいろな書き方のヒントがあります。
関連ソフトウェア
(Qt 1.3.x で作られていて、残念ながら MLD 5-7 では素直には build
できません。)
オリジナルのページ http://www.flash.net/~dmishee/xgfe/xgfe.html
は無くなっています。ミラーは例えば
http://www.uni-koeln.de/rrzk/software/grafik/visualization/xgfe/xgfe.html
にありますがソースは置いてないようです。
ソースは CTAN (例えば
http://www.ring.gr.jp/archives/text/CTAN/)
の graphics/gnuplot/contrib/ で入手できます。
Qt 3.x による
Qgfe
(Pascal Brachet さん)
というのがあるようです。
その他のアプリケーション
測定データやシミュレーション結果を単純にプロットしてみたいようなときは
RTP
が便利な場合もあります。
その他、数学関数をプロットするアプリケーションは
geg
のページを参照してください。