gnuplot
Gnuplot とは?
正しくは gnuplot(にゅーぷろっと)と呼びます。 Thomas Williams 氏、Colin Kelley 氏らによって開発されているフリーのグラフ作成プログラムで、 2D・3Dの関数や数値データをグラフ化することができます。 名前に gnu とついていますが、GNU プロジェクトとは関係ありません。 詳しくは Wikipedia:Gnuplot を参照して下さい。
参考サイト
- http://t16web.lanl.gov/Kawano/gnuplot/
- http://takeno.iee.niit.ac.jp/~foo/gp-jman/
- http://www.cbrc.jp/~tominaga/tips/osx_gnuplot.html
- Gnuplot Q&A 掲示板
- Yahoo! gnuplot カテゴリ
インストール
OS X に gnuplot をインストールするには次のような方法があります。
- 1) MacPorts や EasyPackage、Fink、MacOSX_WorkShop といったバイナリパッケージ集を利用する(参考:リスト/UNIXパッケージ)。
- Fink安定板のgnuplotには、タブ補完機能(readline)やコマンド履歴機能が含まれていません。
- 2) 単独配布パッケージを使う。
- http://www.muskmelon.jp/macosx/
- Intel Mac 専用。Tiger/Leopard 対応。
- アプリケーションフォルダ(/Applications)に gnuplot.app を設置してインストール。
- set terminal pdf で PDF ファイルに直に出力できる
- パスの補完が効く
- 3) gnuplot 公式ページで配布されている Mac OS X 用バイナリを利用する
- http://sourceforge.net/projects/gnuplot/files/gnuplot/ の Gnuplot-4.0.0.dmg
- タブ補完機能(readline)やコマンド履歴の保存機能は含まれていないようです。また、4.0.0 以降のバージョンでは dmg ファイルは作成されていません。
- 4) 下の手順 (1/4)〜(4/4) を参考にして、ソースから gnuplot 最新版をインストールする。
ソースからのインストール方法
(1/4) 必要なファイルを入手する
- gnuplot-4.4.2.tar.gz ..... http://www.gnuplot.info/
以下のファイルはオプションです。
- AquaTerm1.0.1.dmg ..... http://sourceforge.net/projects/aquaterm/
- readline-6.1.tar.gz ..... http://ftp.gnu.org/pub/gnu/readline/
(2/4)* aquaterm-1.0.1 のインストール
Leopardでは、この手順はスキップしても OS 標準添付の X11 に グラフを出力することができます。 ただ、グラフを印刷したりする場合は、AquaTerm の方が格段に便利です。
AquaTerm.pkg をダブルクリックするだけで、インストールできます。
(3/4)* readline-6.1 のインストール
この手順はスキップしても大丈夫です。
cd readline-6.1 ./configure make sudo make install
- Tiger にも readline(libreadline.dylib)が含まれていますが、この実体は libedit で 2001 年以来更新されていません(NetBSD はどうしているのでしょう?)。普通に make すると以下のようになってビルドに失敗しますので、上記の GNU readline を必ずインストールするようにして下さい。
/usr/bin/ld: Undefined symbols: _rl_forced_update_display _history_list _replace_history_entry _rl_ding _rl_complete_with_tilde_expansion
(4/4) gnuplot-4.4.2 のインストール
$ cd gnuplot-4.4.2 $ ./configure --with-readline=builtin --enable-history-file $ make $ sudo make install
補足:上記のように --enable-history-file オプションを付けると、コマンド履歴が ~/.gnuplot_history に保存されるようになります。
デフォルトでは、Emacs 用の gnuplot-mode(lisp ファイル)が /usr/local にインストールされます。これが不要な場合は、次のオプションを追加するとよいでしょう。
--without-lisp-files
手順 (3/4) の readline-6.1 をインストールしている場合は --with-readline=builtin の代わりに --with-readline=gnu を使うと良いでしょう。
$ ./configure --with-readline=gnu --enable-history-file $ make $ sudo make install
64 bit バイナリをビルトするには、例えば、以下のようにします。この例は、/usr/local に 64bit の readline が入っていることを想定しています。
$ ./configure CFLAGS="-m64" CPPFLAGS="-m64" LDFLAGS="-m64" \ --with-readline=gnu --enable-history-file --without-lisp-files $ make $ sudo make install
開発版
開発版(CVS 版 gnuplot 4.5.0)の機能更新は gnuplot メモ(竹野さん@新潟工科大学) が詳しいです。
インストールするには上記インストール手順 (4/4) の代わりに次のようにします。
cvs -d:pserver:anonymous@gnuplot.cvs.sourceforge.net:/cvsroot/gnuplot login cvs -z3 -d:pserver:anonymous@gnuplot.cvs.sourceforge.net:/cvsroot/gnuplot co -P gnuplot cd gnuplot ./prepare ./configure --with-readline=builtin --enable-history-file make sudo make install
注意 prepare コマンドはバージョン 2.58 以降の autoconf を要求しますが、 configure.in の 8 行目を AC_PREREQ(2.57) と書き換えれば Mac OS X 10.3.6 でも OK でした。
グラフの出力先
AquaTerm
set terminal aqua
とすると、出力が AquaTerm になります。 また、環境変数GNUTERMを指定すると、デフォルトの出力が AquaTerm になります。 bashでは、次のようなコマンドをエイリアス登録すればよいでしょう。
$ GNUTERM=aqua /usr/local/bin/gnuplot
ホームディレクトリに .gnuplot という名前のテキストファイルを用意し、
set terminal aqua
と書いておく方法もあります。
X Window System
出力先をx11にすると、グラフを表示しているウィンドウ上でマウス・キーボード操作によって出力範囲の指定や、3次元の視点変更などが可能になります。また、複数のウィンドウに出力できます。
set terminal x11 {<n>} {title "<string>"} {{no}enhanced} {font <fontspec>} {{no}persist} {{no}raise} {solid|dashed} {{no}ctrlq} {close} set terminal x11 {reset}
PostScript プリンター
set terminal postscript color set output "| lpr -Pprintername"
のようにして、PostScriptプリンターに直接グラフを出力することができます。
Terminal の画面
set terminal dumb
とすると、ターミナルのテキスト画面にグラフを出力することができます。 このとき、グラフは ASCII アートで表示されます。
例)
1e+06 ++--A-AAAA-+----------+-----------+----------+----------+---------++ + A AAAA A + + "data.dat" us 1:2 A + + A AAAA + 100000 ++ AAA ++ + A A + + AAA + 10000 ++ AAA ++ + A A + + AA + 1000 ++ AA ++ | A | 100 ++ A ++ + + + AA AAA + 10 ++ A ++ + A A + + + 1 ++ A ++ + A + + + + + + + + 0.1 ++---------+----------+-----------+----------+----------+---------++ 0 5 10 15 20 25 30 gnuplot>
他、未整理の情報
gnuplot-mode
- http://cars9.uchicago.edu/~ravel/software/gnuplot-mode.html
- http://homepage1.nifty.com/fin/soft/emacs/gnuplot-mode.html
- http://www.chibutsu.org/faf/WebWiki/emacs/GnuplotMode.html
PostScript
gnuplotが生成する eps ファイルは癖があるみたいで、 Illustrator や Preview.app で開くとレイアウトが崩れます。 RedHat Linux 7 に付属していた epstopdf という Perl スクリプトを使うと、 レイアウトの乱れがないPDFファイルに変換できました。-- ぜ
- http://www.ctan.org/tex-archive/support/epstopdf/?action=/tex-archive/support/
- epstopdf --filter < test.ps >test.pdf とすると、フィルター的に動作.
- ps2epsi (ghostscript についているのかな?) でもいいかも.
- どちらの方法もうまくいかない場合は、BoundingBox行を手動で削除。
GUI ラッパー
Cueplot
関連書籍
- 山本 昌志 (著) 『gnuplotの精義』(カットシステム, 2009/09, 3780円)
- 大竹 敢 (著)・矢吹道郎 (監修)『使いこなすgnuplot』(テクノプレス, 2004/10, 2940円)