(PDF ファイル: faq-ja-20170609.pdf) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ gnuplot FAQ この文書は、gnuplot バージョン 4 とバージョン 5 の両方を対象としています。 この FAQ のバージョンは $Revision: 1.58 $, $Date: 2017/06/04 04:55:40 $ です。 目次 ・ 0 メタな質問 □ 0.1 このドキュメントはどこで手に入れられますか □ 0.2 このドキュメントに関するコメントはどこに送れば良いですか ・ 1 一般的な質問 □ 1.1 gnuplot とは何ですか □ 1.2 それはどこから来て、そしてなぜ gnuplot と呼ばれているのですか □ 1.3 gnuplot は何を提供してくれますか □ 1.4 gnuplot はスクリプトに適していますか □ 1.5 gnuplot は私のコンピュータで動かすことができますか □ 1.6 ライセンスについて □ 1.7 gnuplot は FSF や GNU プロジェクトと何か関係があるのですか □ 1.8 更なる情報はどこで手に入りますか ・ 2 インストール □ 2.1 gnuplot の最新バージョンは □ 2.2 gnuplot はどこで手に入れられますか □ 2.3 gnuplot の最新の開発版はどこで手に入れられますか □ 2.4 gnuplot は私のシステムではどうコンパイルすれば良いですか □ 2.5 ドキュメントはどこですか、そしてそれをどう手に入れられますか □ 2.6 動作するサンプル □ 2.7 どうしたら gnuplot を修正、またはパッチを当てられますか □ 2.8 どのオプションが gnuplot にコンパイルされているかを知るには ・ 3 動作 (Working with it) □ 3.1 ヘルプはどうやって手に入れられますか □ 3.2 どうやったらグラフをプリントアウトできますか □ 3.3 どうやったらグラフをワープロソフトに取り込めますか □ 3.4 どうやったら gnuplot のグラフを編集や後処理できますか □ 3.5 どうやったら記号の大きさや線の太さなどを変更できますか □ 3.6 グラフをアニメーション化できますか □ 3.7 どうやったら陰関数のグラフが書けますか □ 3.8 2 つの曲線間の領域を塗りつぶすには □ 3.9 pm3d によるデータファイルの splot で何も表示されません □ 3.10 3 次元データの 2 次元射影を描画するには □ 3.11 pm3d 色地図/曲面上に dots/points の散布図を重ねるには □ 3.12 ラベルつきの等高線を描画するには □ 3.13 pm3d による色つきの多面体描画は □ 3.14 色地図をモノクロのプリンタでもちゃんと印字するようなパレットは ・ 4 欲しい機能 (Wanted features) □ 4.1 gnuplot 4.6, 5.0 等で新しくなったことは □ 4.2 gnuplot は画像フォーマット用のドライバをサポートしていますか □ 4.3 gnuplot は隠線処理できますか □ 4.4 gnuplot は棒グラフ/ヒストグラム/箱型グラフが書けますか □ 4.5 gnuplot は円グラフが書けますか、四半期グラフはどうですか □ 4.6 一つのページに複数のグラフが書けますか □ 4.7 gnuplot は一つのグラフで複数の y 軸を使えますか □ 4.8 一つのファイルに gnuplot のコマンドとデータの両方を書けますか □ 4.9 ラベルに上/下付きの文字を使えますか □ 4.10 ギリシャ文字や他の特別な記号を使うには □ 4.11 どうしたらアクセント付きの文字を出力できますか □ 4.12 縦と横の軸を 1:1 にできますか □ 4.13 異なるサイズのテキストを一つのグラフで出力できますか □ 4.14 どうしたらデータ点をスキップできますか □ 4.15 どうしたら n 点毎にデータを扱えますか □ 4.16 どうしたら鉛直線を書けますか □ 4.17 どうしたらデータファイルを描画できますか □ 4.18 どうしたら multiplot の描画を replot できますか ・ 5 その他 □ 5.1 バグを見つけたのですがどうしたら良いですか □ 5.2 私のプログラムで gnuplot のルーチンを利用できますか □ 5.3 どう追加や拡張がなされていますか、それはどう手に入れられますか □ 5.4 積分や FFT や IIR フィルタなどが欲しいのですが □ 5.5 "heavy-duty" データを gnuplot で使えますか、または gnuplot に変わる ものはないですか □ 5.6 私の対話型ターミナルでホットキーを使うには □ 5.7 gnuplot を他のシステムに移植、またはパッチを作りました。どうしたら いいですか □ 5.8 gnuplot の次期バージョンの開発について知りたいのですがどうしたらい いですか □ 5.9 FAQ に含まれるような未解決の質問は ・ 6 うまく扱うには (Making life easier) □ 6.1 どうしたら 2 つの関数を重ならないように書けますか □ 6.2 どうしたら描画前にデータにフィルタをかけられますか □ 6.3 どうしたら現在の設定を保存/再利用できますか □ 6.4 どうしたら splot で曲線 (格子でない) を書けますか □ 6.5 どうしたら x-y 平面上で他の関数に制限されている f(x,y) のグラフを書 けますか □ 6.6 どうしたらプログラムから gnuplot を呼び出せますか □ 6.7 Planck 定数 (h に横線) が必要なときはどうしたらいいですか □ 6.8 太陽のような数学記号 (丸に点) が必要なときはどうしたらいいですか □ 6.9 境界の位置を丁度ある場所に合わせてグラフを作るには ・ 7 共通の問題 □ 7.1 助けて! 私のフォントが使えない □ 7.2 VMS 上で gnuplot が描画ウィンドウを開きませんが、なぜですか □ 7.3 なぜ gnuplot はとても小さい数字のデータを無視するのですか □ 7.4 シェルやスクリプトから gnuplot を実行しても結果のグラフはスクリーン 上で一瞬出るだけでそのあと出てきません □ 7.5 書いた式 (1/3 など) が意味のない結果を出力してしまいます □ 7.6 私の出力が不完全です □ 7.7 パイプで gnuplot を呼び出したり gnuplot スクリプトを使ってグラフが 書けません ・ 8 帰属 0 メタな質問 0.1 このドキュメントはどこで手に入れられますか このドキュメントの最新版は http://www.gnuplot.info/faq/ の Web 上にあります。 0.2 このドキュメントに関するコメントはどこに送れば良いですか コメント、提案等は開発者向けメーリングリスト gnuplot-beta@lists.sourceforge.net に送ってください。 1 一般的な質問 1.1 gnuplot とは何ですか gnuplot はコマンド駆動型の描画プログラムです。関数の描画、およびデータ点の描画 を、2 次元、3 次元の両方で、そして多くの異なるスタイル、多くの異なる出力形式で 行うことができます。また、gnuplot は自動的にグラフを生成するスクリプト言語とし ても使用することができます。これは主に科学的なデータを画面表示するものとして設 計されています。 gnuplot の著作権は保護されていますが、自由に配布でき、代金を払 う必要はありません。 1.2 それはどこから来て、そしてなぜ gnuplot と呼ばれているのですか gnuplot の作者は Thomas Williams, Colin Kelley, Russell Lang, Dave Kotz, John Campbell, Gershon Elber, Alexander Woo、そして多くの協力者です。 以下は Thomas Williams によります: 私は微分方程式の講義を、そして Colin は電磁気学の講義を取っていて、 2 人と もそれらに関する数学が視覚化できればなあと考えていました。私達はある EE (Engineering Electronics) VLSI 研のシステム管理者として働いていて、そして、 グラフィック端末とコーディングを行なう時間がありました。その投稿は我々の期 待以上に良く受け入れられ、そして、不完全でしたが、ファイルデータに関するい くつかのサポートに我々を駆り立てました。 GNUplot という紹介はどんなものも正しくはありません。このプログラムの本当の 名前は "gnuplot " です。ずいぶんと "Gnuplot " と書かれているのを見るでしょ うが、それは我々の大半が、固有名詞やタイトルであっても、文章を小文字で開始 することに嫌悪を持っているからです。 gnuplot は GNU プロジェクトや FSF とは 、極わずかの意味を除けば少しも関係ありません。我々のソフトウェアは完全に独 立にデザインされたもので、そして "gnuplot " という名前は実は妥協によるもの です。私は "llamaplot" と呼びたかったし、 Colin は "nplot" と呼びたかったの です。そして、我々は "newplot" がいいだろうということで合意しましたが、しか しそのときその名前を持つ、絶対的におぞましい Pascal のプログラムを計算機科 学部でたまに使っていることを知りました。それで私は "gnuplot " がいいごろ合 わせになるとして、後で Colin もそれに同意したのです。 1.3 gnuplot は何を提供してくれますか ・ 2 次元での関数やデータの、点、折れ線、誤差表示、塗り潰した図形、ラベル文字 列、ベクトルなどの沢山の異なる要素を組み合わせた描画 ・ 極座標軸、対数軸、より一般の非線形軸の割り当てや媒介変数座標 ・ 温度分布、ビースウォームグラフ、バイオリングラフ、ヒストグラムなどのデータ 表現 ・ 3 次元でのデータの、点、折れ線、曲面の、たくさんのスタイル (等高線描画、網 かけ) による描画 ・ 整数、実数、複素数での代数演算 ・ Marquardt-Levenberg 最適法を用いたデータ駆動型の曲線回帰 ・ 多くのオペレーティングシステム、多くのグラフィックファイル形式出力、そして 多くの出力装置のサポート ・ 広範囲にわたるオンラインヘルプ ・ ラベル、タイトル、軸、データ点への TEX ライクな書式による見出し付け ・ 対話型入力形式のエディット機能とヒストリ (履歴) 機能のサポート 1.4 gnuplot はスクリプトに適していますか ええ。gnuplot は対話型実行中に追加コマンドを含むファイルを読み込むことができま すし、既に存在するファイルや標準入力からのコマンド列をパイプを使ってバッチモー ドでそれを処理することもできます。 gnuplot は、Octave のような高水準な数学パッ ケージの背後で実行するグラフィックドライバとして使われていますし、 cgi スクリプ トでラップすることで容易に Web 起動型の描画生成ツールとして使うこともできます。 gnuplot は、なじみのある命令 if else continue break while for を用いた文脈駆動 型、データ駆動型の処理制御、および繰り返しをサポートしています。 1.5 gnuplot は私のコンピュータで動かすことができますか gnuplot は、MS Windows, linux, unix, OSX などの多くのプラットホーム上で、広く利 用できます。現在のソースコードは、VMS, Ultrix, OS/2, MS-DOS などの古いシステム のサポートも保持していますが、 16 bit プラットホームはもうサポートしていません 。 gnuplot のソースは、それなりに標準的 (ANSI/ISO C, POSIX 等) な環境から多少外れ たものの上でもコンパイルできるでしょう。 1.6 ライセンスについて gnuplot はボランティアの集団によって作られたものです。彼らは gnuplot 、およびそ の使用の許可、不許可に関する法的な文書を作成できません。また何の保証もありませ ん。自分自身の責任で使用してください。 1.7 gnuplot は FSF や GNU プロジェクトと何か関係があるのですか gnuplot は FSF が作ったのでも FSF がメンテナンスしているのでもありません。一時 期 FSF から配布されていたこともありますが、しかし現在はこれは正しくありません。 gnuplot は、GNU General Public License (GPL) に全く保護されていません。 gnuplot は、無償であると言う意味でフリーウェアです。 gnuplot をあなたが望むよう に使用し、改変することができますが、改変したものを配布することについてはある種 の制限がつきます。 Copyright というファイルの modification (改変) と redistribution (再配布) の項目を読んでそれを承認してください。 1.8 更なる情報はどこで手に入りますか gnuplot Web ページ http://www.gnuplot.info を見てください。 英語以外の他の言語での文書や入門書もあります。最新のリストについては、http:// gnuplot.sourceforge.net/help.html の "Localized learning pages about gnuplot" の節をご覧ください。 2 インストール 2.1 gnuplot の最新バージョンは gnuplot の最新の正式リリース版は、2015 年 1 月リリースの 5.0 です。更新バージョ ン (パッチレベル 1, 2, ...) は、だいたい 6 ヶ月毎にリリースされます。 gnuplot の開発版は、現在は 5.1 となっています。バージョン 5.2 の最初の版は 2017 年中旬 にリリースされる予定です。 2.2 gnuplot はどこで手に入れられますか 始めに最も適切な場所は http://www.gnuplot.info です。ここから、例えば SourceForge 上の開発プロジェクトサイト http://sourceforge.net/projects/gnuplot などの、色々なサイトの場所を見つけられるでしょう。 ソース配布物 ("gnuplot-5.0.5.tar.gz" または同様の名前) は公式の配布サイト http: //sourceforge.net/projects/gnuplot にあります。 2.3 gnuplot の最新の開発版はどこで手に入れられますか gnuplot の開発版は、cvs ソースツリーの形で、オンラインで直接 http:// sourceforge.net/projects/gnuplot/ の "CVS" セクションから参照できます。そこに含 まれているドキュメントに従って、例えば、以下のようなコマンド列によって最新のソ ースをすべてダウンロードすることもできます。 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 または (bash では) export CVSROOT=:pserver:anonymous@gnuplot.cvs.sourceforge.net:/cvsroot/gnuplot cvs login cvs -z3 checkout gnuplot パスワードを聞かれたら を打ちます。 その後、gnuplot のコンパイルの段階の ./configure の前に、 ./prepare を実行して 最新の configure 用のファイルを作成する必要があります。 公式の gnuplot の開発版の暫定的なバイナリリリースはありませんので、自分自身でコ ンパイルする必要があります。しかし、OS/2, Windows, Macintosh などのいくつかのプ ラットフォーム用の非公式なバイナリ版はどこかに見つかるかも知れません。 重要な注意: 開発版に対する質問は必ず gnuplot-beta@lists.sourceforge.net に送っ てください。 2.4 gnuplot は私のシステムではどうコンパイルすれば良いですか 他のソフトのインストールと同様です。リリースノートと README, INSTALL のファイル を読んでください。 ・ Unix では、./configure (単一ユーザのインストールならば ./configure -prefix=$HOME/usr) を使い、make を実行し、最後に make install とします。 ・ Windows では、makefile は config/mingw, config/msvc, config/watcom, config/ cygwin 内にあります。 makefile の先頭に書かれているオプションを修正し、その makefile が置かれているのと同じディレクトリ内で適当な make ツールを実行して ください。追加説明も、makefile に書かれています。 ・ 他のプラットフォームでは、適切な makefile (例えば OS/2 なら makefile.os2) を config/ ディレクトリから src/ にコピーして、 makefile のヘッダにあるオプ ションを必要なら更新して、 src にディレクトリを移動して、 make を実行してく ださい。 2.5 ドキュメントはどこですか、そしてそれをどう手に入れられますか ドキュメントはすべてソース配布物に含まれています。個々のセクションは、gnuplot の作業中に help キーワードを打つことで見ることができます。サブディレクトリ docs と tutorial の中を見てください。そこには、PDF や HTML 版のユーザマニュアルを生 成するファイルがあります。 http://gnuplot.sourceforge.net/documentation.html に、そのコピーが置いてありま す。 2.6 動作するサンプル ソース配布物には動作するサンプルのディレクトリが含まれています。これらサンプル 、およびその結果の描画グラフは http://gnuplot.sourceforge.net/demo/ でも見るこ とができます。 2.7 どうしたら gnuplot を修正、またはパッチを当てられますか このためには gnuplot をコンパイルし直す必要があります。 様々な人々が作った修正は、出力ドライバのようなファイルを置き換えることで行なう か、またはパッチ当てで行ないます。ファイルの置き換えの場合、それ用の README フ ァイル、またはそのファイルの最初の行に何か情報があるかも知れません。 パッチを当てる場合は、patch ユーティリティが必要で、もしかしたら automake, autoconf というツールも必要かもしれません。パッチを適用する場合の典型的なやり方 は patch -p0 show version long 3 動作 (Working with it) 3.1 ヘルプはどうやって手に入れられますか このドキュメントを読んでください。 初期プロンプトで help コマンドを実行してください。その後キーワードをたどってい ってください。 plot や set から始めるのがいいでしょう。 もし、持っているならマニュアルを読んでください demo サブディレクトリを見てください。ヒントを与えてくれるでしょう。 システム管理者、または gnuplot を設定した同僚に尋ねてください。 それら全てに失敗したら、gnuplot の最新版に更新する、あるいは更新するようシステ ム管理者に圧力をかけてください。そして質問をニュースグループ ~ comp.graphics.apps.gnuplot に投書するか、またはメーリングリスト gnuplot-info@lists.sourceforge.net にメールを送ってください。そのメーリングリス トが別に受けてしまう圧倒的な量 spam を避けるため、投稿の前にそのメーリングリス トに参加 (subscribe) しなければいけません。参加の方法は、gnuplot のマニュアル本 文にあります。メールを送る際は、バージョン番号とオペレーティングシステムを併記 することを忘れないでください。そのメーリングリストを購読したいならば、URL http: //lists.sourceforge.net/lists/listinfo/gnuplot-info を参照してください。しかし ニュースグループ ~comp.graphics.apps.gnuplot が直接読めるならば、そうしないでく ださい。質問をそのニュースグループに投稿すれば、それはメールでの返事を請求する 、あるいは要約を投稿する良い形式と見なされます。 3.2 どうやったらグラフをプリントアウトできますか 生成される出力の種類は set terminal コマンドで定義します。例えば set terminal postscript はグラフを PostScript 形式で出力します。出力は set output コマンドでリダイレクトできます。 以下の例は、まず sin(x) のグラフをスクリーン上に描画し、同じグラフを PostScript 出力ファイルとして再描画します。 gnuplot> plot sin(x) gnuplot> set terminal postscript Terminal type set to 'postscript' Options are 'landscape monochrome "Courier" 14' gnuplot> set output "sin.ps" gnuplot> replot gnuplot> unset output # 出力先をデフォルトに戻す gnuplot> unset terminal # 出力形式をデフォルトに戻す gnuplot> system("print sin.ps") # PS ファイルをプリントアウト (環境依存) gnuplot> プラットフォームに依存しない出力形式の復帰は、コマンド set term push/pop によっ て以下のように行なえます。 gnuplot> set terminal postscript eps color lw 15 "Helvetica" 20 gnuplot> set out 'a.eps' gnuplot> replot gnuplot> set term pop set term pop コマンドは、その前に対応する set term push を実行していない場合は 、起動時の出力形式復帰します。 unset terminal を実行した場合も同じです。 対話型出力形式の中にはそのツールバー上にプリンタアイコンを提供するものもありま す (win, wxt, qt 等)。それは、他の出力形式を使用するのではなく、システムに用意 されている一般的なシステムツールを使い、現在のグラフを印刷するか、またはファイ ルに保存します。すなわち、印刷メニューで "save to png" を選択して得られるファイ ルは、 set term png; replot; によって得られるファイルとは違うものになります。 3.3 どうやったらグラフをワープロソフトに取り込めますか 基本的に、グラフをそのワープロソフトが理解できる形式のファイルに保存すれば (set term と set output を使います。上を見てください) そのワープロソフトで読み込むこ とができるでしょう。後で正しいサイズに変換もできるという点でベクトル形式のフォ ーマット (PostScript, emf, svg, pdf, TEX, L^ATEX など) の方がいいでしょう。 細かいことはそのワープロソフトに依存します。 set term として使用できるファイル 形式のリストを見てください。 多くのワープロソフトは Encapsulated PostScript (*.eps) のグラフを取り込めます。 gnuplot では、 set terminal postscript eps または set terminal epscairo を使うことで eps 出力 を選択できます。 gnuplot は、出力する EPS ファイルにプレビュー用のビットマップ 画像を埋め込みませんので、ワープロソフトの中には、それに対応させるために自分自 身でプレビュー画像を追加しないといけない場合もあるかもしれません。その目的のた めには、GSView ビューワ (OS/2, Windows, X11 用があります)、あるいはいくつかの Unix 上の ps ツールが使えます。 OpenOffice.org 等の Windows のオフィスアプリケーションには、 EMF 形式のベクトル 画像を処理できるものがあります。そのような画像ファイルは emf 出力形式でも作れま すし、 windows 出力形式のグラフウィンドウのツールバーから 'Save as EMF...' を選 択することでも作れます。 OpenOffice.org は SVG 形式も、AutoCAD の dxf 形式も読みこむことができます。 gnuplot を使って TEX や L^ATEX 文書に取り込むためのグラフを作る方法は何通りもあ ります。取り込む *.tex ファイルの断片を直接生成する出力形式もありますし、 \ includegraphics コマンドを使って取り込むための *.eps, *.pdf, *.png 出力を生成す るものもあります。 epslatex と cairolatex 出力形式は、画像ファイル (*.eps か *.pdf) とそれを参照する *.tex 文書ファイルの両方を生成します。 tikz 出力形式は 、テキストとグラフを生成し、その出力を pdflatex で処理すれば PDF ファイルが作成 できます。 大抵のワープロソフトはビットマップ画像 (png, pbm 等) を取り込むことができますが 、この方法の短所は、そのグラフが gnuplot によって生成されたときのサイズによって その解像度が制限されてしまうことです。一般に、文書が最終的にプリントアウトされ る解像度よりもその解像度はかなり低くなります。 3.4 どうやったら gnuplot のグラフを編集や後処理できますか これはあなたが使う出力形式に依存します。 ・ svg 出力形式 (scalable vector graphics) の出力は Inkscape (http:// www.inkscape.org), Skencil (http://www.skencil.org), Dia (http:// projects.gnome.org/dia/), のような svg エディタで更なる編集も行なえますし、 OpenOffice.org (OO.o Draw プリミティブへの変換によって) の中に取り込むこと もできます。 ・ PostScript や PDF 出力は、Adobe Illustrator や Acrobat のようなツールで直接 編集できますし、 pstoedit パッケージで他の色々な編集可能なベクトル形式に変 換することも可能です。 pstoedit は http://www.pstoedit.net にあります。 ・ DXF 出力形式は AutoCAD の書式で、他のいくつかのアプリケーションでも編集でき ます。 ・ ビットマップ形式の画像 (png, jpeg, pbm 等) は ImageMagick や Gimp の様なツ ールで編集することができます。一般に、ベクトルグラフィック形式の後処理を行 なうにはベクトルグラフィックプログラム (ドロー系ツール) を、ピクセル画像に はピクセル画像系のプログラム (ペイント系ツール) を使う必要があります。 3.5 どうやったら記号の大きさや線の太さなどを変更できますか gnuplot は、例えば色や太さや点の形などの、線や点の色々な属性を設定するための様 々なコマンドを提供しています。コマンド test は、現在選択されている出力形式用の 、利用可能な定義済みの色、サイズ、形などの組合せを示すテストページを出力します 。コマンド set linetype を使うことでこれを変更したり、あらたな組を追加定義でき ます。 3.6 グラフをアニメーション化できますか gnuplot 出力形式で直接アニメーションファイルを出力できるのは以下のもの (gif) だ けです: set terminal gif animate {delay