gnuplotについて

香川大学工学部

香川考司

kagawa@eng.kagawa-u.ac.jp

gnuplotとは

gnuplotはUNIX, Windows, MacOSなど多くのプラットホームで動作する、関数グラフプロットユーティリティです。2次元のグラフも3次元のグラフも作図することができ、画面に描画するほかに、EPS, PDF, SVG, PNGなど多くの出力フォーマットをサポートしています。もちろん無料で利用することができます。

Windowsへのインストール

gnuplotのWindows用の実行ファイルはgnuplotのホームページ[1]からリンクをたどるとダウンロードすることができます。2004年5月現在の最新バージョンは4.0です。ダウンロードするファイルは、gp400win32.zipという名前です。また角藤氏のTeX for Win32のページ[3]にもWindows用のバイナリファイル（gnuplot-40p0w32.zip）が置いてあります。（角藤版のほうがPDF出力をサポートしているのでお勧めです。）どちらを取ってきても、インストール方法は、単にZIPファイルを展開してできたフォルダを好きなところに置くだけです。このなかのwgnuplot.exeというアイコンをダブルクリックするとgnuplotが実行されます。

ただ、インストール直後はフォントの設定がおかしくなっているようです。gnuplotのウインドウで右クリックして、「Choose Font...」を選び、適当なフォント（たとえばMS明朝のサイズ10）を選ぶとなおります。もういちど右クリックして「Update wgnuplot.ini」を選んでおくと、再び実行したときも選択したフォントが使用されます。

gnuplotはキーボードからコマンドを入力するタイプのインターフェースを持つソフトウェアです。“gnuplot>” はgnuplotが出力するプロンプト記号ですので、このあとに必要なコマンドを入力します。また、gnuplotはもともとUnix系で開発されたソフトウェアなので、コピー・ペーストなどのショートカットキーが通常のWindowsソフトと異なります。（コピーとペーストはそれぞれ、Ctrl+Ins, Shift+Insに割り当てられています。）通常はgnuplotのウインドウ上で右クリックして出てくるメニューからコピーとペーストを選択すればよいでしょう。

なお、マニュアルの日本語訳は、参考文献の[2]のページに置いてあります。

簡単な例（2D）

例えば三角関数のグラフをプロットするには、次のようにplotコマンドを使用します。

gnuplot> plot sin(x), cos(x)

特に指定がなければ、xを独立変数として扱って、xが-10から10の範囲のグラフを描きます。x軸の範囲を指定するには、次のようなコマンドを使います。

gnuplot> set xrange [-pi:pi] # -pからpまでの範囲を描画する。

y軸の範囲は、特に指定しなければgnuplotが適当に設定してくれるようです。

簡単な例（3D）

3Dグラフをプロットするためにはplotの代わりにsplotコマンドを利用します。

gnuplot> set hidden3d # 陰線を消去する

gnuplot> set isosamples 40,40 # 標本点の数を40×40にする

gnuplot> splot sin(sqrt(x*x+y*y))/sqrt(x*x+y*y)

3次元の場合、xとyを独立変数として扱います。

デモの実行

gnuplotにはひじょうに多くの機能があるので、そのすべてを紹介することは、このページ数で到底できません。興味のある人は最後に挙げる参考文献を参照してください。とりあえず、ここではデモを見てみましょう。demoというフォルダに移動して、all.demというファイルを読み込みます。次のように画面に打ち込みます。

gnuplot> cd ”demo” # demoフォルダに移動

gnuplot> load ”all.dem” # all.demを読み込む

次々とOKをクリックしていくと、さまざまな形式の関数のグラフを見ることができます。

以下に示すのはデモの中のほんの一部です。

出力形式の選択

gnuplotは画面にグラフを描画する以外に、ファイルに出力して、保存することもできます。たとえばPDF形式に出力するには次のようにします。

gnuplot> set terminal pdf enhanced # 出力形式をPDFに

gnuplot> set output ”world.pdf” # 出力先のファイル名を指定

gnuplot> replot # 同じグラフを再描画

gnuplot> set output # world.pdfを閉じる

gnuplot> set terminal windows # 出力先をウインドウに戻す

この他にEPS, EMF, SVG, JPEG, PNGなどの形式に保存することができます。必要なコマンドはそれぞれ次の通りです。

gnuplot> set terminal postscript eps enhanced color # EPS

gnuplot> set terminal svg enhanced # SVG

gnuplot> set terminal emf solid # EMF

gnuplot> set terminal png enhanced # PNG

SWF形式への出力は現在のところできないようですが、例えばOpenOffice.org Drawを経由すれば、EMF形式をSWF形式に変換することができます。

まとめ

gnuplotを利用すると、いろいろな関数のグラフをプロットできます。また、グラフをWebに掲載できる形式(PDFやSVG)で保存することも簡単です。Microsoft ExcelやOpenOffice.org Calcにも数値データをグラフに機能はありますが、数式の場合は、gnuplotの方が簡単でしょう。データをスクリプトで自動的にグラフ化するような用途にもgnuplotが向いていると思われます。参考文献[6]のようにgnuplotを利用してアート作品を作るのも面白いでしょう。

参考文献

[1] gnuplot homepage http://www.gnuplot.info/
[2] gnuplotのページ（Takeno Lab）
http://takeno.iee.niit.ac.jp/~foo/gp-jman/gp-jman.html
[3] TeX for Win32
http://www.fsci.fuk.kindai.ac.jp/~kakuto/win32-ptex/
[4] Windows版Gnuplotの使い方
http://adlib.rsch.tuis.ac.jp/~akira/zemi/gnuplot/wgnupl.htm
[5] gnuplot tips (not so Frequently Asked Questions)
http://t16web.lanl.gov/Kawano/gnuplot/
[6] グラフはGnuplotにお任せ
http://ayapin.film.s.dendai.ac.jp/~matuda/Gnuplot/gnuplot.html
http://ayapin.film.s.dendai.ac.jp/~matuda/Gnuplot/pm3d.html
（後者のページはアートっぽい、3次元グラフの作品例が多く紹介されています。）

Koji Kagawa

2004-05-20T19:35:33