C RCS $Id: gnuplot-ja.doc,v 1.61.2.1 2017/08/31 15:45:14 sfeam Exp $ C corresponding original gnuplot.doc revision: 1.1084.2.10 C C Copyright (C) 1986 - 1993, 1998, 1999, 2000, 2001, 2004 Thomas Williams, Colin Kelley et al. C C Japanese translation: Hiroharu Tamaru (2.0, 3.2), MASUTANI Yasuhiro (3.5), C Shigeharu Takeno et al (3.7, 4.X, 5.X) 1 gnuplot ?gnuplot C 下の contributors の表のアクセント文字は、現在のオリジナルでは UTF-8 C で書かれているが、それを HTML 名前参照形式に変更している。 ^
Thomas Williams & Colin Kelley
^Version 5 organized by Ethan A Merritt and others
^Major contributors (alphabetic order):
^
^ Hans-Bernhard Broeker, John Campbell,
^ Robert Cunningham, David Denholm,
^ Gershon Elber, Roger Fearick,
^ Carsten Grammes, Lucas Hart,
^ Lars Hecking, Péter Juhász,
^ Thomas Koenig, David Kotz,
^ Ed Kubaitis, Russell Lang,
^ Timothée Lecomte, Alexander Lehmann,
^ Alexander Mai, Bastian Märkisch,
^ Ethan A Merritt, Petr Mikulík,
^ Carsten Steger, Shigeharu Takeno,
^ Tom Tkacik, Jos Van der Woude,
^ James R. Van Zandt, Alex Woo, Johannes Zellner
^
Copyright (C) 1986 - 1993, 1998 - 2004 Thomas Williams, Colin Kelley
^ Copyright (C) 2004 - 2017 various authors
Mailing list for comments: gnuplot-info@lists.sourceforge.net
^ Mailing list for bug reports: gnuplot-bugs@lists.sourceforge.net
^ Web access (preferred): http://sourceforge.net/projects/gnuplot
This manual was originally prepared by Dick Crawford
C 行が長いのは、できればなんとかしたい C 2 著作権 (Copyright) 2 Copyright ?copyright ?license Copyright (C) 1986 - 1993, 1998, 2004, 2007 Thomas Williams, Colin Kelley Permission to use, copy, and distribute this software and its documentation for any purpose with or without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Permission to modify the software is granted, but not the right to distribute the complete modified source code. Modifications are to be distributed as patches to the released version. Permission to distribute binaries produced by compiling modified sources is granted, provided you 1. distribute the corresponding source modifications from the released version in the form of a patch file along with the binaries, 2. add special version identification to distinguish your version in addition to the base release version number, 3. provide your name and address as the primary contact for the support of your modified version, and 4. retain our contact information in regard to use of the base software. Permission to distribute the released version of the source code along with corresponding source modifications in the form of a patch file is granted with same provisions 2 through 4 for binary distributions. This software is provided "as is" without express or implied warranty to the extent permitted by applicable law. AUTHORS Original Software: Thomas Williams, Colin Kelley. Gnuplot 2.0 additions: Russell Lang, Dave Kotz, John Campbell. Gnuplot 3.0 additions: Gershon Elber and many others. Gnuplot 4.0 and 5.0 additions: See list of contributors at head of this document. (以下おおまかな訳; 訳は正しくないかも知れませんので詳しくは上記の原文 を当たってください。訳者は責任を持ちません。) Copyright (C) 1986 - 1993, 1998, 2004, 2007 Thomas Williams, Colin Kelley このソフトウェアとその付属文書の使用、複製、配布の許可は、上記の著作権 (copyright) 表示が、全ての複製物に書かれていること、および著作権表示と この許諾文の両方がその支援文書に書かれていることを条件とした上で、この 文書により保証されます。 このソフトウェアの修正も認められています。しかし、修正を含む全ソースコ ードの配布の権利は認められません。修正はリリース版に対するパッチの形で 配布しなければなりません。修正されたソースをコンパイルして作られたバイ ナリの配布は、以下の条件の元で認められます: 1. リリース版からのソースの修正部分を、パッチの形でバイナリと共に配 布すること 2. ベースとなるリリース版と区別するために、そのバージョン番号に特別 なバージョン指定子を付加すること 3. その修正版のサポート用に、あなたの名前とアクセス可能なアドレスと を提供すること 4. ベースとなるソフトウェアの使用に関しては、我々の連絡情報を保持し 続けること リリース版のソースコードを、パッチの形でのソースの修正と一緒に配布する ことは、バイナリ配布に関する条項 2 から 4 までの条件の元で許されます。 このソフトウェアは "あるがまま" 提供され、適用可能な法律で許められる範 囲の保証を表明あるいは暗示していはいません。 著者 オリジナルソフトウェア: Thomas Williams, Colin Kelley. Gnuplot 2.0 追加: Russell Lang, Dave Kotz, John Campbell. Gnuplot 3.0 追加: Gershon Elber とその他の人々。 Gnuplot 4.0, 5.0 追加: この文書の先頭の寄与者 (contributors) の一覧参照。 C 2 はじめに (Introduction) 2 Introduction ?introduction ? `gnuplot` は、ポータブルなコマンド入力方式のグラフユーティリティで、 Linux, OS/2, MS Windows, OSX, VMS, その他多くのプラットホーム上で動作 します。ソースコードには著作権がありますが、無料で配布されています (す なわち、それに対価を支払う必要はありません)。元は、科学者や学生が数学 関数やデータなどを対話的に表示できるよう作られたのですが、現在までに、 例えば Web スクリプトなど、多くの非対話型の利用もサポートするように成 長しています。これは、例えば Octave のようにサードパーティのアプリケー ションの描画エンジンとしても使われています。gnuplot は、1986 よりサポ ートと活発な開発が行われています。 gnuplot は、2 次元、または 3 次元の、多くの種類のグラフをサポートして います: 折線グラフ、点グラフ、棒グラフ、等高線、ベクトル場描画、曲面、 そしてそれらに関連するさまざまな文字列等。そしてさらにいくつかの特別な 描画型もサポートしています。 gnuplot は多くの異なる出力をサポートしています: 対話型スクリーン出力形 式 (マウスやホットキー入力も可能)、ペンプロッタや現在のプリンタへの直 接出力、または多くのファイル形式への出力 (eps, emf, fig, jpeg, LaTeX, pdf, png, postscript, ...)。gnuplot は、容易に新しい出力形式を追加する よう拡張することができます。最近追加された対話型出力形式には、 wxWidgets (複数のプラットホームで利用可能), Qt を元にしたものがありま す。svg や HTML5 canvas 出力形式を利用すれば、グラフを Web ページ内に マウス利用可能な形で埋め込んだ出力を生成することもできます。 `gnuplot` のコマンド言語は大文字小文字を区別します。すなわち、小文字で 書かれたコマンドや関数名は、それらを大文字で書いたものとは同じではあり ません。いずれのコマンドも、あいまいさの無い限りにおいて省略することが できます。1 行中にはセミコロン (;) で区切って複数のコマンドを書くこと ができます。文字列は単一引用符、あるいは二重引用符のどちらかで書き始め ますが、両者には微妙な違いがあります (詳細は、以下参照: `syntax`)。例: set title "My First Plot"; plot 'data'; print "all done!" コマンドは、複数行にまたがることができます。その場合は、最終行以外の 全ての行の行末にバックスラッシュ (\) を書く必要があります。バックスラ ッシュは必ず各行 *最後* の文字でなくてはなりません。その結果としてバッ クスラッシュと、それに続く改行文字が存在しなかったかのように扱われます。 つまり、改行文字がスペースの役をすることもありませんし、改行によってコ メントが終了することもありません。ですから複数行にまたがる行の先頭をコ メントアウトすると、そのコマンド全体がコメントアウトされることになりま す (以下参照: `comments`)。なお注意しますが、もし、複数行のコマンドの どこかでエラーが起きたとき、パーサはその場所を正確には指示することがで きませんし、また、正しい行に指示する必要もないでしょう。 このドキュメントにおいて、中括弧 ({}) は省略可能な引数を表すものとし、 縦棒 (|) は、互いに排他的な引数を区切るものとします。`gnuplot` のキー ワードや `help` における項目名は、逆引用符 (`)、または可能な場合には `boldface` (太字) で表します。角括弧 (<>) は、それに対応するものに置き 換えられるべきものを表します。多くの場合、オプションの引数には、それが 省略されるとデフォルトの値が使用されます。しかし、これらの場合、必ずし も角括弧が中括弧で囲まれて書かれているわけではありません。 ある項目についてのヘルプが必要なときには、`help` に続けてその項目名を 入力して下さい。または単に `help ?` でもヘルプの項目のメニューが現われ ます。 大量のグラフサンプルが、以下の Web ページにあります。 ^ http://www.gnuplot.info/demo/ ^ コマンドラインから起動するときは、以下の書式が使えます。 gnuplot {OPTIONS} file1 file2 ... ここで file1, file2 等は、`local` コマンドで取り込むのと同等の入力ファ イル (スクリプトファイル) です。 X11 ベースのシステムでは、以下の書式が使えます。 gnuplot {X11OPTIONS} {OPTIONS} file1 file2 ... 詳細は、X11 のドキュメント、および以下参照: `x11`。 gnuplot に与えるオプションは、コマンド行のどこに置いても構いません。フ ァイルは指定した順に実行され、同様に -e オプションで任意のコマンドを与 えることもできます。例: gnuplot file1.in -e "reset" file2.in 特別なファイル名 "-" は、標準入力から読ませるのに使います。`gnuplot` は最後のファイルを処理し終わると終了します。読み込ませるファイルを一つ も指定しない場合は、`gnuplot` は標準入力からの対話入力を取ります。詳細 は、以下参照: `batch/interactive`。gnuplot 用のオプションについては、 以下のようにして一覧を見ることができます: gnuplot --help 詳細は以下参照: `command line options`。 対話型描画ウィンドウでの作業中は、'h' を打つとホットキー (`hotkeys`) とマウス機能 (`mousing`) に関するヘルプを見ることができます。 `seeking-assistance` のセクションは、さらなる情報やヘルプ、FAQ を探す 手掛りを与えてくれるでしょう。 C 2 探し出す手助け (Seeking-assistance) 2 Seeking-assistance ?help-desk ?faq ?FAQ ?seeking-assistance 公式の gnuplot Web ページは以下にあります。 ^ http://www.gnuplot.info ^ 助けを求める前に、ファイル FAQ.pdf か、または上の Web サイトの ^ FAQ (度々聞かれる質問; Frequently Asked Questions) の一覧 ^ をチェックしてください。 gnuplot ユーザとしての手助けが必要なら、以下のニュースグループを利用し てください。 comp.graphics.apps.gnuplot gnuplot メーリングリストへの投稿の方法に関しては、SouceForge にある gnuplot の開発 Web サイト ^ http://sourceforge.net/projects/gnuplot ^ を参照してください。 gnuplot メーリングリストにメールを書く前に、最初にそのメーリングリスト に参加する必要があることに注意してください。これは、スパムの量を減らす ことを維持するために必要です。 メーリングリストメンバーへのメールアドレス: gnuplot-info@lists.sourceforge.net バグリポート、ソースの改良等は以下の trackers に upload してください: http://sourceforge.net/projects/gnuplot/support ただし、リポートを送る前に、あなたがリポートしようとしているバグが、よ り新しい版で既に修正されていないかチェックしてください。 開発版に関するメーリングリスト: gnuplot-beta@lists.sourceforge.net 何か質問を投稿するときは、あなたが使用している gnuplot のバージョン、 出力形式、オペレーティングシステム、といった全ての情報を含むようにして ください。それだけで閉じていて、その問題を再現する短いスクリプトを提示 するとなお良いでしょう。 C 2 新しい機能 (New features) 2 New features C 3 バージョン 5.2 で導入された機能 (Features introduced in version 5.2) 3 Features introduced in version 5.2 ?new version_5.2 ?new バージョン 5.2 は gnuplot の現在の安定版系列です。 以下の新機能の一覧は、2017 5 月時点で最新のものです。 C 4 新しい描画スタイルとオプション (New plot styles and style options) 4 New plot styles and style options ?new plot styles #start #b 3 次元描画スタイル `with zerrorfill`。以下参照: `zerrorfill`, ## `fenceplots`, ^ zerror デモ。 ^ #b ビースウォームグラフ。以下参照: `set jitter`, `beeswarm`, ^ ビースウォームグラフデモ。 ^ #b グラフの点 (points) で使われる個々の記号は、データ値で制御できます。 ## (以下参照: `pointtype variable`) #end C 4 データ用の新しい前処理フィルタ (New data pre-processing filters) 4 New data pre-processing filters ?new filters #start #b データ集合内での出現回数の正規化 (以下参照: `smooth fnormal`) #b データの階級幅割り当ての自動化 (以下参照: `bins`) #end C 4 極座標モードの改良と拡張 (Polar mode improvements and extensions) 4 Polar mode improvements and extensions ?new polar mode features #start #b ラベル、矢 (arrow)、オブジェクトの定義に極座標が使えます。 #b `set [m]ttics` は極座標モードでの外周方位軸のラベルと刻みを配置しま ## す。以下参照: ^ 極座標軸と刻みラベルデモ ^ #b `set rlabel` は動径軸 (r 軸) の上にラベルを配置します。 #b 逆向きの `rrange` (例: set rrange [90:0]) で天球地平座標 (celestial ## horizontal coordinates) が使えるようになります。以下参照: ^ 天体軌道デモ ^ #b `set border polar` は極座標の外周の回りに実線を描きます。 #b `set theta` は極座標グラフの外周方位軸での theta = 0 の位置と、角の ## 増加方向 (時計回りか反時計回りか) を制御します。 #end C 4 非線形座標系 (Nonlinear coordinates systems) 4 Nonlinear coordinates systems ?new nonlinear coordinates #start #b グラフの任意の軸に、線形の範囲への写像とその逆写像を意味する関数の組 ## を割り当てることができ、それを非線形にすることも可能です (以下参照: ## `set nonlinear`)。 ^ 非線形 x,y 軸デモ ^ #b なじみ深いコマンド `set logscale` は、現在は関数の組 log(x), exp(x) ## による非線形軸の例の一つとして再実装されました。 #end C 4 新しいコマンドやオプション (New commands and command options) 4 New commands and command options ?new commands #start #b 繰り返し実行部分の中カッコ内では、`continue` は次の繰り返しにすぐに ## 移動し、`break` は繰り返しを中断します。 #b `toggle {文字 | 機能 |
---|---|
行編集 | |
^B | 1 文字前へ戻す |
^F | 1 文字先へ進める |
^A | 行の先頭へ移動 |
^E | 行の最後へ移動 |
^H | 直前の文字を削除 |
DEL | 現在の文字を削除 |
^D | 現在位置の文字を削除、空行なら EOF |
^K | 現在位置から行末まで削除 |
^L | 壊れた表示の行を再表示 |
^U | 行全体の削除 |
^W | 直前の単語を削除 |
^V | この次のキーを編集コマンドと見なさない |
TAB | ファイル名補完動作 |
履歴 | |
^P | 前の履歴へ移動 |
^N | 次の履歴へ移動 |
^R | 後方検索を開始 |
制御記号 | 例 | 説明 |
---|---|---|
^ | a^x | 上付き文字 |
_ | a_x | 下付き文字 |
@ | @x, a@^b_{cd} | 空ボックス (幅がない) |
& | &{space} | 指定した長さのスペースを挿入 |
~ | ~a{.8-} | 'a' の上に '-' を、現在のフォントサ イズの .8 倍持ち上げた位置に重ね書き |
数学ライブラリ関数 | ||
---|---|---|
関数 | 引数 | 戻り値 |
abs(x) | 任意 | |x|, x の絶対値; 同じ型 |
abs(x) | 複素数 | length of x, √( Re(x)2 + Im(x)2 ) |
acos(x) | 任意 | cos-1 x (アークコサイン) |
acosh(x) | 任意 | ラジアンでの cosh-1 x (逆双曲余弦) |
airy(x) | 任意 | エアリー (Airy) 関数 Ai(x) |
arg(x) | 複素数 | x の偏角 |
asin(x) | 任意 | sin-1 x (アークサイン) |
asinh(x) | 任意 | ラジアンでの sinh-1 x (逆双曲正弦) |
atan(x) | 任意 | tan-1 x (アークタンジェント) |
atan2(y,x) | 整数または実数 | tan-1(y/x) (アークタンジェント) |
atanh(x) | 任意 | ラジアンでの tanh-1 x (逆双曲正接) |
EllipticK(k) | (-1:1) 内の実数 k | K(k) 第 1 種完全楕円積分 |
EllipticE(k) | [-1:1] 内の実数 k | E(k) 第 2 種完全楕円積分 |
EllipticPi(n,k) | 実数 n<1, (-1:1) 内の実数 k | Π(n,k) 第 3 種完全楕円積分 |
besj0(x) | 整数または実数 | ラジアンでの J0 ベッセル関数 (0 次ベッセル関数) |
besj1(x) | 整数または実数 | ラジアンでの J1 ベッセル関数 (1 次ベッセル関数) |
besy0(x) | 整数または実数 | ラジアンでの Y0 ベッセル関数 (0 次ノイマン関数) |
besy1(x) | 整数または実数 | ラジアンでの Y1 ベッセル関数 (1 次ノイマン関数) |
ceil(x) | 任意 | ⌈x⌉, x (の実部) 以上の最小の整数 |
cos(x) | radians | cos x, x のコサイン |
cosh(x) | 任意 | cosh x, ラジアンでの x のハイパボリックコサイン |
erf(x) | 任意 | erf(Re(x)), x の実部の誤差関数 |
erfc(x) | 任意 | erfc(Re(x)), 1.0 - (x の実部の誤差関数) |
exp(x) | 任意 | ex, x の指数関数 |
expint(n,x) | 任意 | En(x), x の指数積分 |
floor(x) | 任意 | ⌊x⌋, x (の実部) 以下の最大の整数 |
gamma(x) | 任意 | Γ(Re(x)), x の実部のガンマ関数 |
ibeta(p,q,x) | 任意 | ibeta(Re(p,q,x)), p,q,x の実部の不完全ベータ関数 |
inverf(x) | 任意 | x の実部の逆誤差関数 |
igamma(a,x) | 任意 | igamma(Re(a,x)), a,x の実部の不完全ガンマ関数 |
imag(x) | 複素数 | Im(x), x の虚数部分 (実数) |
invnorm(x) | 任意 | x の実部の逆正規分布関数 |
int(x) | 実数 | x の整数部分 (0 に向かって丸め) |
lambertw(x) | 実数 | Lambert W 関数 |
lgamma(x) | 任意 | lgamma(Re(x)), x の実部のガンマ対数関数 |
log(x) | 任意 | ln x, x の自然対数 (底 e) |
log10(x) | 任意 | log10 x, x の対数 (底 10) |
norm(x) | 任意 | norm(x), x の実部の正規分布関数 |
rand(x) | 整数 | 区間 [0:1] 内の疑似乱数 |
real(x) | 任意 | Re(x), x の実数部分 |
sgn(x) | 任意 | x > 0 なら 1, x < 0 なら -1, x = 0 なら 0. x の虚部は無視 |
sin(x) | 任意 | sin x, x のサイン |
sinh(x) | 任意 | sinh x,ラジアンでの x のハイパボリックサイン |
sqrt(x) | 任意 | √x, x の平方根 |
tan(x) | 任意 | tan x, x のタンジェント |
tanh(x) | 任意 | tanh x, ラジアンでの x のハイパボリックタンジェント |
voigt(x,y) | 実数 | ガウス関数とローレンツ関数の畳みこみ |
^
libcerf (利用可能な場合のみ) による特殊関数 | ||
---|---|---|
関数 | 引数 | 戻り値 |
cerf(z) | 複素数 | 複素誤差関数 |
cdawson(z) | 複素数 | 複素 Dawson 積分 |
faddeeva(z) | 複素数 | 再スケール化複素誤差関数 w(z) = exp(-z2) × erfc(-iz) |
erfi(x) | 実数 | 虚誤差関数 erfi(x) = -i × erf(ix) |
VP(x,sigma,gamma) | 実数 | Voigt プロファイル |
^
文字列関数 | ||
---|---|---|
関数 | 引数 | 戻り値 |
gprintf("format",x,...) | 任意 | gnuplot の書式解析器を適用した結果の文字列 |
sprintf("format",x,...) | 複数個 | C 言語の sprintf の返す文字列 |
strlen("string") | 文字列 | バイト単位での文字列の長さ (整数) |
strstrt("string","key") | 文字列 | 部分文字列 "key" が現れる先頭位置 |
substr("string",beg,end) | 複数個 | 文字列 "string"[beg:end] |
strftime("timeformat",t) | 任意 | gnuplot による時刻解析結果の文字列 |
strptime("timeformat",s) | 文字列 | 文字列 s を変換した 1970 年からの秒数 |
system("command") | 文字列 | シェルコマンドの出力を持つ文字列 |
word("string",n) | 文字列, 整数 | 文字列 "string" の n 番目の単語 |
words("string") | 文字列 | 文字列 "string" 中の単語数 |
^
他の gnuplot の関数 | ||
---|---|---|
関数 | 引数 | 戻り値 |
column(x) | 整数か文字列 | 入力データ中の x 列目の内容 |
columnhead(x) | 整数 | データファイルの最初の x 列目中の文字列 |
exists("X") | 文字列 | 変数名 X が定義されていれば 1, そうでなければ 0 |
hsv2rgb(h,s,v) | [0:1] 内の実数 h,s,v | HSV 色を 24ビットの RGB 色へ変換 |
stringcolumn(x) | 整数 | 文字列としての x 列目の内容 |
timecolumn(N,format) | 整数, 文字列 | データ入力中の N 列目の日時データ |
tm_hour(x) | 整数 | 時 |
tm_mday(x) | 整数 | 日 |
tm_min(x) | 整数 | 分 |
tm_mon(x) | 整数 | 月 |
tm_sec(x) | 整数 | 秒 |
tm_wday(x) | 整数 | その週の何日目 |
tm_yday(x) | 整数 | その年の何日目 |
tm_year(x) | 整数 | 西暦 |
time(x) | 任意 | 現在のシステム時刻 |
valid(x) | 整数 | データ中の column(x) の正当性 |
value("name") | 文字列 | 名前 name の変数の現在の値 |
記号 | 例 | 説明 |
---|---|---|
- | -a | マイナス符号 |
+ | +a | プラス符号 (何もしない) |
~ | ~a | * 1 の補数 (ビット反転) |
! | !a | * 論理的否定 |
! | a! | * 階乗 |
$ | $3 | * `using` 内での引数/列指定 |
| | |A| | 配列 A の要素数 |
記号 | 例 | 説明 |
---|---|---|
** | a**b | 累乗 |
* | a*b | 積 |
/ | a/b | 商 |
% | a%b | * 余り |
+ | a+b | 和 |
- | a-b | 差 |
== | a==b | 等しい |
!= | a!=b | 等しくない |
< | a<b | より小さい |
<= | a<=b | 以下 |
> | a>b | より大きい |
>= | a>=b | 以上 |
<< | 0xff<<1 | 符号なし左シフト |
>> | 0xff>>1 | 符号なし右シフト |
& | a&b | * ビット積 (AND) |
^ | a^b | * ビット排他的論理和 (XOR) |
| | a|b | * ビット和 (OR) |
&& | a&&b | * 論理的 AND |
|| | a||b | * 論理的 OR |
= | a = b | 代入 |
, | (a,b) | 累次評価 |
. | a.b | 文字列の連結 |
eq | A eq B | 文字列が等しい |
ne | A ne B | 文字列が等しくない |
記号 | 例 | 説明 |
---|---|---|
?: | a?b:c | * 三項演算子 |