FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

GitHub Viewer

C RCS $Id: gnuplot-ja.doc,v 1.62 2017-07-01 04:21:39 sfeam Exp $ C corresponding original gnuplot.doc revision: 1.1092 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 名前参照形式に変更している。 ^

An Interactive Plotting Program

^

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 行が長いのは、できればなんとかしたい 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) の一覧参照。 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 を探す 手掛りを与えてくれるでしょう。 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 のバージョン、 出力形式、オペレーティングシステム、といった全ての情報を含むようにして ください。それだけで閉じていて、その問題を再現する短いスクリプトを提示 するとなお良いでしょう。 2 新しい機能 (New features) 3 バージョン 5.3 で導入された機能 (Features introduced in version 5.3) ?new version_5.3 ?new バージョン 5.3 は現在の開発版です。ここで導入される新しい機能は、一般 には、バージョン 5.4 までの正式版に現れることはありませんし、細かい仕 様は導入の前に変更される可能性があります。 3 バージョン 5.2 で導入された機能 (Features introduced in version 5.2) ?Features introduced in version 5.2 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 4 データ用の新しい前処理フィルタ (New data pre-processing filters) ?new filters #start #b データ集合内での出現回数の正規化 (以下参照: `smooth fnormal`) #b データの階級幅割り当ての自動化 (以下参照: `bins`) #end 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 4 非線形座標系 (Nonlinear coordinates systems) ?new nonlinear coordinates #start #b グラフの任意の軸に、線形の範囲への写像とその逆写像を意味する関数の組 ## を割り当てることができ、それを非線形にすることも可能です (以下参照: ## `set nonlinear`)。 ^ 非線形 x,y 軸デモ ^ #b なじみ深いコマンド `set logscale` は、現在は関数の組 log(x), exp(x) ## による非線形軸の例の一つとして再実装されています。 #end 4 新しいコマンドやオプション (New commands and command options) ?new commands #start #b 繰り返し実行部分の中カッコ内では、`continue` は次の繰り返しにすぐに ## 移動し、`break` は繰り返しを中断します。 #b `toggle { | "plottitle" | all}"` は、対話的に現在のグラフの ## 構成要素を表示させるか消すかを選択できます。 #b `save fit` は非推奨のコマンド `update` を置き換え #b `set table "outfile.name" append` で、その後の table 出力を、既に存 ## 在するテキストファイルを上書きせず、追加出力にします。 #b `set pm3d lighting` で、反射光ハイライトによる点光源モデルを使用しま ## す (以下参照: `lighting`)。 #b `set minussign` は、負の数でのアスキー文字 '-' を、現在のエンコード ## での特殊文字に置き換えるよう gnuplot に指示します。 #b `set micro` は、科学用接頭辞の「マイクロ」用のアスキー文字 'u' を、 ## 現在のエンコードでの特殊文字に置き換えるよう gnuplot に指示します。 ## micro, minussign の特殊印刷記号は、軸刻みラベルと、明示的に gprintf() ## で生成した文字列にのみ使用します。それらの文字表現のバイト列は、現在 ## のエンコード設定に依存します。 #end 4 新しい配列データ型 "array" (New data type "array") ?new features #start #b このバージョンの gnuplot には、新しい配列データ型 `array name[size]` ## が導入されています。配列は、使用する前に宣言しなければいけません。各 ## 配列要素 A[i] は、文字列、整数、実数、複素数のいずれでも構いません。 ## 一つの配列が異なる型の要素を持つことも可能です。基数演算子 |A| は配 ## 列のサイズを返します。以下参照: `arrays`。 #end 4 新しい出力形式とそのオプション (New terminals and terminal options) #start #b 新しい `sixelgd` 出力形式は、vt340 と互換の端末エミュレータ上で ## gnuplot を実行した場合に、グラフを出力する命令のコマンドラインの合間 ## にグラフを挟むような出力をサポートします。以下参照: `sixelgd`。 #b `domterm` 出力形式は、svg を解釈する端末エミュレータ上で gnuplot を ## 実行した場合に、グラフを出力する命令のコマンドラインの合間にグラフを ## 挟むような出力をサポートします。 #b `windows` 出力形式は、現在のグラフのビットマップファイルへの保存をサ ## ポートします。 #b `windows` 出力形式は、グラフウィンドウと wgnuplot テキストウィウンド ## ウをドッキングできます。 #b `windows` 出力形式用 (試験的) Direct2D/DirectWrite 新バックエンド。 #b `wxt` 出力形式は、Windows 上では EMF ファイルへの出力とプリンタ出力 ## をサポート。 #b `dumb` 出力形式は、線と領域の塗り潰しで ANSI カラーをサポート。 #b `tkcanvas` 出力形式は、新しい言語と、最近の gnuplot の多くの機能をサ ## ポートするように書き直されています (5.0.3 より)。 #end 4 その他の新しい機能 (Other new features) #start #b 3 次元グラフの向きに影響する追加回転角 `azimuth`。これは、コマンドラ ## インから (以下参照: `set view azimuth`)、または右マウスボタンのドラ ## ッグで設定できます。 #b Windows 上の gnuplot では、Unicode (BMP) スクリプトの入力を、 ## `set encoding` による現在のエンコード (UTF-8 を含む) に変換して解釈 ## します。 #b 文字枠に境界色と背景色を指定できます (以下参照: `set style textbox`) #b グラフの表題のカスタマイズ (以下参照: `plot title`, `set key`, ## `multiple keys`) #b 疑似ファイル '+' でのグラフのサンプリング範囲指定にサンプリング区間 ## を指定できます。例: ## plot sample [t=0:100:10] '+' using (t):(1):(label[t]) with labels #b 疑似ファイル '++' は、x, y 軸でなく u, v 軸に沿ったサンプリングを行 ## います。これは、3 次元グラフ中に、別々のデカルト座標領域を占めるよう ## な複数の媒介変数曲面を置くのに便利でしょう。 #b ^R で、組み込み readline (Windows でも使われている) の履歴の逆向き検 ## 索を開始します。以下参照: `command-line-editing`。 #b Windows での `set output "PRN"` による印刷の改良。以下参照: ## `windows printing`。 #end 3 バージョン 5.0 で導入された機能 (Features introduced in version 5.0) ?Features introduced in version 5.0 #start #b 線の点線/破線パターンは、現在は線の他の属性と独立に指定できます。以 ## 下参照: `dashtype`, `set dashtype`, `set linetype`。 #b 一つの plot での連続した要素に使用されるデフォルトの色の巡回列は、色 ## 弱者により容易に区別できるものになりました。その色の巡回列は、ユーザ ## が制御できます (以下参照: `set colorsequence`)。この仕組みは、白黒の ## グラフを生成することでも行えます (以下参照: `set monochrome`)。なお、 ## 従来の gnuplot のバージョンでは `monochrome` は、現在の出力形式を ## `set temrinal` で変更するときにのみにしか選択できませんでした。 #b 新しい描画スタイル `with parallelaxes`、`with table`、および等高線の ## ラベル付け。 #b 単調 3 次スプラインによるデータの新しい前処理フィルタ (以下参照: ## `smooth mcsplines`) #b 文字の書式制御は、下付き、上付き、フォントサイズ、その他以前有効だっ ## たものに加え、今は太字体 (bold) と斜体 (italic) フォント設定もサポー ## トしています。このモード (拡張文字処理) は、現在はデフォルトで有効と ## なっています。以下参照: `enhanced text`。文字列要素は枠で囲むことも ## できます (以下参照: `set style textbox`)。 #b 対話型出力形式は、ハイパーテキストラベルをサポートしていますが、これ ## はマウスがそのラベルのリンク点上にあるときにのみ現れるものです。 #b 新しい座標系 (度、分、秒)。以下参照: `set xtics geographic`。 #b 軸の見出しのデフォルト書式用の "% h" (LaTeX 系出力形式では "$%h$")。 ## この書式は C の標準書式の %g に似ていますが、指数部分がある場合は、 ## それが上付き文字として書かれることが違います。例えば、1.2E05 でなく ## 1.2 x 10^5 となります。 #b スクリプト内で、インラインデータを名前付きのデータブロックとして保存 ## し繰り返し描画できるように。以下参照: `inline data`。 #b 32-bit のアルファ値 + RGB 色表記 (#AARRGGBB) をサポート。以下参照: ## `colorspec`。 #b hsv2rgb(H,S,V) という変換関数による HSV 色空間のサポート。 #b 第 2 軸 (x2, y2) は、対応関数により、第 1 軸に固定できます。最も単純 ## なのは、これにより第 1 軸と 2 軸の軸の範囲を一致させることです。より ## 一般に、これにより非線形な軸を定義できるようになりますが、これまでは ## そのようなことは対数軸しかできませんでした。以下参照: `set link`。 #b plot コマンドの各関数にオプションとして描画範囲を前置指定できます。 ## これは、plot 全体の範囲には影響せず、その関数のデータをサンプリング ## する範囲でしかありません。以下参照: `plot`, `piecewise.dem`。 #b 外部ライブラリ libcerf が利用可能であれば、それは複素数学関数 cerf, ## cdawson, erfi, faddeeva, および Voigt プロファイル VP(x,sigma,gamma) ## を提供するのに使われます。 #b コマンド `import` は、外部共有オブジェクト (サポートはオペレーティン ## グシステム依存) が提供する関数にユーザ定義関数名を割り当てます。適当 ## な外部共有オブジェクトを作るためのテンプレートヘッダファイル、サンプ ## ルソース、makefile などが demo の中にあります。 #b 対話作業の履歴一覧内の直前のコマンドは、番号で再実行できます。例えば ## `history !5` は、`history` の一覧内の 5 番のコマンドを再実行します。 #b ビットシフト演算子 >> と @start table #\begin{longtable}{|ccl|} \hline #\multicolumn{3}{|c|}{数学ライブラリ関数} \\ \hline \hline #関数 & 引数 & 戻り値 \\ \hline #\endhead \hline \endfoot %c c l . %関数@引数@戻り値 %_ 4 abs ?expressions functions abs ?abs #abs(x) & 任意 & $x$ の絶対値, $|x|$; 同じ型\\ #abs(x) & 複素数 & $x$ の長さ, $\sqrt{{\mbox{real}(x)^{2} + #\mbox{imag}(x)^{2}}}$ \\ %abs(x)@任意@$x$ の絶対値, $|x|$; 同じ型 %abs(x)@複素数@$x$ の長さ, $sqrt{roman real (x) sup 2 + roman imag (x) sup 2}$ 関数 `abs(x)` 引数の絶対値を返します。返り値の型は引数と同じです。 =norm =modulus 複素数の引数に対しては, abs(x) は複素平面における x の長さと定義されて います [すなわち sqrt(real(x)**2 + imag(x)**2) ]。これは x のノルム (norm)、または x の複素絶対値 (modulus) とも呼ばれます。 4 acos ?expressions functions acos ?acos #acos(x) & 任意 & $\cos^{-1} x$ (アークコサイン) \\ %acos(x)@任意@$cos sup -1 x$ (アークコサイン) 関数 `acos(x)` は引数のアークコサイン (逆余弦) を返します。`acos` の返 す値がラジアン単位かまたは度であるかは `set angles` で選択されます。 4 acosh ?expressions functions acosh ?acosh #acosh(x) & 任意 & ラジアンでの $\cosh^{-1} x$ (逆双曲余弦)\\ %acosh(x)@任意@$ラジアンでの cosh sup -1 x$ (逆双曲余弦) 関数 `acosh(x)` は逆ハイパボリックコサイン (逆双曲余弦) の値をラジアン で返します。 4 airy ?expressions functions airy ?airy #airy(x) & 任意 & エアリー関数 Ai(x) \\ %airy(x)@任意@エアリー関数 Ai(x) 関数 `airy(x)` は、エアリー (Airy) 関数 Ai(x) の値を返します。関数 Ai(x) は、微分方程式 y'' - x y = 0 の、実数全体で有界な解です。引数が 複素数の場合、その虚数部分は無視されます。 4 arg ?expressions functions arg ?arg #arg(x) & 複素数 & $x$ の偏角 \\ %arg(x)@複素数@$x$ の偏角 関数 `arg(x)` は複素数の偏角を、`set angles` の設定にしたがってラジア ン、または度で返します。 4 asin ?expressions functions asin ?asin #asin(x) & 任意 & $\sin^{-1} x$ (アークサイン) \\ %asin(x)@任意@$sin sup -1 x$ (アークサイン) 関数 `asin(x)` は引数のアークサイン (逆正弦) を返します。`asin` の返す 値は `set angles` の設定によってラジアン単位かまたは度になります。 4 asinh ?expressions functions asinh ?asinh #asinh(x) & 任意 & ラジアンでの $\sinh^{-1} x$ (逆双曲正弦)\\ %asinh(x)@任意@$ラジアンでの sinh sup -1 x$ (逆双曲正弦) 関数 `asinh(x)` は逆ハイパボリックサイン (逆双曲正弦) の値をラジアンで 返します。 4 atan ?expressions functions atan ?atan #atan(x) & 任意 & $\tan^{-1} x$ (アークタンジェント) \\ %atan(x)@任意@$tan sup -1 x$ (アークタンジェント) 関数 `atan(x)` は引数のアークタンジェント (逆正接) の値を返します。 `atan` の返す値は `set angles` の設定によってラジアン単位かまたは度に なります。 4 atan2 ?expressions functions atan2 ?atan2 #atan2(y,x) & 整数または実数 & $\tan^{-1} (y/x)$ (アークタンジェント) \\ %atan2(y,x)@整数または実数@$tan sup -1 (y/x)$ (アークタンジェント) 関数 `atan2(y,x)` は引数の実数部分の比のアークタンジェント (逆正接) の 値を返します。`atan2` は `set angles` の設定によってラジアン単位か度に なる、適切な四分円における値を返します。 4 atanh ?expressions functions atanh ?atanh #atanh(x) & 任意 & ラジアンでの $\tanh^{-1} x$ (逆双曲正接)\\ %atanh(x)@任意@ラジアンでの $tanh sup -1 x$ (逆双曲正接) 関数 `atanh(x)` は逆ハイパボリックタンジェント (逆双曲正接) の値をラジ アンで返します。 ?expressions functions EllipticK ?EllipticK 4 EllipticK #EllipticK(k) & 実数 k $\in$ (-1:1) & $K(k)$ 第 1 種完全楕円積分\\ %EllipticK(k)@(-1:1) 内の実数 k@$K ( k )$ 第 1 種完全楕円積分 関数 `EllipticK(k)` は、第 1 種完全楕円積分の値を返します。詳細は、以 下参照: `elliptic integrals`。 ?expressions functions EllipticE ?EllipticE 4 EllipticE #EllipticE(k) & 実数 k $\in$ [-1:1] & $E(k)$ 第 2 種完全楕円積分\\ %EllipticE(k)@[-1:1] 内の実数 k@ $E ( k )$ 第 2 種完全楕円積分 関数 `EllipticE(k)` は、第 2 種完全楕円積分の値を返します。詳細は、以 下参照: `elliptic integrals`。 ?expressions functions EllipticPi ?EllipticPi 4 EllipticPi #EllipticPi(n,k) & 実数 n$= -exp(-1) を満た す実数でなければいけません。 4 lgamma ?expressions functions lgamma ?lgamma #lgamma(x) & 任意 & $\mbox{lgamma}(\mbox{real}(x))$, $x$ の実部のガンマ対数関数\\ %lgamma(x)@任意@$lgamma ( roman real (x))$, $x$ の実部のガンマ対数関数 関数 `lgamma(x)` は引数の実部のガンマ関数値の自然対数の値を返します。 引数が複素数の場合、虚部は無視されます。 4 log ?expressions functions log ?log #log(x) & 任意 & $\log_{e} x$, $x$ の自然対数 (底 $e$) \\ %log(x)@任意@$ln~x$, $x$ の自然対数 (底 $e$) 関数 `log(x)` は引数の自然対数 (底 `e`) の値を返します。以下参照: `log10`。 4 log10 ?expressions functions log10 ?log10 #log10(x) & 任意 & $\log_{10} x$, $x$ の対数 (底 $10$) \\ %log10(x)@任意@${log sub 10}~x$, $x$ の対数 (底 $10$) 関数 `log10(x)` は引数の対数 (底 10) を返します。 4 norm ?expressions functions norm ?norm #norm(x) & 任意 & $x$ の実部の正規分布 (ガウス分布) 関数 \\ %norm(x)@任意@$norm(x)$, $x$ の実部の正規分布 (ガウス分布) 関数 関数 `norm(x)` は、引数の実部に対する、正規分布 (ガウス分布) の累積分 布関数の値を返します。以下参照: `invnorm`, `erf`, `erfc`。 4 rand ?expressions functions rand ?rand #rand(x) & 整数 & 区間 [0:1] 内の疑似乱数生成器 \\ %rand(x)@整数@区間 [0:1] 内の疑似乱数生成器 関数 `rand(x)` は、区間 [0:1] 内の疑似乱数を返します。詳しくは以下参 照: `random`。 4 real ?expressions functions real ?real #real(x) & 任意 & $x$ の実部 \\ %real(x)@任意@$x$ の実部 関数 `real(x)` は引数の実部を返します。 4 sgn ?expressions functions sgn ?sgn #sgn(x) & 任意 & $x>0$ なら 1, $x0$ なら 1, $x @start table #\begin{longtable}{|ccl|} \hline #\multicolumn{3}{|c|}{libcerf (利用可能な場合のみ) による特殊関数} \\ \hline \hline #関数 & 引数 & 戻り値 \\ \hline #\endhead \hline \endfoot %c c l . %関数@引数@戻り値 %_ 4 cerf ?expressions functions cerf ?cerf #cerf(z) & 複素数 & 複素誤差関数 \\ %cerf(z)@複素数@複素誤差関数 `cerf(z)` は誤差関数 erf(x) の複素バージョンです。 4 cdawson ?expressions functions cdawson ?cdawson =dawson %cdawson(z)@複素数@複素 Dawson 積分 #cdawson(z)&複素数&Dawson 積分 $D(z)={\frac{\sqrt{\pi}}{2}e^{-z^2} erfi(z)}$ の複素拡張 \\ `cdawson(z)` は複素引数に対する Dawson 積分の値を返します。 cdawson(z) = sqrt(pi)/2 * exp(-z^2) * erfi(z) 4 faddeeva ?expressions functions faddeeva ?faddeeva %faddeeva(z)@複素数@再スケール化複素誤差関数 w(z) = exp(-z^2) * erfc(-i*z) #faddeeva(z)&複素数&再スケール化複素誤差関数 $w(z) = e^{-z^2}~ erfc(-iz) $ \\ 関数 `faddeeva(z)` は再スケール化複素誤差関数です。 faddeeva(z) = exp(-z^2) * erfc(-i*z) これは、Abramowitz-Stegun の式 7.1.3, 7.1.4 に対応します。 4 erfi ?expressions functions erfi ?erfi %erfi(x)@実数@虚誤差関数 erfi(x) = -i * erf(ix) #erfi(x)&実数&虚誤差関数 $erf(x) = -i * erf(ix)$ \\ 虚誤差関数 erfi(x) = -i * erf(ix) 4 Voigt Profile ?expressions functions VP ?VP %VP(x,sigma,gamma)@実数@Voigt プロファイル #VP(x,$\sigma$,$\gamma$)&実数& Voigt プロファイル $ VP(x,\sigma,\gamma) = {\int^{\infty}_{-\infty}{G(x^\prime;\sigma) L(x-x^\prime;\gamma) dx^\prime }} $ \\ `VP(x,sigma,gamma)` はガウス密度関数 G(x;sigma) とローレンツ密度関数 L(x;gamma) の畳み込みで定義される Voigt プロファイル (密度関数) に対 応します。 #\hline \end{longtable} #%% @end が必要とするため、ダミーの tabular の開始 #\begin{tabular}{|ccl|} @end table ^ @start table #\begin{tabular}{|ccl|} \hline #\multicolumn{3}{|c|}{文字列関数} \\ \hline \hline #関数 & 引数 & 返り値 \\ \hline %c c l . %関数@引数@返り値 %_ 4 gprintf ?expressions functions gprintf #gprintf("format",x,...) & 任意 & gnuplot の書式解析器を適用した結果の文字列 \\ %gprintf("format",x,...)@任意@gnuplot の書式解析器を適用した結果の文字列 \\ `gprintf("format",x)` は、gnuplot 独自の書式指定子に一つの変数 x を適 用し、その結果の文字列を返します。標準的な C 言語書式指定子を使いたい 場合は、代わりに `sprintf("format",x)` を使う必要があります。 以下参照: `format specifiers`。 4 sprintf ?expressions functions sprintf ?sprintf #sprintf("format",x,...) & 複数個 & C 言語の sprintf の返す文字列 \\ %sprintf("format",x,...)@複数個@C 言語の sprintf の返す文字列 \\ `sprintf("format",var1,var2,...)` は標準的な C 言語の書式指定子を複数 個の引数に適用し、その結果の文字列を返します。gnuplot 独自の書式指定子 を使いたい場合は、代わりに `gprintf()` を使用する必要があります。 sprintf の書式指定子に関するより詳しい情報については、標準的な C 言語 の本か、unix の sprintf の man ページを参照してください。 4 strlen ?expressions functions strlen ?strlen #strlen("string") & 文字列 & バイト単位での文字列の長さ (整数) \\ %strlen("string")@文字列@バイト単位での文字列の長さ (整数) `strlen("string")` は、バイト単位での文字列の長さを返します。現在のエ ンドーディングが多バイト文字をサポートしていれば、その値は文字列中の文 字数よりも大きくなるでしょう。 4 strstrt ?expressions functions strstrt ?strstrt #strstrt("string","key") & 文字列 & 部分文字列 "key" が現れる先頭位置\\ %strstrt("string","key")@文字列@部分文字列 "key" が現れる先頭位置 `strstrt("string","key")` は、文字列 "key" を "string" の中で探し、そ れが現れる先頭位置を返します。"key" が見つからなかった場合は 0 を返し ます。C ライブラリの strstr 関数に似ていますが、文字列へのポインタを返 す strstr とは違い、これは整数での位置を返します。例えば、 strstrt("hayneedlestack","needle") = 4 となります。 4 substr ?expressions functions substr ?substr =substring #substr("string",beg,end) & 複数個 & 文字列 "string"[beg:end] \\ %substr("string",beg,end)@複数個@文字列 "string"[beg:end] `substr("string",beg,end)` は、元の文字列の beg から end 番目までの文 字からなる文字列を返します。これは、"string"[beg:end] という式とほぼ同 じですが、こちらはオプション beg, end を省略できません。 4 strftime ?expressions functions strftime ?strftime #strftime("timeformat",t) & 任意 & gnuplot による時刻解析結果の文字列 \\ %strftime("timeformat",t)@任意@gnuplot による時刻解析結果の文字列 `strftime("timeformat",t)` は、1970 年からの秒数による時刻 t に、時刻 書式指定 timeformat を適用します。 以下参照: `time_specifiers`, `strptime`。 4 strptime ?expressions functions strptime ?strptime #strptime("timeformat",s) & 文字列 & 文字列 s を変換した 1970 年からの秒数 \\ %strptime("timeformat",s)@文字列@文字列 s を変換した 1970 年からの秒数 `strptime("timeformat",s)` 書式指定 timeformat を使って文字列 s から時 刻を読み込んで、それを 1970 年からの秒数に変換します。 以下参照: `time_specifiers`, `strftime`。 4 system ?expressions functions system =system #system("command") & 文字列 & シェルコマンドの出力を持つ文字列\\ %system("command")@文字列@シェルコマンドの出力を持つ文字列 `system("command")` は、標準的なシェルを用いて "command" を実行し、そ の標準出力への文字列を文字列変数として返します。一番最後の改行一つは無 視されます。 これは、'f(x) = real(system(sprintf("somecommand %f", x)))' のようにし て、外部関数の出力を gnuplot スクリプト内に取り込むのに利用できます。 4 word =word #word("string",n) & 文字列, 整数 & 文字列 "string" の n 番目の単語 \\ %word("string",n)@文字列, 整数@文字列 "string" の n 番目の単語 `word("string",n)` は文字列 string の n 番目の単語文字列を返します。例 えば `word("one two three",2)` は文字列 "two" を返します。 4 words =words #words("string") & 文字列 & 文字列 "string" 中の単語数 \\ %words("string")@文字列@文字列 "string" 中の単語数 `words("string")` は文字列 string 中の単語数を返します。例えば `words(" a b c d")` は 4 を返します。 @end table ^ @start table #\begin{tabular}{|ccl|} \hline #\multicolumn{3}{|c|}{他の {\bf gnuplot} の関数} \\ \hline \hline #関数 & 引数 & 返り値 \\ \hline %c c l . %関数@引数@返り値 %_ 4 column ?expressions functions column ?column #column(x) & 整数か文字列 & データファイル処理中の $x$ 列目 \\ %column(x)@整数か文字列@データファイル処理中の $x$ 列目 `column(x)` は、plot, splot, stats コマンドの一部としてのみ使います。 これは、$x$ 列目の内容を数値として評価します。以下参照: `plot datafile using`。 4 columnhead ?expressions functions columnhead ?columnhead #columnhead(x) & 整数 & データファイルの最初の $x$ 列目中の文字列 \\ %columnhead(x)@整数@データファイルの最初の $x$ 列目中の文字列 `columnhead(x)` は、plot, splot, stats コマンドの一部としてのみ使いま す。これは、データファイルの最初の行の $x$ 列目の内容を文字列として評 価します。以下参照: `plot datafile using`。 4 exists ?expressions functions exists ?exists #exists("X") & 文字列 & 変数名 X が定義されていれば 1, そうでなければ 0\\ %exists("X")@文字列@変数名 X が定義されていれば 1, そうでなければ 0 `exists()` の引数は文字列定数、または文字列変数です。その文字列が、定 義されている変数名を持っていれば 1 を、そうでなければ 0 を返します。 4 hsv2rgb ?expressions functions hsv2rgb ?hsv2rgb ?hsv #hsv2rgb(h,s,v) & h,s,v $\in$ [0:1] & 24 ビット RGB 色値 \\ %hsv2rgb(h,s,v)@[0:1] 内の h,s,v@24 ビット RGB 色値 関数 `hsv2rgb(h,s,v)` は、HSV (色相(Hue)/彩度(Saturation)/明度(Value)) の 3 つ組をそれと同等な RGB 値に変換します。 4 stringcolumn ?expressions functions stringcolumn ?stringcolumn ?expressions functions strcol ?strcol #stringcolumn(x) & 整数か文字列 & 文字列としての $x$ 列目の内容 \\ %stringcolumn(x)@整数か文字列@文字列としての $x$ 列目の内容 `stringcolumn(x)` は fit あるいはデータファイルプロットでの `using` の 操作の数式の一部としてのみ使われます。これは $x$ 列目の内容を文字列変 数として返します。`strcol(x)` は、`stringcolumn(x)` の省略形です。 以下も参照: `plot datafile using`。 4 timecolumn ?expressions functions timecolumn ?timecolumn #timecolumn(N,"timeformat") & 整数, 文字列 & データ入力中の $N$ 列目の日時データ \\ %timecolumn(N,"timeformat")@整数, 文字列@データファイル入力中の $N$ 列目の日時データ `timecolumn(N,"timeformat")` は fit、あるいはデータファイル描画での `using` 処理の数式の一部としてのみ使います。以下参照: `plot datafile using`。 これは、N 列目から始まる文字列データを日時データ値として読み、これをミ リ秒精度の "Unix エポック (1970 年 1 月 1 日) からの秒数" として解釈す るために "timeformat" を使用します。 注意: バージョン 5 より前は、この関数は一つの引数しか取らず、また純粋 に軸の座標を含んでいる列にしか機能していませんでした。 4 tm_hour ?expressions functions tm_hour ?tm_hour #tm\_hour(x) & 整数 & 時\\ %tm_hour(x)@整数@時 関数 `tm_hour(x)` は引数を 1970 年 1 月 1 日からの秒数と解釈し、それが 時刻の何時 (0--23 の範囲の整数) であるかを、実数として返します。 4 tm_mday ?expressions functions tm_mday ?tm_mday #tm\_mday(x) & 整数 & 日 \\ %tm_mday(x)@整数@日 関数 `tm_mday(x)` は引数を 1970 年 1 月 1 日からの秒数と解釈し、それが その月の何日 (1--31 の範囲の整数) であるかを、実数として返します。 4 tm_min ?expressions functions tm_min ?tm_min #tm\_min(x) & 整数 & 分 \\ %tm_min(x)@整数@分 関数 `tm_min(x)` は引数を 1970 年 1 月 1 日からの秒数と解釈し、それが 時刻の何分 (0--59 の範囲の整数) であるかを、実数として返します。 4 tm_mon ?expressions functions tm_mon ?tm_mon #tm\_mon(x) & 整数 & 月 \\ %tm_mon(x)@整数@月 関数 `tm_mon(x)` は引数を 1970 年 1 月 1 日からの秒数と解釈し、それが 何月 (0--11 の範囲の整数) であるかを、実数として返します。 4 tm_sec ?expressions functions tm_sec ?tm_sec #tm\_sec(x) & 整数 & 秒 \\ %tm_sec(x)@整数@秒 関数 `tm_sec(x)` は引数を 1970 年 1 月 1 日からの秒数と解釈し、それが 時刻の何秒 (0--59 の範囲の整数) であるかを、実数として返します。 4 tm_wday ?expressions functions tm_wday ?tm_wday #tm\_wday(x) & 整数 & その週の何日目 \\ %tm_wday(x)@整数@その週の何日目 関数 `tm_wday(x)` は引数を 1970 年 1 月 1 日からの秒数と解釈し、それが その週の何日目 (0--6 の範囲の整数) であるかを、実数として返します。 4 tm_yday ?expressions functions tm_yday ?tm_yday #tm\_yday(x) & 整数 & その年の何日目 \\ %tm_yday(x)@整数@その年の何日目 関数 `tm_yday(x)` は引数を 1970 年 1 月 1 日からの秒数と解釈し、それが その年の何日目 (1--366 の範囲の整数) であるかを、実数として返します。 4 tm_year ?expressions functions tm_year ?tm_year #tm\_year(x) & 整数 & 西暦 \\ %tm_year(x)@整数@西暦 関数 `tm_year(x)` は引数を 1970 年 1 月 1 日からの秒数と解釈し、それが 西暦何年 (整数) であるかを、実数として返します。 4 time ?expressions functions time ?time #time(x) & 任意 & 現在のシステム時刻 \\ %time(x)@任意@現在のシステム時刻 関数 `time(x)` は現在のシステム時刻を返します。この値は `strftime` 関 数で日時文字列に変換できますし、`timecolumn` と組み合わせて相対的な日 時グラフを作成するのにも使えます。引数の型はそれが返すものを決定します。 引数が整数の場合は time() は現在の時刻を 1970 年 1 月 1 日からの整数と して返し、引数が実数 (または複素数) ならば同様の値を実数として返します。 引数が文字列ならば、それを書式文字列であるとみなし、書式化された日時文 字列を提供するようそれを `strftime` に渡します。 4 valid ?expressions functions valid ?valid #valid(x) & 整数 & データ中の $\mbox{column}(x)$ の正当性\\ %valid(x)@整数@データ中の column($x$) の正当性 `valid(x)` は、データ描画か fit における `using` の式の中でしか使われ ません。以下参照: `plot datafile using`。 #value("name") & 文字列 & 名前 name の変数の現在の値\\ %value("name")@文字列@名前 name の変数の現在の値 @end table 4 種々の楕円積分 (elliptic integrals) ?elliptic integrals =elliptic integrals 関数 `EllipticK(k)` は、第 1 種完全楕円積分、すなわち、関数 `(1-(k*sin(p))**2)**(-0.5)` の 0 からπ/2 までの範囲の広義積分の値を返 します。`k` の定義域は -1 から 1 です (両端は含まない)。 関数 `EllipticE(k)` は、第 2 種完全楕円積分、すなわち、関数 `(1-(k*sin(p))**2)**0.5` の 0 からπ/2 までの範囲の広義積分の値を返し ます。`k` の定義域は -1 から 1 です (両端も含む)。 関数 `EllipticPi(n,k)` は、第 3 種完全楕円積分、すなわち関数 `(1-(k*sin(p))**2)**(-0.5)/(1-n*sin(p)**2)` の 0 からπ/2 までの範囲の 広義積分の値を返します。パラメータ `n` は 1 より小さく、`k` は -1 と 1 の間 (両端は含まない) でなければいけません。定義より、すべての正の `k` に対し EllipticPi(0,k) == EllipticK(k) であることに注意してください。 4 乱数の生成 (random) ?expressions random ?random =rand 関数 `rand()` は 0 と 1 の間の疑似乱数列を生成します。これは以下からの アルゴリズムを使用しています: P. L'Ecuyer and S. Cote, "Implementing a random number package with splitting facilities", ACM Transactions on Mathematical Software, 17:98-111 (1991). rand(0) 内部に持つ 2 つの 32bit の種 (seed) の現在の値から生 成される [0:1] 区間内の疑似乱数値を返す rand(-1) 2 つの種の値を標準値に戻す rand(x) 0 < x < 2^31-1 の整数なら種の両方を x に設定する rand({x,y}) 0 < x,y < 2^31-1 の整数なら seed1 を x に seed2 を y に設定する 4 value ?expressions functions value ?value A がユーザー定義変数の名前であれば、B = value("A") は事実上 B = A と全 く同じです。これは、変数の名前自身が文字列変数に収められている場合に有 用です。以下参照: `user-defined variables`。これは、変数名をデータファ イルから読み取ることも可能にします。引数が数式である場合、value() はそ の数式の値を返します。引数が文字列で、定義されている変数に対応するもの がない場合、value() は NaN を返します。 4 単語の取り出しと単語数 (word, words) ?expressions functions word ?expressions functions words ?words ?word `word("string",n)` は、文字列 (string) の n 番目の単語を返します。例え ば `word("one two three",2)` は文字列 "two" を返します。 `words("string")` は、文字列 (string) の単語数を返します。例えば、 `words(" a b c d")` は 4 を返します。 関数 `word` と `words` は、単一引用符、二重引用符で囲まれた文字列も、 限定的ですがサポートしています: print words("\"double quotes\" or 'single quotes'") # 3 開始引用符の前は、スペースか、または文字列の先頭でなければいけません。 これは、単語内、あるいは単語終わりにつくアポストロフィー (') は、それ ぞれの単語の要素であると見なされることを意味します: print words("Alexis' phone doesn't work") # 4 引用符文字のエスケープはサポートしていませんので、ある引用符を維持した い場合は、それぞれを別の種類の引用符で囲まなければいけません: s = "Keep \"'single quotes'\" or '\"double quotes\"'" print word(s, 2) # 'single quotes' print word(s, 4) # "double quotes" 最後の例では、引用符のエスケープが文字列の定義時のみに必要であることに 注意してください。 3 演算子 (Operators) ?expressions operators ?operators `gnuplot` の演算子は、C 言語の演算子とほぼ同じですが、特に注意がなけれ ば全ての演算子が整数、実数、複素数の引数を取ることができます。また、 FORTRAN で使える ** (累乗) 演算子もサポートされています。 演算の評価の順序を変更するにはかっこを使います。 4 単項演算子 (Unary) ?expressions operators unary ?operators unary ?unary 以下は、単項演算子とその使用法の一覧です: @start table - まずは対話型テキスト形式 記号 例 説明 - -a マイナス符号 + +a プラス符号 (何もしない) ~ ~a * 1 の補数 (ビット反転) ! !a * 論理的否定 ! a! * 階乗 $ $3 * `using` 内での引数/列指定 || |A| 配列 A の要素数 =factorial =negation =one's complement =operator precedence =cardinality #\begin{tabular}{|ccl|} \hline #\multicolumn{3}{|c|}{単項演算子}\\ \hline \hline #記号 & 例 & 説明 \\ \hline #\verb@-@ & \verb@-a@ & マイナス符号 \\ #\verb@+@ & \verb@+a@ & プラス符号 (何もしない) \\ #\verb@~@ & \verb@~a@ & * 1 の補数 (ビット反転) \\ #\verb@!@ & \verb@!a@ & * 論理的否定 \\ #\verb@!@ & \verb@a!@ & * 階乗 \\ #\verb@$@ & \verb@$3@ & * `using` 内での引数/列指定 \\ #\verb@|@ & \verb@|A|@ & 配列 A の要素数 \\ C ugly hack: doc2ms uses $ as delimiter for eqn's so it doesn't seem to C be able to print them. So we have to typeset this table without using C eqn (at least that's the only solution I found, without any real docs C on *roff and eqn C First, terminate the table doc2ms.c already started: %c c l . %.TE C ... then turn off eqn delimiters: %.EQ %delim off %.EN C ... and restart the table: %.TS %center box tab (@) ; %c c l . %記号@例@説明 %_ %-@-a@マイナス符号 %+@+a@プラス符号 (何もしない) %~@~a@* 1 の補数 (ビット反転) %!@!a@* 論理的否定 %!@a!@* 階乗 %$@$3@* `using` 内での引数/列指定 %|@|A|@配列 A の要素数 @end table ^=b 以上 >2 符号なし右シフト & 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 文字列が等しくない =bitwise operators =string operators =modulo =exponentiation #\begin{tabular}{|ccl|} \hline #\multicolumn{3}{|c|}{二項演算子} \\ \hline \hline #記号 & 例 & 説明 \\ \hline #\verb~**~ & \verb~a**b~ & 累乗\\ #\verb~*~ & \verb~a*b~ & 積\\ #\verb~/~ & \verb~a/b~ & 商\\ #\verb~%~ & \verb~a%b~ & * 余り\\ #\verb~+~ & \verb~a+b~ & 和\\ #\verb~-~ & \verb~a-b~ & 差\\ #\verb~==~ & \verb~a==b~ & 等しい\\ #\verb~!=~ & \verb~a!=b~ & 等しくない\\ #\verb~=b~ & 以上\\ #\verb~1~ & 符号なし右シフト\\ #\verb~&~ & \verb~a&b~ & * ビット積 (AND)\\ #\verb~^~ & \verb~a^b~ & * ビット排他的論理和 (XOR)\\ #\verb~|~ & \verb~a|b~ & * ビット和 (OR)\\ #\verb~&&~ & \verb~a&&b~ & * 論理的 AND\\ #\verb~||~ & \verb~a||b~ & * 論理的 OR\\ #\verb~=~ & \verb~a = b~ & 代入\\ #\verb~,~ & \verb~(a,b)~ & 累次評価\\ #\verb~.~ & \verb~A.B~ & 文字列の連結\\ #\verb~eq~ & \verb~A eq B~ & 文字列が等しい\\ #\verb~ne~ & \verb~A ne B~ & 文字列が等しくない\\ %c c l . %記号@例@説明 %_ %**@a**b@累乗 %*@a*b@積 %/@a/b@商 %%@a%b@* 余り %+@a+b@和 %-@a-b@差 %==@a==b@等しい %!=@a!=b@等しくない %=b@以上 %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@文字列が等しくない @end table ^
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
記号 例 説明
** 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 は演算子が文字列引数を要求することを意味します。 論理演算子の AND (&&) と OR (||) は C 言語同様に必要最小限の評価しかし ません。すなわち、`&&` の第 2 引数は、第 1 引数が偽ならば評価されませ んし、`||` の第 2 引数は、第 1 引数が真ならば評価されません。 累次評価 (,) は、カッコの中でのみ評価され、左から右へ順に実行すること が保証され、最も右の式の値が返されます。 4 三項演算子 (Ternary) ?expressions operators ternary ?operators ternary ?ternary 一つだけ三項演算子があります: @start table - まずは対話型テキスト形式 記号 例 説明 ?: a?b:c 三項演算子 #\begin{tabular}{|ccl|} \hline #\multicolumn{3}{|c|}{三項演算子} \\ \hline \hline #記号 & 例 & 説明 \\ \hline #\verb~?:~ & \verb~a?b:c~ & 三項演算子\\ %c c l . %記号@例@説明 %_ %?:@a?b:c@三項演算子 @end table ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
記号 例 説明
?: a?b:c * 三項演算子
三項演算子は C のものと同じ働きをします。最初の引数 (a) は整数でなけれ ばいけません。この値が評価され、それが真 (ゼロでない) ならば 2 番目の 引数 (b) が評価されその値が返され、そうでなければ 3 番目の引数 (c) が 評価され、その値が返されます。 三項演算子は、区分的に定義された関数や、ある条件が満たされた場合にのみ 点を描画する、といったことを行なう場合に有用です。 例: 0 t.gp' 2 set-show ?commands set ?commands show ?set ?show ?show all `set` コマンドは実に多くのオプションを設定するのに使われます。しかし、 `plot`, `splot`, `replot` コマンドが与えられるまで何も表示しません。 `show` コマンドはそれらの設定値を表示します。`show all` でそれら全て を表示します。 `set` コマンドで変更されたオプションは、それに対応する `unset` コマン ドを実行することでデフォルトの状態に戻すことができます。以下も参照: `reset`。これは全てのパラメータの設定をデフォルトの値に戻します。 =iteration `set` と `unset` コマンドには繰り返し節も利用できます。以下参照: `plot for`。 3 角の単位 (angles) ?commands set angles ?commands show angles ?set angles ?show angles ?angles ?commands set angles degrees ?set angles degrees ?angles degrees ?degrees デフォルトでは `gnuplot` は極座標グラフの独立変数の単位はラジアンを仮定 します。`set polar` の前に `set angles degrees` を指定すると、その単位 は度になり、デフォルトの範囲は [0:360] となります。これはデータファイル の描画で特に便利でしょう。角度の設定は、`set mapping` コマンドを設定す ることにより 3 次元でも有効です。 書式: set angles {degrees | radians} show angles `set grid polar` で指定される角度も、`set angles` で指定した単位で読まれ 表示されます。 `set angles` は組み込み関数 sin(x), cos(x), tan(x) の引数や asin(x), acos(x), atan8x), atan2(x), arg(x) の出力にも影響を与えます。双曲線関 数や、ベッセル関数の引数には影響を与えません。しかし、複素数を引数とす る逆双曲線関数の出力には影響が出ます。それらの関数が使われるときは、 `set angles radians` は入出力の引数の間に一貫性を持った管理を実現して いなければなりません。 x={1.0,0.1} set angles radians y=sinh(x) print y #{1.16933, 0.154051} と表示 print asinh(y) #{1.0, 0.1} と表示 しかし、 set angles degrees y=sinh(x) print y #{1.16933, 0.154051} と表示 print asinh(y) #{57.29578, 5.729578} と表示 以下も参照 ^ poldat.dem: `set angles` を用いた極座標描画のデモ ^ 3 矢印 (arrow) ?commands set arrow ?commands unset arrow ?commands show arrow ?set arrow ?unset arrow ?show arrow ?arrow ?noarrow `set arrow` コマンドを使うことにより、グラフ上の任意の位置に矢印を表示 することができます。 書式: set arrow {} from to set arrow {} from rto set arrow {} from length angle set arrow arrowstyle | as set arrow {nohead | head | backhead | heads} {size ,{,}} {filled | empty | nofilled | noborder} {front | back} {linestyle | ls } {linetype | lt } {linewidth | lw } {linecolor | lc } {dashtype | dt } unset arrow {} show arrow {} タグ は各矢印を識別する整数です。タグを指定しない場合は、その時 点で未使用の最も小さい数が自動的に割り当てられます。タグを使うことで、 特定の矢印を変更したり、削除したりできます。既に存在する矢印の属性を変 更する場合は、タグを明示した `set arrow` コマンドで変更箇所を指定して ください。 矢印の最初の端点の位置は、常に "from" で指定しますが、もう一つの端点は 以下で説明する 3 つの異なる仕組みのいずれかで指定できます。 は x,y あるいは x,y,z で指定します。そしてその前に座標系を選択するた めに `first`, `second`, `graph`, `screen`, `character` を置くことがで きます。座標を指定しなければデフォルトでは 0 と見なされます。詳細は以 下参照: `coordinates`。最初の端点に対する座標指定子は、2 番目の端点に は影響しません。 1) "to " は、もう一つの端点の絶対座標を指定します。 2) "rto " は、"from" の位置からのずれを指定します。この場合、 線形軸 (非対数軸)、および `graph`, `screen` 座標に対しては、始点と終点 の距離が与えられた相対的な値に対応します。一方、対数軸に対しては、与え られた相対的な値は、始点から終点への倍数に対応します。よって、対数軸の 場合、相対的な値として 0 や負の値を与えることは許されません。 3) "length angle " は、グラフ平面内での矢印の方向 を指定します。length には任意の座標系を適用できます。angle の単位は常 に度になっています。 矢印の他の属性も、あらかじめ定義した矢のスタイルで、またはコマンド `set arrow` でそれぞれ与えることが可能です。矢印の他の属性の詳細につい ては以下参照: `arrowstyle`。 例: 原点から (1,2) への矢印をユーザ定義済のラインスタイル 5 で描くには: set arrow to 1,2 ls 5 描画領域の左下角から (-5,5,3) へタグ番号 3 の矢印を描くには: set arrow 3 from graph 0,0 to -5,5,3 矢印の端を 1,1,1 に変更し、矢先を外して幅を 2 にするには: set arrow 3 to 1,1,1 nohead lw 2 x=3 の所へグラフの下から上まで鉛直線を描くには: set arrow from 3, graph 0 to 3, graph 1 nohead T 字型の矢先を両端に持つ鉛直方向の矢を描くには: set arrow 3 from 0,-5 to 0,5 heads size screen 0.1,90 始点からの相対的な距離をグラフ座標で与えて矢を描くには: set arrow from 0,-5 rto graph 0.1,0.1 x の対数軸に相対的な終点を指定して矢を描く場合: set logscale x set arrow from 100,-5 rto 10,10 これは 100,-5 から 1000,5 までの矢を描きます。線形軸 (y) に対しては相 対的な座標 10 が "差 10" を意味するのに対し、対数軸 (x) に対しては相対 的な座標 10 は "倍数 10" として働きます。 2 番の矢印を消すには: unset arrow 2 全ての矢印を消すには: unset arrow 全ての矢印の情報を (タグの順に) 見るには: show arrow ^ 矢印のデモ ^ 3 自動縮尺 (autoscale) ?commands set autoscale ?commands unset autoscale ?commands show autoscale ?set autoscale ?unset autoscale ?show autoscale ?autoscale ?noautoscale 自動縮尺機能 (autoscale) は x, y, z の各軸に対して独立に、または一括し て指定できます。デフォルトでは全ての軸に対して自動縮尺設定を行います。 図の中の一部の描画 (`plot`) の組のみを元に autoscale したい場合は、そ の対象でない `plot` にフラグ `noautoscale` をつけることができます。 以下参照: `datafile`。 書式: set autoscale {{|min|max|fixmin|fixmax|fix} | fix | keepfix} set autoscale noextend unset autoscale {} show autoscale ここで、 (軸) は `x`, `y`, `z`, `cb`, `x2`, `y2`, `xy` のいずれ かです。`min` または `max` を軸に追加指定すると (`xy` では使えませんが) それは `gnuplot` にその軸の最小値、または最大値のみを自動縮尺させるこ とになります。軸も何も指定されていない場合は全ての軸が対象となります。 ?noextend デフォルトでは、自動縮尺機能は軸の範囲の限界を、描画データ全体を含む、 最も近い目盛りラベル位置に設定します。キーワード `fixmin`, `fixmax`, `fix`, `noextend` は、次の目盛り位置までの範囲の自動拡大を gnuplot に 行わせないようにします。その場合軸の範囲の限界は、一番端にあるデータ点 の座標値に完全に一致します。`set autoscale noextend` は、 `set autscale fix` と同じです。軸の範囲指定コマンドの後ろにキーワード `noextend` を追加すれば、一つの軸の範囲の延長機能だけ無効にすることも できます。例: set yrange [0:*] noextend `set autoscale keepfix` は、fix の設定を変更せずに残したまま、すべての 軸を自動縮尺にします。 自動縮尺機能を使うときは、描画範囲は自動的に割り出され、従属変数軸 (`plot` のときは y 軸、`splot` のときは z 軸) は、関数やデータの値域が 収まるように設定されます。 従属変数軸 (y または z) の自動縮尺機能が指定されていない場合は、現在の y や z の描画範囲がそのまま使われます。 独立変数軸 (`plot` のときは x 軸、`splot` のときは x,y 軸) の自動縮尺 機能が指定されている場合は、描画される全てのデータファイルの点が収まる ように定義域をとるようになります。データファイルが 1 つも指定されてい ない場合は、自動縮尺機能はなんの効果もありません。つまり、関数のみが 指定されていてデーターファイルを使わない場合は、x 軸の描画範囲 (z = f(x,y) を描画しているときは y 軸も) は影響をうけません。 範囲に関するより詳しい情報に関しては、以下参照: `set xrange`。 媒介変数モード (parametric) でも自動縮尺機能は有効です (以下参照: `set parametric`)。この場合、より多くの従属変数があるので、x, y, z 各 軸に関して、より多くの制御が行われます。媒介変数モードでの独立変数 (仮 変数) は `plot` では t で `splot` では u, v です。そして媒介変数モード では、自動縮尺機能は (t, u, v, x, y, z) の全ての描画範囲を制御し、x, y, z の範囲の自動設定を完全に行います。 目盛りが第 2 の軸に表示され、しかもこれらの軸に対する描画が行われなか った場合には、x2range と y2range は xrange と yrange の値を受け継ぎま す。これは、範囲のずらしの実行や、範囲を整数個の目盛り幅に自動伸縮する 「前」に行いますので、場合によって予期しない結果をもたらす可能性があり ます。これを避けるのに、第 2 軸の範囲を第 1 軸の範囲に明示的にリンク (link) する方法があります。以下参照: `set link`。 例: 以下は y 軸の自動縮尺機能を指定します (他の軸には影響を与えません): set autoscale y 以下は y 軸の最小値に対してのみ自動縮尺機能を指定します (y 軸の最大値、 および他の軸には影響を与えません): set autoscale ymin 以下は x2 軸の隣の目盛りへの自動範囲拡大機能を無効にし、よって描画デー タ内、または関数に対する丁度の描画範囲を維持します: set autoscale x2fixmin set autoscale x2fixmax 以下は x, y 両軸の自動縮尺機能を指定します: set autoscale xy 以下は x, y, z, x2, y2 全軸の自動縮尺機能を指定します: set autoscale 以下は x, y, z, x2, y2 全軸の自動縮尺機能を禁止します: unset autoscale 以下は z 軸のみについて自動縮尺機能を禁止します: unset autoscale z 4 極座標モード (polar) ?commands set autoscale polar ?set autoscale polar 極座標モード (`set polar`) では、xrange と yrange は自動縮尺モードでは なくなります。動径軸の範囲制限用に `set rrange` を使用した場合、xrange と yrange はそれに合うように自動的に調整されます。しかし、さらにそれを 調整したければ、その後に明示的に xrange や yrange コマンドを使うことが できます。以下参照: `set rrange`。 以下も参照 ^ 極座標のデモ。 ^ 3 bind ?commands show bind ?show bind =bind `show bind` は、現在のホットキーの割り当て (binding) を表示します。以 下参照: `bind`。 3 bmargin ?commands set bmargin ?set bmargin ?bmargin コマンド `set bmargin` は、下部の余白のサイズを設定します。詳細は 以下参照: `set margin`。 3 グラフの枠線 (border) ?commands set border ?commands unset border ?commands show border ?set border ?set border polar ?unset border ?show border ?border ?noborder `set border` と `unset border` は `plot` や `splot` でのグラフの枠の 表示を制御します。枠は必ずしも軸とは一致しないことに注意してください。 `plot` では大抵一致しますが、`splot` では大抵一致していません。 書式: set border {} {front | back | behind} {linestyle | ls } {linetype | lt } {linewidth | lw } {linecolor | lc } {dashtype | dt } {polar} unset border show border `set view 56,103` のように任意の方向で表示されうる `splot` では、 x-y 平面上の 4 つの角は 手前 (`front`), 後ろ (`back`) , 左 (`left`), 右 (`right`) のように呼ばれます。もちろんこの同じ 4 つの角は天井の面にも あります。よって、例えば x-y 平面上の後ろと右の角をつなぐ境界を "底の右後ろ (bottom right back)" と言い、底と天井の手前の角をつなぐ境 界を "鉛直手前 (front vertical)" と呼ぶことにします (この命名法は、読 者が下の表を理解するためだけに使われます)。 枠は、12 ビットの整数に符号化されています: 下位 4 ビットは `plot` に対 する外枠、`splot` に対しては底面の外枠、次の 4 ビットは `splot` の鉛直 な外枠、そして上位 4 ビットは `splot` の天井面の外枠を制御します。よっ て外枠の設定は、次の表の対応する項目の数字の和になります: @start table - first is interactive cleartext form ビット plot splot 1 下 底の左手前 2 左 底の左後ろ 4 上 底の右手前 8 右 底の右後ろ 16 効果なし 鉛直左 32 効果なし 鉛直後ろ 64 効果なし 鉛直右 128 効果なし 鉛直手前 256 効果なし 天井の左後ろ 512 効果なし 天井の右後ろ 1024 効果なし 天井の左手前 2048 効果なし 天井の右手前 4096 極座標系 効果なし #\begin{tabular}{|c|c|c|} \hline #\multicolumn{3}{|c|}{グラフ境界の符号化} \\ \hline \hline #ビット & plot & splot \\ \hline #1 & 下 & 底の左手前 \\ #2 & 左 & 底の左後ろ \\ #4 & 上 & 底の右手前 \\ #8 & 右 & 底の右後ろ \\ #16 & 効果なし & 鉛直左 \\ #32 & 効果なし & 鉛直後ろ \\ #64 & 効果なし & 鉛直右 \\ #128 & 効果なし & 鉛直の手前 \\ #256 & 効果なし & 天井の左後ろ \\ #512 & 効果なし & 天井の右後ろ \\ #1024 & 効果なし & 天井の左手前 \\ #2048 & 効果なし & 天井の右手前 \\ #4096 & 極座標系 & 効果なし \\ %c c c . %ビット @plot@splot %_ %1@下@底の左手前 %2@左@底の左後ろ %4@上@底の右手前 %8@右@底の右後ろ %16@効果なし@鉛直左 %32@効果なし@鉛直後ろ %64@効果なし@鉛直右 %128@効果なし@鉛直手前 %256@効果なし@天井の左後ろ %512@効果なし@天井の右後ろ %1024@効果なし@天井の左手前 %2048@効果なし@天井の右手前 %4096@極座標系@効果なし @end table ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
ビット plot splot
1 下 底の左手前
2 左 底の左後ろ
4 上 底の右手前
8 右 底の右後ろ
16 効果なし 鉛直左
32 効果なし 鉛直後ろ
64 効果なし 鉛直右
128 効果なし 鉛直手前
256 効果なし 天井の左後ろ
512 効果なし 天井の右後ろ
1024 効果なし 天井の左手前
2048 効果なし 天井の右手前
4096 極座標系 効果なし
デフォルトの設定値は 31 で、これは `plot` では 4 方向の外枠全て、 `splot` では底面の枠線全部と z 軸を描くことを意味します。 2 次元描画では境界はすべての描画要素の一番上に描かれます (`front`)。 もし境界を描画要素の下に描かせたい場合は、`set border back` としてくだ さい。 3 次元隠線処理 (hidden3d) 描画では、通常は境界を構成する線も描画要素と 同様に隠線処理の対象になります。`set border behind` とするとこのデフォ ルトの挙動が変わります。 , , , , を指定し て、枠線の描画にそれらを反映させることができます (現在の出力装置がサポ ートするものに限定されます)。 さらに、軸の刻み (tics) を描画する際も、それらを境界線上で描画するか、 軸上で描画するかに関わらず、このラインスタイルを使用します。 `plot` では、第 2 軸を有効にすることで、下と左以外の境界に目盛りを描く ことができます。詳細は、以下参照: `xtics`。 "`unset surface; set contour base`" などによって `splot` で底面にのみ 描画する場合、鉛直線や天井はそれらが指定されていても描画されません。 `set grid` のオプション 'back', 'front', 'layerdefault' でも、描画出力 の境界線を書く順番を制御できます。 キーワード `polar` は、極座標グラフに円形の境界をつけます。 例: 以下は、デフォルトの枠線を描きます: set border 以下は、`plot` では左と下、`splot` では底面の左手前と左後ろの枠線を描 きます: set border 3 以下は、`splot` で周りに完全な箱を描きます: set border 4095 以下は、手前の鉛直面と天井のない箱を描きます: set border 127+256+512 # または set border 1023-128 以下は、`plot` に対して上と右枠線のみを描き、それらを軸として目盛りづ けします: unset xtics; unset ytics; set x2tics; set y2tics; set border 12 3 棒グラフ幅 (boxwidth) ?commands set boxwidth ?commands show boxwidth ?set boxwidth ?show boxwidth ?boxwidth コマンド `set boxwidth` は `boxes`, `boxerrorbars`, `boxplot`, `candlesticks`, `histograms` スタイルにおける棒のデフォルトの幅を設定 するために使います。 書式: set boxwidth {} {absolute|relative} show boxwidth デフォルトでは、隣り合う棒が接するように各々の棒の幅が広げられます。そ れとは異なるデフォルトの幅を設定するには `set boxwidth` コマンドを使用 します。`relative` の場合の幅は、デフォルトの幅に対する比であると解釈 されます。 修飾子 `relative` を指定しなかった場合、棒の幅 (boxwidth) として指定さ れた明示的な値は、現在の x 軸の単位での数字 (`absolute`) であると解釈 されます。x 軸が対数軸 (以下参照: `set log`) である場合、boxwidth の値 は実際には x=1 でのみ "絶対的" となり、その物理的な長さが軸全体を通じ て保持されます (すなわち、棒は x 座標の増加にともなって狭くなったりは しません)。対数軸の x 軸の範囲が x=1 から離れている場合は、適切な幅を 見出すには何度か試してみる必要があるかも知れません。 デフォルトの値は、`boxes` や `boxerrorbars` スタイルの幅指定用の追加の データ列の明示的な値があればそれによって置き換えられます。4 列のデータ の場合、第 4 列目の値が棒の幅として使われます。ただし、その幅が -2.0 の場合には棒の幅は自動計算されます。詳細は、以下参照: `style boxes`, `style boxerrorbars`。 棒の幅を自動的にセットするには set boxwidth とする、あるいは 4 列のデータに対しては以下のようにします。 set boxwidth -2 `plot` のキーワード `using` を使っても同じ効果を得ることができます: plot 'file' using 1:2:3:4:(-2) 棒の幅を自動的な値の半分にするには set boxwidth 0.5 relative 棒の幅を絶対的な値 2 にするには set boxwidth 2 absolute 3 カラーモード (color) ?commands set color ?set color gnuplot は、2 つの異なる線種群をサポートしています。デフォルトでは、個 々の線種に異なる色を使用しますが、その色で点線や破線を描くこともできま す。もう一つは白黒の線種で、点線/破線パターンや線幅のみで線種を区別し ます。コマンド `set color` はカラーの線種を選択します。以下参照: `set monochrome`, `set linetype`, `set colorsequence`。 3 色巡回列 (colorsequence) ?commands set colorsequence ?set colorsequence ?colorsequence 書式: set colorsequence {default|classic|podo} `set colorsequence default` は、出力形式に依存しない 8 色の巡回列を選 択します。以下参照: `set linetype`, `colors`。 `set colorsequence classic` は、出力形式別にそのドライバが用意する線色 の列を選択します。色の種類は、4 色から 100 色超まで幅がありますが、そ の多くは、赤、緑、青、紫、水色、黄色、で始まります。これが以前の版の gnuplot のデフォルトの挙動です。 `set colorsequence podo` は、Wong (2011) [Nature Methods 8:441] で推奨 されている、P 型、D 型 (Protanopia, Deuteranopia) の色弱者が容易に区別 できる 8 色の組を選択します。 いずれの場合でも、色列の長さとその色についてはさらにカスタマイズできま す。以下参照: `set linetype`, `colors`。 3 clabel ?commands set clabel ?commands unset clabel ?commands show clabel ?set clabel ?unset clabel ?show clabel ?clabel このコマンドは非推奨です。代わりに `set cntrlabel` を使用してください。 `unset clabel` は `set cntrlabel onecolor` に、`set clabel "format"` は `set cntrlabel format "format"` に置き換わっています。 3 クリッピング (clip) ?commands set clip ?commands unset clip ?commands show clip ?set clip ?unset clip ?show clip ?clip 書式: set clip {points|one|two} unset clip {points|one|two} show clip デフォルトの状態: unset clip points set clip one unset clip two グラフ領域の境界内に中心があるデータ点は、その点を表す記号のサイズがそ の記号を境界線の外にはみだしてしまうような場合でも、通常は描画します。 `set clip points` は、2 次元描画でそのような点の中心がグラフ領域内にあ る場合でも、そのような点をクリッピングします (つまり描画しません)。点 の中心がグラフ領域外にあるようなデータ点は、決して描画しません。 線分については、その一方の端点が描画範囲 (xrange と yrange) の外にある 場合は、通常その線分は描画しません。 `set clip one` は、一方の端点が描画範囲の外にある線分の範囲内の部分を 描画するように `gnuplot` に指示します。 `set clip two` は、両方の端点が描画範囲の外にある線分の範囲内の部分を 描画するように `gnuplot` に指示します。 線分全体が描画範囲外であるような線分は決して描画しません。 注意: * `set clip` は、描画スタイル `lines`, `linespoints`, `points`, `vectors` で生成される点、線分のみに影響します。 * `pm3d` の 2 次元射影や曲面で使用する色長方形のクリッピングは、 `set pm3d clip1in` と `set pm3d clip4in` で行います。 * オブジェクトのクリッピングは、個々のオブジェクト (object) の `{clip|noclip}` 属性で制御します。 3 等高線ラベル (cntrlabel) ?commands set cntrlabel ?commands show cntrlabel ?set cntrlabel ?show cntrlabel ?cntrlabel 書式: set cntrlabel {format "format"} {font "font"} set cntrlabel {start } {interval } set contrlabel onecolor `set cntrlabel` は、凡例内 (デフォルト) か、`splot ... with labels` の 際のグラフ上の等高線のラベルを制御します。後者の場合、ラベルはラベル記 述属性の `pointinterval` か `pointnumber` に従って各等高線に沿って配置 されます。デフォルトではラベルは等高線を構成する 5 番目の線分の上に置 かれ、20 個の線分毎に繰り返されます。このデフォルトは、以下と同じです: set cntrlabel start 5 interval 20 これらの値はコマンド `set cntrlabel` で、あるいは `splot` コマンドに間 隔を指定することで変更できます: set contours; splot $FOO with labels point pointinterval -1 間隔を負の値に設定すると、ラベルは各等高線に 1 つだけつきます。しかし `set samples` か `set isosamples` が大きな値の場合は多くの等高線をラベ ル一つだけで描きます。 凡例 (key) には、等高線ラベルをそれぞれの線種 (linetype) を使用して書 きます。デフォルトでは、線種自身が各等高線のレベルを与えるので、それぞ れに対する別々のラベルが現れます。コマンド `set cntrlabel onecolor` は すべての等高線を同じ線種で描画するので、凡例には一つのラベルのみを書き ます。このコマンドは、古いコマンド `unset clabel` を置き換えるものです。 3 等高線制御 (cntrparam) ?commands set cntrparam ?commands show cntrparam ?set cntrparam ?show cntrparam ?cntrparam `set cntrparam` は等高線の生成方法、およびそれを滑らかに描画する方法を 制御します。`show contour` は現在の `contour` の設定だけでなく `cntrparam` の設定をも表示します。 書式: set cntrparam { { linear | cubicspline | bspline | points | order | levels { auto {} | | discrete {,{,...}} | incremental , {,} } } } show contour このコマンドは 2 つの機能を持っています。一つは等高線上の点 (データ点 の線形補間、あるいは関数の標本化 (isosample) による点) での z の値の設 定で、もう一つは、そのように決定された z が等しい点同士を等高線で結ぶ 方法の制御です。 は整数型の定数式、, ... は任意の定数式で す。各オプション変数の意味は次の通りです: `linear`, `cubicspline`, `bspline` --- 近似 (補間) 方法を指定します。 `linear` ならば、等高線は曲面から得られた値を区分的に直線で結びます。 `cubicspline` (3 次スプライン) ならば、区分的な直線はいくぶんなめらか な等高線が得られるように補間されますが、多少波打つ可能性があります。 `bspline` (B-spline) は、より滑らかな曲線を描くことが保証されますが、 これは z の等しい点の位置を近似しているだけです。 `points` --- 最終的には、全ての描画は、区分的な直線で行われます。ここ で指定する数は、`bspline` または `cubicspline` での近似に使われる線分 の数を制御します。実際には cubicspline と bspline の区間 (曲線線分) の 数は `points` と線分の数の積に等しくなります。 `order` --- bspline 近似の次数です。この次数が大きくなるにつれて、等高 線はなめらかになります (もちろん、高次の bspline 曲線になるほど、元の 区分的直線からは離れていきます)。このオプションは `bspline` モードでの み有効です。指定できる値は、2 (直線) から 10 までの整数です。 `levels` --- 等高線のレベルの数は、`auto` (デフォルト), `discrete`, `incremental` と等高線のレベル数 で制御します。 `auto` では、 は仮のレベルの数であり、実際のレベルの数は、簡単なラ ベルを生成するように調節されます。曲面の z 座標が zmin から zman の範 囲にあるとき、等高線はその間の dz の整数倍になるように生成されます。こ こで、dz は 10 のあるべき乗の 1, 2, 5 倍、のいずれかです (2 つの目盛り の間を丁度割り切るように)。 `levels discrete` では、等高線は指定された z = , ... に対して 生成されます。指定した個数が等高線のレベルの個数となります。`discrete` モードでは、`set cntrparams levels ` という指定は常に無視されます。 `incremental` では、等高線は z = から始まり、 ずつ 増えて行き限界の個数に達するまで書かれます。 はその等高線の数を決 定するのに使われますが、これは後の `set cntrparam levels ` によって 常に変更されます。z 軸が対数軸の場合、`set ztics` の場合と同様に、 は倍数として解釈されます。 コマンド `set cntrparam` が引数なしに呼ばれた場合は、次のデフォルトの 値が使われます: linear, 5 points, order 4, 5 auto levels 例: set cntrparam bspline set cntrparam points 7 set cntrparam order 10 以下はレベルの基準が合えば 5 個のレベルがに自動的に選択されます: set cntrparam levels auto 5 以下は .1, .37, .9 にレベルを設定します: set cntrparam levels discrete .1,1/exp(1),.9 以下は 0 から 4 まで、1 ずつ増やすレベルを設定します: set cntrparam levels incremental 0,1,4 以下はレベルの数を 10 に設定します (増加の最後の値 (end) または自動で 設定されるレベルの数は変更されます): set cntrparam levels 10 以下はレベルの数は保持したままレベルの開始値と増分値を設定します: set cntrparam levels incremental 100,50 等高線を描く場所の制御に関しては、以下参照: `set contour`。等高線のラ ベルの書式と線種の制御に関しては、以下参照: `set cntrlabel`。 以下も参照してください。 ^ 等高線のデモ (contours.dem) ^ および ^ ユーザ定義レベルの等高線のデモ (discrete.dem). ^ 3 カラーボックス (colorbox) ?commands set colorbox ?commands show colorbox ?commands unset colorbox ?set colorbox ?show colorbox ?unset colorbox ?colorbox 色の一覧表、すなわち `pm3d` の `palette` の min_z から max_z までの滑 らかな色の勾配は、`unset colorbox` が使われていない限りカラーボックス (colorbox) に描かれます。 set colorbox set colorbox { { vertical | horizontal } {{no}invert} { default | user } { origin x, y } { size x, y } { front | back } { noborder | bdefault | border [line style] } } show colorbox unset colorbox カラーボックスの位置は、`default` または `user` で指定でき、後者の場合 その位置や大きさを `origin` や `size` コマンドで設定します。カラーボッ クスは、グラフや曲面の後 (`front`) あるいは先 (`back`) に描画させるこ ともできます。 色勾配の方向は、オプション `vertical` と `horizontal` で切替えることが 可能です。 `origin x, y` と `size x, y` は `user` オプションとの組でのみ使用され ます。x, y の値は、デフォルトではスクリーン座標と解釈されますが、これ は 3 次元描画用のかしこまったオプションに過ぎません。`set view map` に よる splot を含む 2 次元描画では、任意の座標系での指定が可能です。例え ば以下を試してみてください: set colorbox horiz user origin .1,.02 size .8,.04 これは水平方向の色勾配をグラフの下の辺りに描画します。 `border` は境界描画を ON にします (デフォルト) し、`noborder` は境界描 画を OFF にします。`border` の後ろに正の整数を与えると、それを境界を描 画する時の line style のタグとして使います。例えば: set style line 2604 linetype -1 linewidth .4 set colorbox border 2604 は line style `2604`、すなわち細い線のデフォルトの境界色 (-1) で境界を 描画します。`bdefault` (デフォルト) は、カラーボックスの境界の描画にデ フォルトの境界の line style を使います。 カラーボックスの軸は `cb` と呼ばれ、通常の軸のコマンドで制御されます。 すなわち `set/unset/show` で `cbrange`, `[m]cbtics`, `format cb`, `grid [m]cb`, `cblabel` などが、そして多分 `cbdata`, `[no]cbdtics`, `[no]cbmtics` なども使えるでしょう。 パラメータ無しの `set colorbox` はデフォルトの位置へ切替えます。 `unset colorbox` はカラーボックスのパラメータをデフォルト値にリセット し、その上でカラーボックスを OFF にします。 以下も参照: `set pm3d`, `set palette`, `x11 pm3d`, `set style line`。 3 色名 (colornames) ?colornames ?show colornames ?commands show colornames ?show palette colornames gnuplot は限定された個数の色の名前を持っています。これらは、pm3d パレ ットでつながれる色の範囲を定義するのに、あるいは個々の線種やラインスタ イルの色を出力形式に依存しない形で定義したりするのに使えます。gnuplot の持つ色名の一覧を見るには、コマンド `show colornames` を使用してくだ さい。例: set style line 1 linecolor "sea-green" 3 等高線 (contour) ?commands set contour ?commands unset contour ?commands show contour ?set contour ?unset contour ?show contour ?contour ?contours ?nocontour コマンド `set contour` は曲面の等高線を引くことを指示します。このオプ ションは `splot` でのみ有効です。これは、格子状データ (grid data) を必 要とします。詳細は、以下参照: `grid_data`。非格子状データで等高線を描 きたい場合は、格子を生成するために `set dgrid3d` を使用します。 書式: set contour {base | surface | both} unset contour show contour これらの 3 つのオプションは等高線をどこに引くかを指定します。`base` で は等高線を x/y 軸の刻みのある底面に描かれ、`surface` では等高線はその 曲面自体の上に描かれ、`both` では底面と曲面上の両方に描かれます。オプ ションが指定されていない場合は `base` であると仮定されます。 等高線の描画に影響を与えるパラメータについては、以下参照: `set cntrparam`。等高線のラベルの制御に関しては、以下参照: `set cntrlabel`。 等高線のみのグラフを得るために、曲面自身の描画をしないようにすることも できます (以下参照: `unset surface`)。`set size` を使って、グラフを画 面一杯に描画することも可能ですが、そういった出力形式よりも、等高線のデ ータをデータブロックに書き出し、それを再び 2 次元データとして読み込ん で描画すればよりよい制御が可能になります: unset surface set contour set cntrparam ... set table $datablock splot ... unset table # 等高線の情報は今 $datablock の中にある set term plot $datablock 等高線を描くためには、データは格子状データ ("grid data") である必要が あります。そのようなファイルでは、一つの y-孤立線上の全ての点が順に 並べられていきます。そして隣の y-孤立線上の点が順に並べられ、そして隣、 と続いていきます。y-孤立線同士を分離するには一行の空行 (空白、復帰、改 行以外の文字を含まない行) を挟みます。以下参照: `splot datafile`。 以下も参照してください。 ^ 等高線のデモ (contours.dem) ^ および ^ ユーザ定義レベルの等高線のデモ (discrete.dem). ^ 3 点線/破線設定 (dashtype) ?commands set dashtype ?commands show dashtype ?set dashtype ?show dashtype コマンド `set dashtype` は、点線/破線パターンを番号で参照できるように 登録します。これはとても便利で、その点線/破線パターンをその番号で受け つけてくれる場所ならば、どこでも明示的な点線/破線パターンも受けつけて くれます。 例: set dashtype 5 (2,4,2,6) # 5 番の dashtype を定義または再定義 plot f1(x) dt 5 # その dashtype を使って plot plot f1(x) dt (2,4,2,6) # 上と全く同じグラフ set linetype 5 dt 5 # このパターンを linetype 5 で常に使う set dashtype 66 "..-" # 文字列で新しい dashtype を定義 以下参照: `dashtype`。 3 data style ?set data style このコマンドの形式は現在は推奨されていません。以下参照: `set style data`。 3 datafile ?set datafile ?show datafile コマンド `set datafile` は、`plot`, `splot`, `fit` コマンドで入力デー タを読む場合に、その列 (field) の解釈の仕方を制御するオプションを持ち ます。現在は、6 つのそのようなオプションが実装されています。 4 set datafile fortran ?set datafile fortran ?show datafile fortran ?fortran コマンド `set datafile fortran` は、入力ファイルの Fortran D 型、Q 型 の定数値の特別なチェックを可能にします。この特別なチェックは入力処理を 遅くしますので、実際にそのデータファイルが Fortran D 型、Q 型の定数を 持っている場合にのみこれを選択すべきです。このオプションは、その後で `unset datafile fortran` を行えば無効にできます。 4 set datafile nofpe_trap ?set datafile nofpe_trap ?fpe_trap ?nofpe_trap =floating point exceptions コマンド `set datafile nofpe_trap` は、入力ファイルからデータの読み込 みの際に、すべての数式の評価の前に浮動小数点例外ハンドラの再初期化をし ないように gnuplot に命令します。これにより、とても大きなファイルから のデータの入力がかなり速くなりますが、浮動小数点例外が起きた場合にプロ グラムが異常終了してしまう危険はあります。 4 set datafile missing ?set datafile missing ?show datafile missing ?set missing ?missing 書式: set datafile missing "" set datafile missing NaN show datafile missing unset datafile コマンド `set datafile missing` は、入力データファイル中で欠損データを 記述する特別な文字列があることを `gnuplot` に指示します。`missing` に 関するデフォルト値 (文字) はありません。gnuplot は「欠損データ」と「無 効な値」(例えば "NaN" や 1/0) を区別します。例えば、連続するデータ点に 対するグラフの折れ線描画は、無効な値によってそこで切れますが、欠損デー タの場合はそうではありません。 数値が期待される場面で数値ではない文字が現れた場合は、それが `missing` で指定する文字列にマッチする場合を除いて、通常欠損データではなく、無効 な値として解釈します。 逆に、`set datafile missing NaN` とすると、数式やデータ中の数値ではな い値 (NaN) はすべて欠損データとして扱います。 `注意`: ある場合の欠損データと無効な値の扱いは、現在のバージョンの gnuplot では変更されています。以下の例で、gnuplot バージョン 4 とバー ジョン 5 での違いを示します。 Ffigure_missing 例: set style data linespoints plot '-' title "(a)" 1 10 2 20 3 ? 4 40 5 50 e set datafile missing "?" plot '-' title "(b)" 1 10 2 20 3 ? 4 40 5 50 e plot '-' using 1:2 title "(c)" 1 10 2 20 3 NaN 4 40 5 50 e plot '-' using 1:($2) title "(d)" 1 10 2 20 3 NaN 4 40 5 50 e (a) のグラフは、3 行目には有効な値がひとつしかないため、gnuplot 4 と gnuplot 5 で違いがあります。バージョン 4 では、そこに 1 行に 1 つしか データがなかった場合の規則を適用し、行番号を "x" に、データを "y" と見 なし、誤ってその点を (2,3) に描画していました。 文字 '?' が欠損データを意味するものとして指定されている (b) では、古い 版の gnuplot でも新しい版でも同じデータを正しく処理します。 (c), (d) のグラフに見られるように、古い gnuplot では NaN を using の指 定の仕方によって異なった処理をしていました。現在は、gnuplot は入力列と して N と指定されていても ($N) と指定されていても NaN に対しては同じ処 理を行います。以下のデモも参照してください。 ^ imageNaN デモ。 ^ バージョン 5.0.6 時点で、これは欠損値フラグに関しても正しいです。以前 のバージョンでは、plot コマンドに `using N` ではなく `using ($N)` を指 定した場合は、欠損値フラグの認識に間違いがありました。しかし、現在の gnuplot であっても、計算式で「欠損値」を使用するとその結果は NaN とな りうることに注意してください。例えば、1 列目か 2 列目に `missing` の文 字列がある場合、`using ($1+$2)` による評価は NaN となります。その場合 でもこれを欠損値として扱いたければ、コマンド `set datafile missing NaN` を使用してください。 4 set datafile separator ?set datafile separator ?show datafile separator ?datafile separator ?separator コマンド `set datafile separator` は、この後の入力ファイルのデータ列の 分離文字が、空白 (whitespace) でなくて、ここで指定する文字であると `gnuplot` に指示します。このコマンドの最も一般的な使用例は、表計算ソフ トやデータベースソフトが作る csv (コンマ区切り) ファイルを読む場合でし ょう。デフォルトのデータ列の分離文字は空白 (whitespace) です。 書式: set datafile separator {whitespace | tab | comma | ""} 例: # タブ区切りのファイルを入力 set datafile separator "\t" # コンマ区切りのファイルを入力 set datafile separator comma # 入力ファイルが * か | のいずれかで区切られた列を持つ場合 set datafile separator "*|" 4 set datafile commentschars ?set datafile commentschars ?commentschars コマンド `set datafile commentschars` は、データファイル中のコメント行 の開始文字としてどの文字を使うかを指定します。指定した文字の中の一つが データ行の最初の非空白文字として現われた場合、そのデータ行のそれ以降の 部分を無視します。デフォルト文字列は、VMS では "#!"、それ以外では "#" です。 書式: set datafile commentschars {""} show datafile commentschars unset commentschars よって、データファイルの以下の行は完全に無視されます: # 1 2 3 4 が、以下の行 1 # 3 4 は、2 列目にゴミがあり、その後に有効なデータが 3 列目と 4 列目にあると 認識されます。 例: set datafile commentschars "#!%" 4 set datafile binary ?set datafile binary コマンド `set datafile binary` は、データファイルの読み込み時にバイナ リファイルをデフォルトと設定するのに使われます。書式は、それが `plot` または `splot` コマンドで使われるのと正確に同じです。 に 書けるキーワードに関しては、詳しくは、以下参照: `binary matrix`, `binary general`。 書式: set datafile binary show datafile binary show datafile unset datafile 例: set datafile binary filetype=auto set datafile binary array=(512,512) format="%uchar" ?show datafile binary show datafile binary # 現在の設定の一覧表示 3 小数点設定 (desimalsign) ?commands set decimalsign ?commands show decimalsign ?commands unset decimalsign ?set decimalsign ?show decimalsign ?unset decimalsign ?decimalsign =locale コマンド `set decimalsign` は、目盛りの見出し、あるいは `set label` 文 字列に書かれる数の小数点記号を選択します。 書式: set decimalsign { | locale {""}} unset decimalsign show decimalsign 引数 は、通常の小数点記号に置き換えて使う文字列です。典型的な ものはピリオド '.' やコンマ ',' ですが他にも有用なものがあるでしょう。 引数 を省略すると、小数点の区切りはデフォルト (ピリオド) から 変更されません。unset decimalsign も を省略するのと同じ効果を 持ちます。 例: 多くのヨーロッパ諸国での正しい出力形式を得るには: set decimalsign ',' 次のことに注意してください: 明示的な文字列を設定した場合、これは軸の目 盛りなどの gnuplot の gprintf() 書式関数で出力される数値のみに影響し、 入力データの書式指定や sprintf() 書式関数で出力される数値には影響しま せん。それらの入力や出力の形式の挙動も変更したい場合は、代わりに以下を 使用してください: set decimalsign locale これは、gnuplot に、入力と出力の書式を、環境変数 LC_ALL, LC_NUMERIC, LANG の現在の設定に従ったものを使わせるようにします。 set decimalsign locale "foo" これは、gnuplot に、入力と出力の書式を、ロケール "foo" に従ったものに しますが、そのロケールがインストールされている必要があります。もしロケ ール "foo" が見つからなかった場合、エラーメッセージが出力され、小数点 の設定は変更されません。linux システム上では、そこにインストールされて いるロケールの一覧は "locale -a" で見ることができます。linux のロケー ル文字列はだいたい "sl_SI.UTF-8" のような形式をしていますが、Windows のロケール文字列は "Slovenian_Slovenia.1250"、または "slovenian" のよ うな形式です。ロケール文字列の解釈は、C のランタイムライブラリが行うこ とに注意してください。古い C ライブラリでは、ロケール設定のサポート (例えば数字の 3 桁毎の区切り文字など) を部分的にしか提供していないかも しれません。 set decimalsign locale; set decimalsign "." これは、現在のロケールに合ったどんな小数点でも、全ての入出力に対して使 用するように設定しますが、gnuplot の内部関数 gprintf() を使って書式化 する数値は明示的に指定された '.' になります (上書き)。 3 格子状データ処理 (dgrid3d) ?commands set dgrid3d ?commands unset dgrid3d ?commands show dgrid3d ?set dgrid3d ?unset dgrid3d ?show dgrid3d ?dgrid3d ?nodgrid3d =kdensity コマンド `set dgrid3d` は、非格子状データから格子状データへの写像機能を 有効にし、そのためのパラメータを設定します。格子状データの構造について の詳細は、以下参照: `splot grid_data`。 書式: set dgrid3d {} {,{}} { splines | qnorm {} | (gauss | cauchy | exp | box | hann) {kdensity} {} {,} } unset dgrid3d show dgrid3d デフォルトでは `dgrid3d` は無効になっています。有効になると、ファイル から読み込まれる 3 次元のデータは「散在した」データ (非格子状データ) であると見なされます。格子は、グラフと等高線の描画のために、散在したデ ータを囲む矩形から得られる寸法と、row_size/col_size で指定される数の行 と列を持つように生成されます。格子は x 方向 (行) と y 方向 (列) に等間 隔です。z の値は散在するデータの z の値の重み付きの平均、またはスプラ イン補間として計算されます。言い変えれば、規則的な間隔の格子が生成され、 全ての格子点で元のデータの滑かな近似値が評価されます。元のデータの代わ りにこの近似値が描画されます。 デフォルトの列の数は行の数に等しく、そのデフォルトの値は 10 です。 元のデータから近似値を計算するためのいくつかのアルゴリズムが用意されて いて、追加のパラメータを指定できるものもあります。これらの補間は、格子 点に近いデータ点ほど、その格子点に対してより強い影響を与えます。 `splines` アルゴリズムは、"薄いつぎ板" を元にした補間計算を行います。 これは追加パラメータを取りません。 `qnorm` アルゴリズムは各格子点で入力データの重み付き平均を計算します。 各点は格子点からの距離の norm 乗の逆数で重み付けされます。(実際には、 dx, dy を各データ点と格子点との差の成分であるとすると、重みは dx^norm + dy^norm で与えられます。2 のべきのノルム、特に 4, 8, 16 に関しては、 その重みの計算はユークリッド距離を使うことで (dx^2+dy^2)^norm/2 のよう に最適化されてますが、任意の負でない整数を使うことも可能です。) ノルム のべきの値をただ一つの追加パラメータとして指定できます。このアルゴリズ ムがデフォルトになっています。 最後に、重み付き平均の計算用に、いくつかの平滑化重み付け関数 (kernel) が用意されています: z = Sum_i w(d_i) * z_i / Sum_i w(d_i), ここで z_i は i 番目のデータの値で、d_i は現在の格子点と i 番目のデータ点の位置と の距離です。すべての重み付け関数が、現在の格子点に近い方のデータ点には 大きな重み、遠い方のデータ点には小さい重みを付けます。 以下の重み付け関数が使用できます: gauss : w(d) = exp(-d*d) cauchy : w(d) = 1/(1 + d*d) exp : w(d) = exp(-d) box : w(d) = 1 d

Back | FazBrowse Home | New Git URL