\input{titlepag.tex}
\newpage\part{Gnuplot}
\label{gnuplot}%
\index{gnuplot}%
\section*{著作権 (Copyright)}
\addcontentsline{toc}{section}{著作権 (Copyright)}
\label{copyright}%
\index{copyright}%
\label{license}%
\index{license}%
\preverbatim
\begin{verbatim}
   Copyright (C) 1986 - 1993, 1998, 2004, 2007  Thomas Williams, Colin Kelley
   Copyright (C) 2004-2024  various authors
\end{verbatim}
\postverbatim

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
\preverbatim
\begin{verbatim}
 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.
\end{verbatim}
\postverbatim
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 {\tt"}as is{\tt"} without express or implied warranty
to the extent permitted by applicable law.

\preverbatim
\begin{verbatim}
     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 subsequent releases:
                See list of contributors at head of this document.
\end{verbatim}
\postverbatim

(以下おおまかな訳; 訳は正しくないかも知れませんので詳しくは上記の原文
を当たってください。訳者は責任を持ちません。)

\preverbatim
\begin{verbatim}
   Copyright (C) 1986 - 1993, 1998, 2004, 2007  Thomas Williams, Colin Kelley
   Copyright (C) 2004-2024  多くの著者
\end{verbatim}
\postverbatim

このソフトウェアとその付属文書の使用、複製、配布の許可は、上記の著作権
(copyright) 表示が、全ての複製物に書かれていること、および著作権表示と
この許諾文の両方がその支援文書に書かれていることを条件とした上で、この
文書により保証されます。

このソフトウェアの修正も認められています。しかし、修正を含む全ソースコ
ードの配布の権利は認められません。修正はリリース版に対するパッチの形で
配布しなければなりません。修正されたソースをコンパイルして作られたバイ
ナリの配布は、以下の条件の元で認められます:
\preverbatim
\begin{verbatim}
 1. リリース版からのソースの修正部分を、パッチの形でバイナリと共に配
    布すること
 2. ベースとなるリリース版と区別するために、そのバージョン番号に特別
    なバージョン指定子を付加すること
 3. その修正版のサポート用に、あなたの名前とアクセス可能なアドレスと
    を提供すること
 4. ベースとなるソフトウェアの使用に関しては、我々の連絡情報を保持し
    続けること
\end{verbatim}
\postverbatim
リリース版のソースコードを、パッチの形でのソースの修正と一緒に配布する
ことは、バイナリ配布に関する条項 2 から 4 までの条件の元で許されます。

このソフトウェアは {\tt"}あるがまま{\tt"} 提供され、適用可能な法律で許められる範
囲の保証を表明あるいは暗示していはいません。

\preverbatim
\begin{verbatim}
     著者
             オリジナルソフトウェア:
                Thomas Williams,  Colin Kelley.
             Gnuplot 2.0 追加:
                Russell Lang, Dave Kotz, John Campbell.
             Gnuplot 3.0 追加:
                Gershon Elber とその他の人々。
             Gnuplot 4.0 およびそれ以降のリリース:
                この文書の先頭の寄与者 (contributors) の一覧参照。
\end{verbatim}
\postverbatim
\section*{はじめに (Introduction)}
\addcontentsline{toc}{section}{はじめに (Introduction)}
\label{introduction}%
\index{introduction}%
{\bf gnuplot} は、ポータブルなコマンド入力方式のグラフユーティリティで、
Linux, OS/2, MS Windows, macOS, その他多くのプラットホーム上で動作しま
す。ソースコードには著作権がありますが、無料で配布されています (すなわ
ち、それに対価を支払う必要はありません)。元は、科学者や学生が数学関数
やデータなどを対話的に表示できるよう作られたのですが、現在までに例えば
Web スクリプトなど、多くの非対話型の利用もサポートするように成長してい
ます。これは、例えば Octave のようにサードパーティのアプリケーションの
描画エンジンとしても使われています。gnuplot は、1986 よりサポートと活
発な開発が行われています。

gnuplot は、2 次元、または 3 次元の多くの種類のグラフを生成できます。
います: 折線グラフ、点グラフ、棒グラフ、等高線、ベクトル場描画、画像の
取り込み、曲面、そしてそれらに関連するさまざまな文字列等。そしてさらに
いくつかの特別なグラフ、例えば温度分布図 (heatmap)、蜘蛛の巣グラフ (レ
ーダーチャート, spiderplot)、極射影 (polar projection)、ヒストグラム
(histograms)、箱ひげ図 (boxplot)、ビースウォームグラフ (bee swarm)、
非線形軸などもサポートしています。

gnuplot は多くの異なる出力をサポートしています: 対話型スクリーン出力形
式 (マウスやホットキー入力も可能)、ペンプロッタや現在のプリンタへの直
接出力、または多くのファイル形式への出力 (eps, emf, fig, jpeg, LaTeX,
pdf, png, postscript, ...)。gnuplot は、容易に新しい出力形式を追加する
よう拡張することができます。最近では例えば webp アニメーションがサポー
トされました。svg や HTML5 canvas 出力形式を利用すれば、グラフを Web
ページ内にマウス利用可能な形で埋め込んだ出力を生成することもできます。

{\bf gnuplot} のコマンド言語は大文字小文字を区別します。すなわち、小文字で
書かれたコマンドや関数名は、それらを大文字で書いたものとは同じではあり
ません。いずれのコマンドも、あいまいさの無い限りにおいて省略することが
できます。1 行中にはセミコロン (;) で区切って複数のコマンドを書くこと
ができます。文字列は単一引用符、あるいは二重引用符のどちらかで書き始め
ますが、両者には微妙な違いがあります (詳細は、以下参照: {\bf syntax (p.~\pageref{syntax})\index{syntax}})。例:

\preverbatim
\begin{verbatim}
     set title "My First Plot";  plot 'data';  print "all done!"
\end{verbatim}
\postverbatim

コマンドは、複数行にまたがることができます。その場合は、最終行以外の
全ての行の行末にバックスラッシュ ($\backslash$) を書く必要があります。バックスラ
ッシュは必ず各行 *最後* の文字でなくてはなりません。その結果としてバッ
クスラッシュと、それに続く改行文字が存在しなかったかのように扱われます。
つまり、改行文字がスペースの役をすることもありませんし、改行によってコ
メントが終了することもありません。ですから複数行にまたがる行の先頭をコ
メントアウトすると、そのコマンド全体がコメントアウトされることになりま
す (以下参照: {\bf comments (p.~\pageref{comments})\index{comments}})。なお注意しますが、もし、複数行のコマンドの
どこかでエラーが起きたとき、パーサはその場所を正確には指示することがで
きませんし、また、正しい行に指示する必要もないでしょう。

このドキュメントにおいて、中括弧 (\{\}) は省略可能な引数を表すものとし、
縦棒 ($|$) は、互いに排他的な引数を区切るものとします。{\bf gnuplot} のキー
ワードや {\bf help} における項目名は、逆引用符 (｀)、または可能な場合には
{\bf boldface} (太字) で表します。角括弧 ($<$$>$) は、それに対応するものに置き
換えられるべきものを表します。多くの場合、オプションの引数には、それが
省略されるとデフォルトの値が使用されます。しかし、これらの場合、必ずし
も角括弧が中括弧で囲まれて書かれているわけではありません。

ある項目についてのヘルプが必要なときには、{\bf help} に続けてその項目名を
入力して下さい。または単に {\bf help ?} でもヘルプの項目のメニューが現われ
ます。

大量のグラフサンプルが、以下の Web ページにあります。
\href{http://www.gnuplot.info/demo/}{\tt           http://www.gnuplot.info/demo/
}

コマンドラインから起動するときは、以下の書式が使えます。
\preverbatim
\begin{verbatim}
     gnuplot {OPTIONS} file1 file2 ...
\end{verbatim}
\postverbatim
ここで file1, file2 等は、{\bf local} コマンドで取り込むのと同等の入力ファ
イル (スクリプトファイル) です。
gnuplot に与えるオプションは、コマンド行のどこに置いても構いません。フ
ァイルは指定した順に実行され、同様に -e オプションで任意のコマンドを与
えることもできます。例:
\preverbatim
\begin{verbatim}
     gnuplot   file1.in   -e "reset"   file2.in
\end{verbatim}
\postverbatim

特別なファイル名 {\tt"}-{\tt"} は、標準入力から読ませるのに使います。{\bf gnuplot}
は最後のファイルを処理し終わると終了します。読み込ませるファイルを一つ
も指定しない場合は、{\bf gnuplot} は標準入力からの対話入力を取ります。詳細
は、以下参照: {\bf batch/interactive (p.~\pageref{batch/interactive})\index{batch/interactive}}。
コマンドラインオプションの詳細は以下参照: {\bf command-line-options (p.~\pageref{command-line-options})\index{command-line-options}}。また
は以下を実行してください。
\preverbatim
\begin{verbatim}
     gnuplot --help
\end{verbatim}
\postverbatim

対話型描画ウィンドウでの作業中は、'h' を打つとホットキー ({\bf hotkeys})
とマウス機能 ({\bf mousing}) に関するヘルプを見ることができます。
\section*{探し出す手助け/バグ (Seeking-assistance / Bugs)}
\addcontentsline{toc}{section}{探し出す手助け/バグ (Seeking-assistance / Bugs)}
\label{help-desk}%
\index{help desk}%
\label{faq}%
\index{faq}%
\label{FAQ}%
\index{FAQ}%
\label{bugs}%
\index{bugs}%
\label{seeking-assistance}%
\index{seeking assistance}%
公式の gnuplot ホームページは以下にあります。
\href{http://www.gnuplot.info}{\tt           http://www.gnuplot.info
}


助けを求める前に、ファイル FAQ.pdf か、または上の Web サイトの
\href{http://www.gnuplot.info/faq/}{\tt           FAQ (度々聞かれる質問; Frequently Asked Questions) の一覧
}

をチェックしてください。

他に、(バグ以外の) 特定のグラフ描画の問題に関する助言は以下でも得られ
ます。
\preverbatim
\begin{verbatim}
         https://stackoverflow.com/questions/tagged/gnuplot
\end{verbatim}
\postverbatim

バグの報告と、機能のリクエストは、以下のトラッキングシステムにあげてく
ださい。
\preverbatim
\begin{verbatim}
         https://sourceforge.net/p/gnuplot/_list/tickets
\end{verbatim}
\postverbatim
ただし、あなたが報告しようとしているバグが、より新しい版で既に修正され
ていないか、以前の報告をチェックしてください。

バグの報告や質問を投稿するときは、あなたが使用している gnuplot のバー
ジョン、出力形式 (terminal)、オペレーティングシステム、といった情報を
すべて入れてください。問題を再現する自己完結型の短いスクリプトを提示す
るとなお良いでしょう。

gnuplot メーリングリストへの投稿の方法に関しては、gnuplot の開発 Web
サイト
\href{http://sourceforge.net/projects/gnuplot}{\tt           http://sourceforge.net/projects/gnuplot
}

を参照してください。

gnuplot メーリングリストにメールを書く前に、最初にそのメーリングリスト
に参加する必要があることに注意してください。これは、スパムの量を減らす
ために必要です。

メーリングリストメンバーへのメールアドレス:
\preverbatim
\begin{verbatim}
         gnuplot-info@lists.sourceforge.net
\end{verbatim}
\postverbatim

開発版に関するメーリングリスト:
\preverbatim
\begin{verbatim}
         gnuplot-beta@lists.sourceforge.net
\end{verbatim}
\postverbatim

\section*{バージョン 6 での新しい機能 (New features in version 6)}
\addcontentsline{toc}{section}{バージョン 6 での新しい機能 (New features in version 6)}
\label{new version_6}%
\label{new}%
\index{new}%
\label{version}%
\index{version}%
バージョン 6 は、遡ること 1986 年からの gnuplot 開発での最新メジャーリ
リースです。それは、メジャーバージョン 5 (2015)、そしてその後のマイナ
ーリリース 5.2 (2017), 5.4 (2020) に続くものです。開発は、SouceForge
上の git リポジトリプロジェクト内の、正式版とは別なブランチで続けられ
ています。

このドキュメントに記述されている機能の中には、gnuplot をソースからコン
パイルする際にそれを選択して設定している場合だけ使えるものがあります。
あなたが実行している特定の gnuplot が、コンパイル時にどのようなオプシ
ョンを設定して作られたかを知るには、{\bf show version long} とタイプしてく
ださい。

\subsection*{関数ブロックと局所変数 (Function blocks and scoped variables)}
\addcontentsline{toc}{subsection}{関数ブロックと局所変数 (Function blocks and scoped variables)}
\label{new function blocks}%
この版の gnuplot では、標準的な gnuplot コマンドのブロックを呼び出して
関数として使える機能を導入しています。関数ブロックは、0 から 9 個の引
数を使えて、一つの値を返します。関数ブロックは、計算した新しい値を変数
に割り当てたり、異なる関数や演算子を結合したり、与えられたデータに対す
る繰り返しの作業を行ったりするのに使うことができます。
この仕組みには、3 つの要素があります。
以下参照: {\bf local (p.~\pageref{local})\index{local}}, {\bf scope (p.~\pageref{scope})\index{scope}}, {\bf function blocks (p.~\pageref{function blocks})\index{blocks}}, {\bf return (p.~\pageref{return})\index{return}}。
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 修飾子 {\bf local} は、変数や配列のオプション宣言で、そのスコープは、そ
 れが書かれているプログラム単位の実行中のみに制限されます。単位とは、
 現在は、{\bf load} や {\bf call} 文の実行単位、関数ブロック評価、そして {\bf if},
 {\bf else}, {\bf do for}, {\bf while} に続く中かっこで囲まれたコードブロック単位
 です。局所 (local) 変数の名前が大域 (global) 変数の名前とぶつかる場
 合は、その局所スコープから抜けるまでは大域変数は隠されます。
\item
 コマンド {\bf function} は、gnuplot コマンドからなる名前付き関数ブロック
 (実際はある文字列の配列) を宣言します。関数ブロックを呼び出すと、そ
 のコマンドが、ブロックの最後になるか、または {\bf return} コマンドに当た
 るまで、順次実行されます。
\item
 コマンド {\bf return $<$expression$>$} は、関数ブロックの実行を終了します。
 式 $<$expression$>$ の評価の結果が、その関数の値として返されます。関数ブ
 ロックの外では、どこでも {\bf return} は {\bf exit} と同様に動作します。
\end{itemize}

この仕組みを使って、単純な一行の関数定義 {\bf f(x) = ...} よりもっと複雑で
自明ではない関数を定義し、描画する例として、{\bf function\_block.dem} を参
照してください。

\subsection*{特殊関数と複素数値関数 (Special and complex-valued functions)}
\addcontentsline{toc}{subsection}{特殊関数と複素数値関数 (Special and complex-valued functions)}
\label{new math}%
gnuplot バージョン 6 は、膨大な複素数値関数群と、以前のバージョンにあ
った関数の改良版をいくつか提供します。
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 新規: 複素変数、複素数値のリーマンゼータ (ζ) 関数。以下参照: {\bf zeta (p.~\pageref{zeta})\index{zeta}}。
\item
 (正規化) 下方不完全ガンマ関数の定義域と精度の改良。複素引数が可能に。
 以下参照: {\bf igamma (p.~\pageref{igamma})\index{igamma}}。
\item
 上方不完全ガンマ関数を新規追加 (実引数のみ)。
 以下参照: {\bf uigamma (p.~\pageref{uigamma})\index{uigamma}}。
\item
 (正規化) 不完全ベータ関数の定義域と精度の改良。
 以下参照: {\bf ibeta (p.~\pageref{ibeta})\index{ibeta}}。
\item
 逆 (正規化) 不完全ガンマ関数を新しく追加。
 以下参照: {\bf invigamma (p.~\pageref{invigamma})\index{invigamma}}。
\item
 逆 (正規化) 不完全ベータ関数を新しく追加。
 以下参照: {\bf invibeta (p.~\pageref{invibeta})\index{invibeta}}。
\item
 多価関数 W\_k(z) の第 k 分岐を返す複素関数 LambertW(z,k) を新しく追加。
 古い lambertw(x) は real(LambertW( real(z), 0 )) であることに注意。
 以下参照: {\bf LambertW (p.~\pageref{LambertW})\index{LambertW}}。
\item
 複素関数 lnGamma(z) を新しく追加。
 既にある lgamma(x) は real(lnGamma(real(z)) であることに注意。
 以下参照: {\bf lnGamma (p.~\pageref{lnGamma})\index{lnGamma}}。
\item
 z の複素共役を返す複素関数 conj(z)
\item
 (第 1) シンクロトロン関数 F(x)。以下参照: {\bf SynchrotronF (p.~\pageref{SynchrotronF})\index{SynchrotronF}}。
\item
 acosh(z) の定義域を負の実数軸を覆うように拡張。
\item
 asin(z) asinh(z) の複素数引数に対する精度の改良。
\item
 便利なように I = sqrt(-1) = \{0,1\} を定義済み変数に。
 gnuplot は \{a,b\} を正しい複素数定数と見なしてくれませんが、しかし
 (a + b*I) なら正しい複素数数式として受けつけてくれるので有用です。
\end{itemize}

ビルド時に適切な外部ライブラリがあれば、さらにいくつかの特殊関数をサポ
ートします。以下参照: {\bf special\_functions (p.~\pageref{special_functions})\index{special functions}}。
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 ν 次 (実数) の、引数 z に対する複素ベッセル関数 Iν(z), Jν(z),
 Kν(z), Yν(z)。以下参照: {\bf BesselK (p.~\pageref{BesselK})\index{BesselK}}。
\item
 ν 次 (実数) の、引数 z に対する複素ハンケル関数 H1ν(z), H2ν(z)。
 以下参照: {\bf BesselH1 (p.~\pageref{BesselH1})\index{BesselH1}}。
\item
 複素エアリー関数 Ai(z), Bi(z)。
\item
 n 次の複素指数積分。以下参照: {\bf expint (p.~\pageref{expint})\index{expint}}。
\item
 フレネル積分 C(x), S(x)。以下参照: {\bf FresnelC (p.~\pageref{FresnelC})\index{FresnelC}}。
\item
 Voigt プロファイルの半値全幅を返す関数 {\bf VP\_fwhm(sigma,gamma)}。以下
 参照: {\bf VP (p.~\pageref{VP})\index{VP}}, {\bf VP\_fwhm (p.~\pageref{VP_fwhm})\index{VP fwhm}}。
\end{itemize}

\subsection*{新しい描画スタイル (New plot styles)}
\addcontentsline{toc}{subsection}{新しい描画スタイル (New plot styles)}
\label{new styles}%
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 描画スタイル {\bf with surface} は、2 次元極座標で動作し、平面を色塗りし
 た格子表現のグラフを生成します 色は入力点の任意の集合のからの寄与に
 よる重み付きよって色付けされます。これは、3 次元格子曲面を作る
 {\bf dgrid3d}とスタイル {\bf with pm3d} の類似品です。
 以下参照: {\bf set polar grid (p.~\pageref{set polar grid})\index{grid}}, {\bf polar heatmap (p.~\pageref{polar heatmap})\index{heatmap}}。
\item
 新しい 2 次元描画スタイル {\bf with sectors} は、完全な極座標格子面を生
 成する別の仕組みです。これは概念上の極座標格子内に、各入力データ点毎
 に丸い扇片をひとつ生成します。極座標モードでの {\bf with surface} とは違
 い、これは極座標グラフでも直交座標グラフでも使用できます。
\item
 新しい 2 次元描画スタイル {\bf with hsteps} は、存在するスタイル {\bf steps},
 {\bf histeps}, {\bf fsteps}, {\bf fillsteps} が提供するもの、およびさらなる表現
 の多様性を持つ step 系のグラフを生成できます。
\item
 描画スタイル {\bf with lines} には、現在フィルタオプション {\bf sharpen} が
 あります。このフィルタは関数グラフでスパイクを検出しますが、そのピー
 クは関数から標本として取った 2 つの x 座標の間にあるため、出力では不
 完全に切り取られてしまいます。このフィルタは、そのようなピーク点の場
 所に新しい標本点を追加します。以下参照: {\bf filters (p.~\pageref{filters})\index{filters}}。
\item
 これは厳密には新しい描画スタイルではありませんが、フィルタ concave
 hull と領域塗り潰しのパスに沿った平滑化を組み合わせることで、「膨ら
 んだ領域」グラフの作成が可能になります。これは例えば複数のデータのか
 たまりが重なっているものの広さを示します。以下参照: {\bf concavehull (p.~\pageref{concavehull})\index{concavehull}}。
\item
 3 次元描画スタイル {\bf with pm3d} でオプション修飾子 {\bf zclip [zmin:zmax]}
 が使えて、これは曲面全体のひとつの断面のみを選択します。クリッピング
 の境界値を増加させて連続描画を行うことで、3 次元では断面切り出しアニ
 メーションを見るのに使えますし、間を塗り潰した等高線図を作成するのに
 使えます。これは、新しい描画スタイル {\bf with contourfill} で自動化でき、
 それは 2 次元射影で特に有用です。以下参照: {\bf set contourfill (p.~\pageref{set contourfill})\index{contourfill}}。

\end{itemize}

\subsection*{凸包とマスクと平滑化 (Hulls, masks, and smoothing)}
\addcontentsline{toc}{subsection}{凸包とマスクと平滑化 (Hulls, masks, and smoothing)}
\label{new hulls}%
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 2 次元の点の集合を、その境界の多角形で置き換える新しいフィルタ
 {\bf convexhull}。その境界の曲線を滑らかにするには、
 {\tt"}convexhull smooth path with filledcurves{\tt"} を使って塗り潰し領域とし
 て描画することでできます。以下参照: {\bf convexhull (p.~\pageref{convexhull})\index{convexhull}}。
\item
 試験的なフィルタ {\bf concavehull} は、凸とは限らない、凹の度合を制御す
 る特性長パラメータで決定されるχ-形状の、多角形のデータ境界を生成し
 ます。これはデータ点の回りの本質的なしみを描画します。以下参照:
 {\bf concavehull (p.~\pageref{concavehull})\index{concavehull}}。
\item
 pm3d 曲面や image 描画の選択した一部分のみを表示するようマスクするの
 に、凸包 (convex hull) や他の多角形 (polygon) を使用できます。新しい
 描画スタイル {\bf with mask} (マスクを定義) や、キーワード {\bf mask} (その
 後の描画要素にマスクを適用する) を参照してください。
\item
 閉曲線や x に関して単調ではない 2 次元曲線向きの、パスに沿った 3 次
 元スプライン平滑化。以下参照: {\bf smooth path (p.~\pageref{smooth path})\index{path}}。これは、凸包やマスクの
 平滑化も可能にします。
\item
 3 次元曲線の 3 次スプライン平滑化。以下参照: {\bf splot smooth csplines (p.~\pageref{splot smooth csplines})\index{csplines}}。
\item
 平滑化オプションは {\bf with filledcurves \{above$|$below$|$between\}} での描
 画にも適用します。
\item
 周期的データの平滑化用の新しいキーワード {\bf period}。以下参照:
 {\bf smooth kdensity (p.~\pageref{smooth kdensity})\index{kdensity}}。
\end{itemize}

\subsection*{名前付きパレット (Named palettes)}
\addcontentsline{toc}{subsection}{名前付きパレット (Named palettes)}
\label{new colormaps}%
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 現在のパレットをその後の利用のため名前付きカラーマップに保存できます。
 以下参照: {\bf set colormap (p.~\pageref{set colormap})\index{colormap}}。
\item
 pm3d と image plot で以前保存したパレットを名前で指定できます。
 これにより、一つの plot コマンドで複数のパレットを使用できます。
 以下参照: {\bf colorspec palette (p.~\pageref{colorspec palette})\index{palette}}。
\item
 名前付きパレットカラーマップは、32-bit ARGB 色値の配列として操作でき
 ます。これにより、アルファチャネル値を追加したり、コマンド
 {\bf set palette} では簡単に指定できない他の修正を可能にします。
\item
 定義済みの新しい色機構 {\bf set palette viridis}。
\item
 ファイルやデータブロックから読み込んだパレット ({\bf set palette file})
 は、実数の色成分か、24bit 形式の RGB 値のいずれかで指定できます。
\end{itemize}

\subsection*{新しいデータ形式 (New data formats)}
\addcontentsline{toc}{subsection}{新しいデータ形式 (New data formats)}
\label{new data_formats}%
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 オプション {\bf sparse matrix=(cols,rows)} は、{\bf plot} と {\bf splot} に、個
 々のピクセル値を任意の順番で読みだすことができるような一様なピクセル
 格子を生成させます。これは、不完全なデータから温度分布図 (heatmap)
 を描画するような場合に有用です。以下参照: {\bf sparse (p.~\pageref{sparse})\index{sparse}}。
\item
 非一様な matrix データの入力中、現在は column(0) はその matrix 要素
 の線形順序を返します。すなわち、MxN matrix の A の要素 A[i,j] に対し
 ては、column(0)/M が行番号 i に、column(0)\%M が列番号 j になります。
\end{itemize}

\subsection*{新しい組み込み関数と配列操作 (New built-in functions and array operations)}
\addcontentsline{toc}{subsection}{新しい組み込み関数と配列操作 (New built-in functions and array operations)}
\label{new built-in functions}%
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 cbrange 内の z に割当てる現在の RGB パレット色を返す関数 {\bf palette(z)}
\item
 色名からその色の 32bit ARGB 値を返す関数 {\bf rgbcolor({\tt"}name{\tt"})}
\item
 要素 Array[i] が element に等しい最初の添字 {\bf i} を返す関数
 {\bf index( Array, element )}。以下参照: {\bf arrays (p.~\pageref{arrays})\index{arrays}}。
\item
 配列を引数とするユーザ定義関数の許可。
 例: dot(A,B) = sum [i=1:$|$A$|$] A[i]*B[i]
\item
 配列名に範囲を指定することで部分配列を実現。
 Array[n] は単一の要素、Array[n:n+5] は元の配列の 6 要素を持つ部分配
 列。以下参照: {\bf arrays (p.~\pageref{arrays})\index{arrays}}, {\bf slice (p.~\pageref{slice})\index{slice}}。
\item
 {\bf split({\tt"}string{\tt"}, {\tt"}separator{\tt"})} は、文字列 string に含まれるフィール
 ド要素を、文字列の配列に詰めて返します。以下参照: {\bf split (p.~\pageref{split})\index{split}}。
\item
 {\bf join(array, {\tt"}separator{\tt"})} は、{\bf split} の逆で、文字列配列の要素を、
 フィールド区切り文字 separator を間に挟んで結合して一つの文字列にし
 たものを返します。以下参照: {\bf join (p.~\pageref{join})\index{join}}。
\item
 {\bf stats $<$non-existent file$>$} はテスト可能な値を出力。以下参照:
 {\bf stats test (p.~\pageref{stats test})\index{test}}。
\item
 {\bf stats \$vgrid} で格子内のボクセルの最小/最大/平均/標準偏差を調査
\end{itemize}

\subsection*{プログラムの流れの制御 (Program control flow)}
\addcontentsline{toc}{subsection}{プログラムの流れの制御 (Program control flow)}
\label{control flow}%
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 新しい構文 {\bf if ... else if ... else ...}
\item
 gnuplot の設定選択で、XDG ベースのディレクトリ配置をサポートしていま
 す。gnuplot は、\$XDG\_CONFIG\_HOME/gnuplot/gnuplotrc から初期コマンド
 を読み込みます。対話コマンド履歴は、\$XDG\_STATE\_HOME/gnuplot\_history
 に保存します。これらのファイルがない場合は、gnuplot の以前のバージョ
 ンと同様、\$HOME/.gnuplot と \$HOME/.gnuplot\_history をそれぞれ使用し
 ます。
\item
 {\bf unset warnings} は、stderr への警告メッセージ出力を抑制します。
\item
 {\bf warn {\tt"}message{\tt"}} は、ファイル名、行番号と {\tt"}message{\tt"} を stderr に出力
 します。
\item
 コマンド {\tt"}fit{\tt"} に対する例外処理。fit エラーが起きた場合でも、制御を
 常に入力の次の行に返します。エラーが起きた場合は、返ったときに
 FIT\_ERROR がゼロでない値になります。これは、良くないフィッティングか
 ら復帰するスクリプトを可能にします。以下参照: {\bf fit error\_recovery (p.~\pageref{fit error_recovery})\index{error recovery}}。
\end{itemize}

\subsection*{多重描画モード (Multiplots)}
\addcontentsline{toc}{subsection}{多重描画モード (Multiplots)}
\label{new multiplots}%
現在は、多重描画グラフ (multiplot) の生成時に実行したコマンドを、デー
タブロック \$GPVAL\_LAST\_MULTIPLOT に保存します。そしてこれは、新しいコ
マンド {\bf remultiplot} で再実行できます。保存したコマンドのうち再実行に
問題があるコマンドは、再実行はされません。再生成した多重描画グラフは、
その間にグラフの設定 (軸の範囲や対数軸設定等) が変更されていれば、元の
ものと完全に一致するとは限りません。

以下のコマンド列は、元のグラフの状態と multiplot コマンドの両方をスク
リプトファイルに保存し、後で再読み込みできるようにします。

\preverbatim
\begin{verbatim}
    save "my_multiplot.gp"
    set multiplot
    ... (グラフ要素を生成するいくつかのコマンドが並ぶ) ...
    unset multiplot
    set print "my_multiplot.gp" append
    print $GPVAL_LAST_MULTIPLOT
    unset print
\end{verbatim}
\postverbatim

\begin{itemize}\setlength{\itemsep}{0pt}
\item
 試験段階: コマンド {\bf replot} は、直近の plot コマンドが完了済みの
 multiplot の一部分であるかどうかをチェックします。もしそうなら、単一
 の plot コマンドを実行する代わりに {\bf remultiplot} を実行します。
\item
 試験段階: 多重描画グラフを表示している間のマウス操作では、現在は
 replot/refresh の要求を自動的に {\bf remultiplot} として処理します。
 しかし、マウス座標の読み出し、拡大/視点移動の操作は、以前の gnuplot
 の版でそうだったように、最後の plot 要素に対する軸設定にのみ基づいて
 行われます。\$GPVAL\_LAST\_MULTIPLOT に保存されるコマンドが、各 plot 要
 素に対する適切なグラフ設定を再生成するには不十分である可能性があるた
 め、multiplot でのマウス操作は、あなたが望むようなものにはならないか
 もしれません。これは今後改善されるかもしれません。
\end{itemize}

\subsection*{新しい出力形式とオプション (New terminals and terminal options)}
\addcontentsline{toc}{subsection}{新しい出力形式とオプション (New terminals and terminal options)}
\label{new terminals}%
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 新しい出力形式 {\bf kittygd} と {\bf kittycairo} は、kitty プロトコルをサポ
 ートする端末エミュレータで、端末ウィンドウ上でのグラフィックを提供し
 ます。kitty は、sixel グラフィックとは別の選択肢で、24 ビット RGB フ
 ルカラーを提供します。以下参照: {\bf kittycairo (p.~\pageref{kittycairo})\index{kittycairo}}。
\item
 新しい出力形式 {\bf block} は、疑似グラフィックのテキストモード用のもの
 で、{\bf dumb} や {\bf caca} 出力形式に対して改良された解像度を提供するため
 に Unicode ブロック、あるいは点字 (Braille 文字) を使用します。
\item
 新しい出力形式 {\bf webp} は、webp エンコーディングを用いて、単一フレー
 ムか、アニメーション列を生成します。各フレームは pngcairo で生成し、
 その後 libwebp と libwebpmux による WebPAnimEncoder API を通してエン
 コードを行います。
\item
 {\bf dumb}, {\bf sixel}, {\bf kitty}, {\bf block} 出力形式のように、文字列出力とグラ
 フィック表示を同じウィンドウで行う出力形式では、現在はコマンド
 {\bf pause mouse} の間はキーボード入力に反応します。その間、それらの出力
 形式では、マウス操作が可能な出力形式が行うのと同じ方法でキー入力を解
 釈します。以下参照: {\bf pseudo-mousing (p.~\pageref{pseudo-mousing})\index{pseudo-mousing}}。
 例えば、左/右/上/下矢印キーは、3 次元グラフでは視方向を変え、2 次元
 グラフでは視点移動/拡大の増分ステップを実行します。
\end{itemize}

\subsection*{ウォッチポイント (Watchpoints)}
\addcontentsline{toc}{subsection}{ウォッチポイント (Watchpoints)}
\label{new watchpoints}%
ウォッチポイントは、グラフ内の個々の曲線に関連する対象値です。曲線が描
画されるとき、各線分要素が、その両端点の間にウォッチポイント座標 (x, y
か z) か関数 f(x,y) の対象値を含んでいるかを確認します。それが見つかっ
た場合、そのマッチする点の座標 [x,y] を後で使用するために保存します。
以下参照: {\bf watchpoints (p.~\pageref{watchpoints})\index{watchpoints}}。
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 2 つの曲線の交点を見つけること
\item
 関数のゼロ点を見つけること
\item
 従属変数 (y か z) か、関数 f(x,y) が指定値と一致する場所を見つけ表示
 すること
\item
 マウスを使って複数のグラフに沿った値を同時に追跡すること
\end{itemize}

\subsection*{週曜日のサポート (Week-date time support)}
\addcontentsline{toc}{subsection}{週曜日のサポート (Week-date time support)}
\label{new week-date time}%
2020-2021 年に起きた新型コロナウィルス (Covid-19) の騒動では、疫学的デ
ータのグラフ化の関心が高まりましたが、そこでは報告の慣習として、よく
「週曜日」を使った表が示されていました。この慣習に対する gnuplot のサ
ポートの不足は改善し、週曜日もサポートするように拡張してあります。
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 日時書式 \%W は、ISO 8601 の週曜日規則に従うようになりました。
\item
 日時書式 \%U は、CDC/MMWR の週曜日規則に従うようになりました。
\item
 新しい関数 {\bf tm\_week(time, std)} は、ISO か CDC 規則でのその年の週番
 号を返します。
\item
 新しい関数 {\bf weekdate\_iso(year, week, day)} は、ISO 規則での週曜日を
 カレンダー時刻に変換します。
\item
 新しい関数 {\bf weekdate\_cdc(year, week, day)} は、CDC 規則での週曜日を
 カレンダー時刻に変換します。
\end{itemize}

\subsection*{その他の新しい機能}
\addcontentsline{toc}{subsection}{その他の新しい機能}
\label{new other_features}%
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 {\bf 時間軸の主目盛りと副目盛り用の時間単位}
 時間軸の主目盛りと副目盛りは、minutes/hours/days/weeks/months/years
 を単位とする目盛り間隔指定を受け付けます。
 以下参照: {\bf set xtics (p.~\pageref{set xtics})\index{xtics}}, {\bf set mxtics time (p.~\pageref{set mxtics time})\index{time}}。
\item
 {\bf using} 指定内での文字列 \$\# は、現在の入力データ行にある全列数と評価
 します。例えば、{\tt"}plot FOO using 0:(column(\$\# - 1)){\tt"} は、各行の最後か
 ら一つ手前の列を描画します。
\item
 bin (箱) 用の、合計でなく平均を描画するキーワード {\bf binvalue=avg}
\item
 {\bf set colorbox bottom} は、垂直なカラーボックスを右に配置する代わりに
 水平なカラーボックスをグラフの下に配置します。
\item
 交差する pm3d 曲面のレンダリングの改良 - 重なる曲面のタイルを、交差
 曲線に沿って 2 つの部分に分割し、一方の曲面のタイルが他方の曲面を通
 って不正に突き出てしまうことがないようにします。
\item
 pm3d 光源モデルに、ユーザ制御型のスポットライトを追加。以下参照:
 {\bf set pm3d spotlight (p.~\pageref{set pm3d spotlight})\index{spotlight}}。
\item
 key の全体の幅と列数を固定する新規オプション。以下参照: {\bf key layout (p.~\pageref{key layout})\index{layout}}。
\item
 {\bf set pm3d border retrace} は、各 pm3d 四辺形の周りに、塗り潰し領域と
 同じ色で境界を描きます。これは、原理的に視覚効果はありませんが、あま
 りよくない pdf や postscript ビューワのようなディスプレイモードで、
 エイリアスによる副産物が導入されないようにします。
\item
 {\bf set isotropic} は、2 次元グラフと 3 次元グラフの両方で、x, y, z 軸
 のすべてのスケールが同じになるようにスケールを合わせます。
\item
 変更: 文字の回転角が整数という制限はなくなりました。
\item
 特別な (非数値の) 線種 (linetype) {\bf lt nodraw}, {\bf lt black},
 {\bf lt background}, 以下参照: {\bf special\_linetypes (p.~\pageref{special_linetypes})\index{special linetypes}}。
\item
 データ駆動型の histogram グラフの色割り当て。以下参照:
 {\bf histograms colors (p.~\pageref{histograms colors})\index{colors}}。
\item
 凡例 (key) の箱の位置は、gnuplot が他に行う仕組みによるどんな位置決
 めに対しても、オフセットを与えることで手動で調整できます。以下参照:
 {\bf set key offset (p.~\pageref{set key offset})\index{offset}}。
\item
 plot と splot コマンドに対する新しいフィルタ {\bf plot .. if ($<$式$>$)} は
 式にマッチする入力行のみを選択します。以下参照: {\bf filters if (p.~\pageref{filters if})\index{if}}。
\end{itemize}

\subsection*{バージョン 5 で導入された機能の要約 (3 Brief summary of features introduced in version 5)}
\addcontentsline{toc}{subsection}{バージョン 5 で導入された機能の要約 (3 Brief summary of features introduced in version 5)}
\label{new version_5}%
\label{version_5}%
\index{version 5}%

\subsubsection*{5.4 で導入された機能 (Features introduced in 5.4)}
\addcontentsline{toc}{subsubsection}{5.4 で導入された機能 (Features introduced in 5.4)}
\label{new version_5 version_5.4}%
\label{version_5 version_5.4}%
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 数式と関数は 64 ビット整数演算を使用。以下参照: {\bf integer (p.~\pageref{integer})\index{integer}}。
\item
 2 次元描画スタイル {\bf polygons}, {\bf spiderplot}, {\bf arrows}
\item
 3 次元描画スタイル {\bf boxes}, {\bf circles}, {\bf polygons}, {\bf isosurface}, そ
 してその他ボクセル格子データの表現
\item
 データ前処理フィルタ {\bf zsort}
\item
 カスタマイズした凡例 (key) を作成する {\bf keyentry}
\item
 新しい LaTeX 系出力形式 pict2e は、古い出力形式 {\bf latex}, {\bf emtex},
 {\bf eepic}, {\bf tpic} の代わりです。古い出力形式はもはやデフォルトではビル
 ドしません。
\item
 {\bf set pixmap} は、png/jpeg/gif 画像をピクスマップ画像として取り込み、
 グラフやページの任意の位置に配置しスケール変換も可能
\item
 拡張文字列モードで $\backslash$U+xxxx (xxxx は 16 進値の 4 または 5 文字) で
 Unicode コードポイントが指定できるように。それは出力時に対応する
 UTF-8 バイト文字列に変換します。
\item
 {\bf with parallelaxes} の書式の改変により、描画スタイル {\bf histogram} や
 {\bf spiderplot} と同様な plot コマンド内部での便利な繰り返しが可能に
\end{itemize}

\subsubsection*{5.2 で導入された機能 (Features introduced in 5.2)}
\addcontentsline{toc}{subsubsection}{5.2 で導入された機能 (Features introduced in 5.2)}
\label{new version_5 version_5.2}%
\label{version_5 version_5.2}%
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 非線形座標系 (以下参照: {\bf set nonlinear (p.~\pageref{set nonlinear})\index{nonlinear}})
\item
 データの階級幅割り当ての自動化 (以下参照: {\bf bins (p.~\pageref{bins})\index{bins}})
\item
 2 次元ビースウォームグラフ。以下参照: {\bf set jitter (p.~\pageref{set jitter})\index{jitter}}。
\item
 3 次元描画スタイル {\bf zerrorfill}
\item
 3 次元光源モデルで陰影と反射光ハイライトを提供 (以下参照: {\bf lighting (p.~\pageref{lighting})\index{lighting}})
\item
 配列データ型と関連するコマンドや演算子。以下参照: {\bf arrays (p.~\pageref{arrays})\index{arrays}}。
\item
 新しい出力形式 {\bf sixelgd}, {\bf domterm}
\item
 相対時間 (間隔長) を処理する新しい書式指定子 tH tM tS。
 以下参照: {\bf time\_specifiers (p.~\pageref{time_specifiers})\index{time specifiers}}。
\end{itemize}

\subsubsection*{5.0 で導入された機能 (Features introduced in 5.0)}
\addcontentsline{toc}{subsubsection}{5.0 で導入された機能 (Features introduced in 5.0)}
\label{new version_5 version_5.0}%
\label{version_5 version_5.0}%
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 出力形式に依存しない点線/破線型。
\item
 ひとつの plot での引き続く描画要素に使用するデフォルトの色の列は、色
 弱者により容易に区別できるものに。
\item
 新しい描画スタイル {\bf with parallelaxes}, {\bf with table}。
\item
 マウスがその上にあるときに有効になるハイパーテキストラベル。
\item
 2 次元、3 次元関数描画や疑似ファイル '+', '++' での描画における明示
 的なサンプリング範囲。
\item
 新しいコマンド {\bf import} によるプラグインのサポート。外部の共有オブジ
 ェクトが提供する関数にユーザ定義関数名を割り当てます。
\end{itemize}

\section*{バージョン 5 と 6 との違い (2 Differences between versions 5 and 6)}
\addcontentsline{toc}{section}{バージョン 5 と 6 との違い (2 Differences between versions 5 and 6)}
バージョン 5 で導入したいくつかの変更は、gnuplot の以前のバージョン用
のスクリプトを失敗させる、または異なる振舞いをさせることがありました。
バージョン 6 で導入した変更では、そういうことはとても少ないです。

\subsection*{非推奨な書式 (Deprecated syntax)}
\addcontentsline{toc}{subsection}{非推奨な書式 (Deprecated syntax)}
\label{deprecated syntax}%
バージョン 5.4 では非推奨、6.0 では削除:
\preverbatim
\begin{verbatim}
     # 繰り返しを行うために `reread` を含むファイルを使用
     N = 0;  load "file-containing-reread";
     file content:
         N = N+1
         plot func(N,x)
         pause -1
         if (N<5) reread
\end{verbatim}
\postverbatim
現在の同等の機能:
\preverbatim
\begin{verbatim}
     do for [N=1:5] {
         plot func(N, x)
         pause -1
     }
\end{verbatim}
\postverbatim

バージョン 5.4 では非推奨、6.0 では削除
\preverbatim
\begin{verbatim}
     set dgrid3d ,,foo     # foo が意味する指示のキーワードがない
\end{verbatim}
\postverbatim
現在は以下と同等
\preverbatim
\begin{verbatim}
     set dgrid3d qnorm foo # (例のみ、qnorm は単独のオプションでない)
\end{verbatim}
\postverbatim

バージョン 5.0 では非推奨、6.0 では削除
\preverbatim
\begin{verbatim}
     set style increment user
\end{verbatim}
\postverbatim
現在は以下と同等
\preverbatim
\begin{verbatim}
     必要な範囲の線種を "set linetype" を使用して再定義
     明示的な "linestyle N" か "linestyle variable" の利用
\end{verbatim}
\postverbatim

バージョン 5.0 では非推奨、6.0 では削除
\preverbatim
\begin{verbatim}
     show palette fit2rgbformulae
\end{verbatim}
\postverbatim

\section*{開発ブランチ (Development branch (version 6.1))}
\addcontentsline{toc}{section}{開発ブランチ (Development branch (version 6.1))}
\label{development}%
\index{development}%
バージョン 6.0 は最も最近の gnuplot 安定リリース版です。新しい機能の開
発と破壊性を内在するソースコードの改変は、バージョン 6.1 と呼ばれる別な
ブランチで行われています。開発ブランチのソースコードは、いつ何時でも変
更しうるので、起動時、あるいは {\bf gnuplot --version} で表示される最終更
新日もチェックする必要があります。

以下に、まだ安定リリースには載せていない開発ブランチでの機能の部分的な
一覧を示します。一覧の先頭に近い項目は、現在のリリース版の引き続く更新
時 (6.0.x) に後方導入するかもしれません。このユーザーマニュアルは、そ
れらに対する説明の予備を持っています。一覧の下の方にある項目は、バージ
ョン 6.2 までは安定リリース版には導入しないかもしれません。
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 新しい 2 次元描画スタイル {\bf with hsteps} は、階段関数型のグラフとして
 既にあるスタイル {\bf steps}, {\bf histeps}, {\bf fsteps}, {\bf fillsteps} が提供し
 ていたものに、さらに色々な表現を追加することができる。以下
 参照: {\bf hsteps (p.~\pageref{hsteps})\index{hsteps}}。
\item
 バイナリデータファイルに対する空行の同等品。データ項目を分離するのに
 空行を必要とするような描画スタイルに対するバイナリ入力をサポートする
 のに必要。以下参照: {\bf binary blank (p.~\pageref{binary blank})\index{blank}}。
\item
 以前の版の gnuplot では、3 次元多角形 (polygon)、部品 (object)、塗り
 潰しの領域などは、すべて {\tt"}set pm3d{\tt"} から取られる一つの境界色と線幅を
 共有していました。この制限は、現在では取り除かれています。境界の属性
 はグラフ毎、部品毎に指定できます。この変更は {\tt"}set pm3d{\tt"} が 3 次元多
 角形と箱の境界に影響すると期待するすべてのスクリプトに影響を与えます。
\item
 splot with contourfill at base
\item
 局所変数の実装の改良 (より速く、よりよく定義される通用範囲で)
\item
 {\tt"}linestyle variable{\tt"}
\item
 3 次元面体に対する pm3d 色付け (例えば Delaunay モザイク曲面)。以下
 参照: {\bf delaunay (p.~\pageref{delaunay})\index{delaunay}}。
\item
 plot と splot に {\tt"}using{\tt"} の外で条件式を与える入力データフィルタ。例:
 {\bf plot DATA using 2:3 with boxes if (stringcolumn(1) eq {\tt"}ABC{\tt"})}
\item
 以前外部スクリプト {\bf gpsavediff} として配布してたものと同等の新しいコ
 マンド {\bf save changes}。このコマンドは、今の gnuplot セッションの開始
 時のプログラムの状態から、現在の状況を特徴付けるようなプログラムの設
 定、変数、関数のみを保存します。以下参照: {\bf save changes (p.~\pageref{save changes})\index{changes}}。
\item
 より頑健なスレッド、エラー復帰による wxt 出力ドライバの改良
\item
 画像ファイルのデータ処理での gdlib の代用品
\item
 配列要素に渡る繰り返し {\bf array A; for [e in A] \{ ... \}} [試験段階]
\item
 キーワード {\tt"}sample{\tt"} の非推奨
\item
 {\tt"}marks{\tt"} と呼ぶ新しいグラフィカルな物体のカテゴリ。これは、複雑な記号
 を定義し、plot で利用できます。説明やデモはまだありません。
\end{itemize}

\section*{デモ、ネット上のサンプル (Demos and Online Examples)}
\addcontentsline{toc}{section}{デモ、ネット上のサンプル (Demos and Online Examples)}
\label{demos}%
\index{demos}%
\label{online examples}%
\label{examples}%
\index{examples}%
{\bf gnuplot} の配布物の {\bf demo} ディレクトリ内には、多くのサンプルが収めら
れています。これらのサンプルの png, svg, canvas 出力形式による出力を、
以下のネット上で見ることもできます:
\href{http://gnuplot.info/demos/}{\tt   http://gnuplot.info/demos
}

そこでは、各デモを作成するコマンドがグラフの隣りに表示されますし、その
gnuplot スクリプトをダウンロードすることもできますので、それを保存し同
様のグラフを作成することができます。

\section*{バッチ/対話型操作 (Batch/Interactive)}
\addcontentsline{toc}{section}{バッチ/対話型操作 (Batch/Interactive)}
\label{batch/interactive}%
\index{batch/interactive}%
{\bf gnuplot} は、バッチ処理形式、あるいは対話型のどちらの形式でも実行でき、
それらを組み合わせることも可能です。

コマンドライン引数は、プログラムへのオプションか、{\bf gnuplot} コマンドを
含むファイルの名前であると解釈します。
各ファイルとコマンド文字列は、指定した順に実行します。
特別なファイル名 {\tt"}-{\tt"} は、コマンドを標準入力から読込むことを意味します。
最後のファイルを実行した後に {\bf gnuplot} は終了します。読み込ませるファ
イル、およびコマンド文字列を指定しなかった場合は、{\bf gnuplot} は標準入力
からの対話型の入力を受け付けます。
\subsection*{コマンドラインオプション (command line options)}
\addcontentsline{toc}{subsection}{コマンドラインオプション (command line options)}
\label{command-line-options}%
\index{command line options}%
\label{batch/interactive command-line-options}%
gnuplot は、コマンドラインで以下のオプションを受けつけます:
\preverbatim
\begin{verbatim}
    -V, --version
    -h, --help
    -p, --persist
    -d, --default-settings
    -s, --slow
    -e  "command1; command2; ..."
    -c  scriptfile ARG1 ARG2 ...
\end{verbatim}
\postverbatim

-p は、プログラムの終了時に、残っている対話型グラフウィンドウを一切閉
じないよう gnuplot に指示します。

-d は、各ユーザ用、およびシステム用の初期化 (以下参照: {\bf initialization (p.~\pageref{initialization})\index{initialization}})
を一切行わないよう gnuplot に指示します。

-s は、起動時のフォントの初期化をゆっくり待つように指示します。そうで
ないと、エラーを表示し、不正なフォントサイズ情報で動作を継続します。

-e {\tt"}command{\tt"} は、次に進む前に指定した単一のコマンドを実行するよう
gnuplot に指示します。

-c は、-e {\tt"}call scriptfile ARG1 ARG2 ...{\tt"} と同等です。以下参照: {\bf call (p.~\pageref{call})\index{call}}。
\subsection*{例 (Examples)}
\addcontentsline{toc}{subsection}{例 (Examples)}
\label{batch/interactive examples}%
対話を開始する:
\preverbatim
\begin{verbatim}
     gnuplot
\end{verbatim}
\postverbatim

バッチモードで 2 つのコマンドファイル {\tt"}input1{\tt"}, {\tt"}input2{\tt"} を実行:
\preverbatim
\begin{verbatim}
     gnuplot input1 input2
\end{verbatim}
\postverbatim

初期化ファイル {\tt"}header{\tt"} の後、対話型モードを起動し、その後別のコマンド
ファイル {\tt"}tailer{\tt"} を実行する:
\preverbatim
\begin{verbatim}
     gnuplot header - trailer
\end{verbatim}
\postverbatim

コマンドラインから {\bf gnuplot} コマンドを直接与え、終了後にスクリーン上
にグラフが残るようにオプション {\tt"}-persist{\tt"} を使う:
\preverbatim
\begin{verbatim}
     gnuplot -persist -e "set title 'Sine curve'; plot sin(x)"
\end{verbatim}
\postverbatim

ファイルのコマンドを実行する前に、ユーザ定義変数 a と s をセットする:
\preverbatim
\begin{verbatim}
     gnuplot -e "a=2; s='file.png'" input.gpl
\end{verbatim}
\postverbatim
\section*{キャンバスサイズ (Canvas size)}
\addcontentsline{toc}{section}{キャンバスサイズ (Canvas size)}
\label{canvas size}%
\label{canvas}%
\index{canvas}%
\label{set term size}%

ここの文書で使用する {\tt"}canvas{\tt"} という用語は、グラフやそれに関連するラベ
ルやタイトル、凡例などを配置するのに利用可能な描画領域全体を意味します。
注意: HTML5 canvas 出力形式に関する情報を知りたい場合は、以下参照:
{\bf set term canvas (p.~\pageref{set term canvas})\index{canvas}}。

{\bf set term $<$terminal\_type$>$ size $<$XX$>$, $<$YY$>$} は、出力ファイルのサイズ、
または {\tt"}キャンバス{\tt"} のサイズを制御します。デフォルトでは、グラフはその
キャンバス全体に描画されます。

{\bf set size $<$XX$>$, $<$YY$>$} は、描画自体をキャンバスのサイズに対して相対的に
伸縮させます。1 より小さい伸縮値を指定すると、グラフはキャンバス全体を
埋めず、1 より大きい伸縮値を指定すると、グラフの一部分のみがキャンバス
全体に合うように描画されます。1 より大きい伸縮値を指定すると、問題が起
こるかもしれないことに注意してください。

例:

\preverbatim
\begin{verbatim}
     set size 0.5, 0.5
     set term png size 600, 400
     set output "figure.png"
     plot "data" with lines
\end{verbatim}
\postverbatim

このコマンドは、幅 600 ピクセル、高さ 400 ピクセルの出力ファイル
{\tt"}figure.png{\tt"} を生成します。グラフはキャンバスの中の左下に置かれます。

注意: gnuplot の以前のバージョンでは、{\bf set size} を出力キャンバスのサ
イズ自体を制御するのに使用する出力形式がありましたが、それはバージョン
4 で非推奨となっています。

\section*{コマンドライン編集 (Command-line-editing)}
\addcontentsline{toc}{section}{コマンドライン編集 (Command-line-editing)}
\label{line-editing}%
\index{line editing}%
\label{editing}%
\index{editing}%
\label{command-line-editing}%
\index{command line editing}%
コマンドラインでの編集機能とコマンドヒストリの機能は、外部の GNU
readline ライブラリか外部の BSD libedit ライブラリ、または組み込まれて
いる同等のもののいずれかを使ってサポートしています。この選択は、
gnuplot のコンパイル時の configure のオプションで行います。

組み込みの readline 版の場合の編集コマンドは以下の通りですが、DEL キー
に関する動作はシステムに依存することに注意してください。GNU readline
ライブラリと BSD libedit ライブラリに関しては、それ自身のドキュメント
を参照してください。


\begin{center}
\begin{tabular}{|cl|} \hline
\multicolumn{2}{|c|}{コマンド行編集コマンド} \\ \hline \hline
文字 & 機能 \\ \hline
 & \multicolumn{1}{|c|}{行編集}\\ \cline{2-2}
\verb~^B~ & 1 文字前へ戻す\\
\verb~^F~ & 1 文字先へ進める\\
\verb~^A~ & 行の先頭へ移動\\
\verb~^E~ & 行の最後へ移動\\
\verb~^H~ & 直前の文字を削除\\
\verb~DEL~ & 現在の文字を削除\\
\verb~^D~ & 現在位置の文字を削除、空行なら EOF\\
\verb~^K~ & 現在位置から行末まで削除\\
\verb~^L~ & 壊れた表示の行を再表示\\
\verb~^U~ & 行全体の削除\\
\verb~^W~ & 直前の単語を削除\\
\verb~^V~ & この次のキーを編集コマンドと見なさない\\
\verb~TAB~ & ファイル名補完動作\\ \hline
 & \multicolumn{1}{|c|}{履歴} \\ \cline{2-2}
\verb~^P~ & 前の履歴へ移動\\
\verb~^N~ & 次の履歴へ移動\\
\verb~^R~ & 後方検索を開始\\
\hline
\end{tabular}
\end{center}

\section*{コメント (Comments)}
\addcontentsline{toc}{section}{コメント (Comments)}
\label{comments}%
\index{comments}%
コメント記号 {\bf \#} は、コマンド行中のほとんどどこにでも書くことができま
す。このとき {\bf gnuplot} は、その行の残りの部分を無視します。ただし、記
号 {\bf \#} は引用符内ではこの効果がありません。コメント行が '$\backslash$' で終わって
いる場合、次の行もコメントの一部として扱われることに注意してください。

データファイルに対するコメント文字の指定については、以下参照:
{\bf set datafile commentschars (p.~\pageref{set datafile commentschars})\index{commentschars}}。
\section*{座標系 (Coordinates)}
\addcontentsline{toc}{section}{座標系 (Coordinates)}
\label{coordinates}%
\index{coordinates}%
\index{axes}%
コマンド {\bf set arrow}, {\bf set key}, {\bf set label}, {\bf set object} はグラフ上
の任意の位置が指定できます。その位置は以下の書式で指定します:

\preverbatim
\begin{verbatim}
     {<system>} <x>, {<system>} <y> {,{<system>} <z>}
\end{verbatim}
\postverbatim

各座標系指定 $<$system$>$ には、{\bf first}, {\bf second}, {\bf polar}, {\bf graph},
{\bf screen}, {\bf character} のいずれかが入ります。

{\bf first} は左と下の軸で定義される x,y (3D の場合は z も) の座標系を使用
します。{\bf second} は x2, y2 軸 (上と右の軸) を使用します。{\bf graph} はグ
ラフ描画領域内の相対的位置を指定し、左下が 0,0 で 右上が 1,1 (splot の
場合はグラフ描画領域内の左下が 0,0,0 で、土台の位置は負の z の値を使用
します。以下参照: {\bf set xyplane (p.~\pageref{set xyplane})\index{xyplane}}) となります。{\bf screen} は表示範囲内 (範
囲全体であり、{\bf set size} で選択される一部分ではありません) を指定し、
左下が 0,0 で 右上が 1,1 となります。{\bf character} 座標は主にずれを指定
するのに使用し、絶対的な位置を示すものではありません。{\bf character} の水
平、垂直サイズは、現在使用しているフォントに依存します。

{\bf polar} は、最初の 2 つの値を、x, y ではなく、角 theta と半径 r である
と解釈します。これは、例えば 2 次元の極座標、あるいは 3 次元円柱座標で
のグラフにラベルを配置するのに役に立つでしょう。

x の座標系が指定されていない場合は {\bf first} が使われます。y の座標系が
指定されていない場合は x に対する座標系が使用されます。

与える座標が絶対的な位置ではなくて相対的な値である場合もあります (例え
ば {\bf set arrow} ... {\bf rto} の 2 番目の数値)。そのほとんどが、与えられた
数値を最初の位置に対する差として使います。与えられた座標が対数軸内にあ
る場合は、その相対的な値は倍率として解釈されます。例えば

\preverbatim
\begin{verbatim}
     set logscale x
     set arrow 100,5 rto 10,2
\end{verbatim}
\postverbatim

は、x 軸が対数軸で y 軸が線形の軸なので、100,5 の位置から 1000,7 の位
置への矢印を書くことになります。

一つ (あるいはそれ以上) の軸が時間軸である場合、{\bf timefmt} の書式文字列
に従って、引用符で囲まれた時間文字列で適切な座標を指定する必要がありま
す。以下参照: {\bf set xdata (p.~\pageref{set xdata})\index{xdata}}, {\bf set timefmt (p.~\pageref{set timefmt})\index{timefmt}}。また、{\bf gnuplot} は整数表記も
認めていて、その場合その整数は 1970 年 1 月 1 日からの秒数と解釈されま
す。
\section*{文字列データ (Datastrings)}
\addcontentsline{toc}{section}{文字列データ (Datastrings)}
\label{datastrings}%
\index{datastrings}%
データファイルには、ホワイトスペース (空白やタブ) を含まない任意の印字
可能な文字列、あるいは 2 重引用符で囲まれた任意の文字列 (ホワイトスペ
ースが含まれても良い)、のいずれかの形からなる文字列データを持たせるこ
とも可能です。データファイルに次のような行が含まれている場合、それは 4
つの列を含み、3 列目がテキスト部分であると見なされます:

\preverbatim
\begin{verbatim}
 1.000 2.000 "Third column is all of this text" 4.00
\end{verbatim}
\postverbatim

テキスト部分は 2 次元や 3 次元描画内で例えば以下のように使用されます:

\preverbatim
\begin{verbatim}
 plot 'datafile' using 1:2:4 with labels
 splot 'datafile' using 1:2:3:4 with labels
\end{verbatim}
\postverbatim

テキスト列データは、1 つ以上のグラフ軸の目盛り刻みラベルとしても使用で
きます。次の例は、入力データの 3 列目と 4 列目を (X,Y) 座標として取り
出し、それらの点の列を結ぶ線を描画します。しかしこの場合、x 軸に沿って
数字のラベルを持つ標準的な間隔の刻みをつけるのではなく、gnuplot は x
軸上の各点の x 座標の場所に刻みを置き、入力データファイルの 1 列目のテ
キストをその刻みのラベルとしてつけていきます。

\preverbatim
\begin{verbatim}
 set xtics
 plot 'datafile' using 3:4:xticlabels(1) with linespoints
\end{verbatim}
\postverbatim

\index{columnheader}%
入力データの列の最初のエントリ (すなわち列の見出し) をテキスト部分と解
釈するもう一つのオプションがあり、それはテキスト部分を、その描画した列
のデータの凡例 (key) のタイトル部分として使用します。次の例は、先頭の
行の 2 列目の部分を凡例ボックス内のタイトルを生成するのに使用し、その
後の列の 2,4 列目は要求された曲線を描画するのに処理されます:

\preverbatim
\begin{verbatim}
 plot 'datafile' using 1:(f($2)/$4) with lines title columnhead(2)
\end{verbatim}
\postverbatim

別の例:

\preverbatim
\begin{verbatim}
 plot for [i=2:6] 'datafile' using i title "Results for ".columnhead(i)
\end{verbatim}
\postverbatim

この列の先頭を使用する方法は、{\bf set datafile columnheaders} か
{\bf set key autotitle columnhead} で自動化できます。以下参照: {\bf labels (p.~\pageref{labels})\index{labels}},
{\bf using xticlabels (p.~\pageref{using xticlabels})\index{xticlabels}}, {\bf plot title (p.~\pageref{plot title})\index{title}}, {\bf using (p.~\pageref{using})\index{using}}, {\bf key autotitle (p.~\pageref{key autotitle})\index{autotitle}}。
\section*{拡張文字列処理モード (Enhanced text mode)}
\addcontentsline{toc}{section}{拡張文字列処理モード (Enhanced text mode)}
\label{enhanced text}%
\label{enhanced}%
\index{enhanced}%
\label{text_markup}%
\index{text markup}%
\label{markup}%
\index{markup}%
\label{bold}%
\index{bold}%
\label{italic}%
\index{italic}%
多くの出力形式が、拡張文字列処理モード (enhanced text mode) をサポート
しています。これは、文字列に追加の書式情報を埋めこみます。例えば {\tt"}x\verb+^+2{\tt"}
は x の自乗を、通常我々が見る上付きの 2 がついた形で書き出します。この
モードは、出力形式の設定時にデフォルトとして選択されますが、その後で
{\bf set termoption [no]enhanced} を使ってその機能を有効/無効にもできます
し、{\bf set label {\tt"}x\_2{\tt"} noenhanced} のように個別の文字列に対して無効にす
ることもできます。

注意: TeX ベースの出力形式 (例えば cairolatex, pict2e, pslatex, tikz)
の出力では、すべてのテキスト文字列には、これの代わりに TeX/LaTeX の書
式を使用すべきです。以下参照: {\bf latex (p.~\pageref{latex})\index{latex}}。



\begin{center}
\begin{tabular}{|clll|} \hline
\multicolumn{4}{|c|}{拡張文字列制御記号} \\ \hline
制御記号 & 例 & 結果 & 説明 \\ \hline
\verb~^~ & \verb~a^x~ & $a^x$ & 上付き文字\\
\verb~_~ & \verb~a_x~ & $a_x$ & 下付き文字\\
\verb~@~ & \verb~a@^b_{cd}~ & $a^b_{cd}$ & 空ボックス (幅がない)\\
\verb~&~ & \verb~d&{space}b~ & d\verb*+     +b & 指定した長さのスペースを挿入\\
\verb|~| & \verb|~a{.8-}| & $\tilde{a}$ & 'a' の上に '-' を、現在のフォントサ\\
\verb~ ~ & \verb~ ~ & ~ ~ & イズの .8 倍持ち上げた位置に重ね書き\\
\verb| | & \verb|{/Times abc}| & {\rm abc} & Times フォント、今のサイズで abc を出力\\
\verb| | & \verb|{/Times*2 abc}| & \Large{\rm abc} & Times フォント、今の倍のサイズで abc\\
\verb| | & \verb|{/Times:Italic abc}| & {\it abc} & Times フォント、イタリック体で abc\\
\verb| | & \verb|{/Arial:Bold=20 abc}| & \Large\textsf{\textbf{abc}} & Arial フォント、太字、サイズ 20 で abc\\
\verb|\U+| & \verb|\U+221E| & $\infty$ & Unicode コードポイント U+221E 無限大\\
\hline
\end{tabular}
\end{center}


書式制御文字は、それに続く 1 文字、または中カッコで囲まれたものに適用
されます。中カッコ内には、例えば 2\verb+^+\{10\} のような追加の書式文字列のない
文字列か、またはフォントの属性を変更する追加制御文字列を入れることがで
きます。フォント指定は、開き中カッコ '\{' の直後に続く '/' のすぐ次に書
かなければ「いけません」。フォント名にスペースが含まれる場合、それを単
一、または二重引用符で囲まなければいけません。

例: 最初の例はその中カッコの入れ子を示していて、ボールド体の A にイタ
リック体の下付きの添字 i がついたものが、いずれも現在のフォントで描か
れます。この例の :Normal を取ると、下付きの添字はボールド体でかつイタ
リック体になります。2 つ目の例は同じ書式制御を 20 ポイントサイズの
{\tt"}Times New Roman{\tt"} フォントに適用したものです。
\preverbatim
\begin{verbatim}
    {/:Bold A_{/:Normal{/:Italic i}}}
    {/"Times New Roman":Bold=20 A_{/:Normal{/:Italic i}}}
\end{verbatim}
\postverbatim

空ボックス (phantom box) は a@\verb+^+b\_c の上付き文字と下付き文字を揃えると
きに有用ですが、文字にダイアクリティカルマークを重ねる場合にはうまく働
きません。その目的のためには、アクセントやその他のダイアクリティカルマ
ークのある文字を持つエンコード (例えば utf8) を使用する方がいいでしょ
う。以下参照: {\bf set encoding (p.~\pageref{set encoding})\index{encoding}}。そのボックスはスペーシングが行なわれない
ので、ボックス内 (つまり @ の後ろ) の上付き文字や下付き文字を短く出力
するのに適しています。

ある文字列と同じ長さのスペースを文字 '\&' を使うことで入れることができ
ます。すなわち、
\preverbatim
\begin{verbatim}
       'abc&{def}ghi'
\end{verbatim}
\postverbatim
は以下を生成します (abc と ghi の間は 3 文字分の空白):
\preverbatim
\begin{verbatim}
       'abc   ghi'
\end{verbatim}
\postverbatim

文字 '\~{\ }' は、次の文字、またはカッコで囲まれた文字列に、それに続く文字
またはカッコで囲まれた文字列を重ね書きします。2 番目の文字は最初の文字
にあわせて水平方向にセンタリングされます。よって '\~{\ }a/' は 'a' を貫くよ
うなスラッシュが得られます。2 番目の文字は、その前に数字を置くことで垂
直方向に移動させることができます。その数字は現在のフォントサイズに対す
る割合を意味し、それに従って文字が上がったり下がったりします。この場合
数字と文字列は 1 文字より長くなるのでカッコで囲む必要があります。重ね
書きされる文字列が数字から始まっている場合は、垂直にずらす値と文字列と
の間にスペースを入れてください ('\~{\ }\{abc\}\{.5 000\}')。それ以外はスペース
は不要です ('\~{\ }\{abc\}\{.5 --- \}')。一方、あるいは両方のフォントを変更するこ
ともできます ('\~{\ }a\{.5 /*.2 o\}'; 'a' その 1/5 の大きさの 'o'、この場合数
字とスラッシュの間のスペースは必要です) が、その文字列が始まった後で変
更することはできません。それぞれの文字列内で、他の特殊な書式を使うこと
もできません。制御文字はエスケープしないといけません。例: サーカムフレ
ックス付きの a ($\backslash$U+00E2) を印字するには '\~{\ }a\{.8$\backslash$\verb+^+\}' とします。

二重引用符内の文字列は単一引用符内の文字列とは異なって解釈されることに
注意してください。主な違いは、二重引用符内の文字列ではバックスラッシュ
は 2 つ重ねる必要があることです。

gnuplot ソース配布物内の /docs/psdoc サブディレクトリにあるファイル
{\tt"}ps\_guide.ps{\tt"} に、拡張された書式に関する例が載っています。同様のものが
デモ
\href{http://www.gnuplot.info/demo/enhanced_utf8.html}{\tt {\bf enhanced\_utf8.dem}
}

にもあります。

\subsection*{エスケープシーケンス (escape sequences)}
\addcontentsline{toc}{subsection}{エスケープシーケンス (escape sequences)}
\label{escape sequences}%
\label{enhanced text escape sequences}%
\label{unicode}%
\index{unicode}%
バックスラッシュ文字 $\backslash$ は、1 バイト文字コード、または Unicode コードポ
イントをエスケープするのに使います。

$\backslash$ooo の形式 (ooo は 8 進値の 3 文字) は、特定のフォントエンコード内の
文字コード番号を指し示すのに使えます。例えば、Adobe Symbol フォントは、
無限大の記号を 8 進 245 番で示すようなカスタムエンコードを使用します。
これは、拡張文字列としてフォント名と文字コードを {\tt"}\{/Symbol $\backslash$245\}{\tt"} のよ
うに指定することで埋め込むことができます。これは主に PostScript 出力形
式で有用ですが、これは UTF-8 エンコーディングの処理は容易には行えませ
ん。

$\backslash$U+hhhh の形式の Unicode のコードポイントで文字を指定することができま
す。ここで hhhh は 16 進値の 4 または 5 文字です。例えば、無限大の記号
∞のコードポイントは $\backslash$U+221E です。これは、必要ならば出力時に UTF-8 の
バイト列に変換されます。UTF-8 環境では、印字可能な特殊文字は他の文字と
同様に文字列内で処理できるので、この仕組みは必要ありません。しかしこれ
は結合文字や発音区別符号 (例えばベクトルを意味するための文字の上の矢印
など) には有用です。以下参照: {\bf set encoding (p.~\pageref{set encoding})\index{encoding}}, {\bf utf8 (p.~\pageref{utf8})\index{utf8}}。または
\href{http://www.gnuplot.info/demo_5.4/unicode.html}{\tt オンラインユニコードデモ
}

を参照。

\section*{環境変数 (Environment)}
\addcontentsline{toc}{section}{環境変数 (Environment)}
\label{environment}%
\index{environment}%
{\bf gnuplot} は多くのシェル環境変数を認識します。必須のものはありません。

GNUTERM は、それが定義されていれば、起動時に {\tt"}set term{\tt"} に渡されます。
これは、システム、または個人的な初期化ファイルによる指定 (以下参照:
{\bf startup (p.~\pageref{startup})\index{startup}})。や、もちろんその後の明示的な {\bf set term} コマンドによる指定
で変更できます。
terminal オプションを入れることもできます。例:
\preverbatim
\begin{verbatim}
    bash$ export GNUTERM="postscript eps color size 5in, 3in"
\end{verbatim}
\postverbatim

GNUHELP は、それが定義されていれば、ヘルプファイル (gnuplot.gih) のパ
ス名に設定します。

起動時の初期化には、設定ファイル \$HOME/.gnuplot と
\$XDG\_CONFIG\_HOME/gnuplot/gnuplotrc を探します。MS-DOS, Windows, OS/2
では GNUPLOT か USERPROFILE で指定されたファイルを探します。詳細につい
ては以下参照: {\bf startup (p.~\pageref{startup})\index{startup}}。

Unix においては、PAGER がヘルプメッセージの出力用のフィルタとして使わ
れます。

Unix では、SHELL が {\bf shell} コマンドの際に使われます。MS-DOS, OS/2 で
は COMSPEC が使われます。

FIT\_SCRIPT は、当てはめ (fit) が中断されたときに実行する {\bf gnuplot} コ
マンドの指定に使われます。以下参照: {\bf fit (p.~\pageref{fit})\index{fit}}。FIT\_LOG は当てはめによるロ
グファイルのデフォルトのファイル名の指定に使われます。

GNUPLOT\_LIB は、データやコマンドファイルの検索ディレクトリを追加定義す
るのに使われます。その変数は、一つのディレクトリ名かまたは複数のディレ
クトリ名を書くことができますが、ディレクトリの区切りはプラットホーム毎
に違います。例えば Unix では ':' で、MS-DOS, Windows, OS/2 では ';' で
す。GNUPLOT\_LIB の値は変数 {\bf loadpath} に追加されますが、それは {\bf save}
や {\bf save set} コマンドでは保存されません。

出力ドライバの中には gd ライブラリ経由で TrueType フォントを扱えるもの
もいくつかあります (以下参照: {\bf fonts (p.~\pageref{fonts})\index{fonts}})。これらの出力形式では、
GDFONTPATH や GNUPLOT\_DEFAULT\_GDFONT がフォントの選択に影響を与えます。

postscript 出力ドライバは自分で持っているフォント検索パスを使いますが、
それは、環境変数 GNUPLOT\_FONTPATH で制御できます。

PostScript ドライバは、外部 (組み込まれていない) 定義ファイルを探すた
めに環境変数 GNUPLOT\_PS\_DIR を利用します。インストール時の作業により、
gnuplot にはそれらのファイルのコピーが組み込まれているか、またはデフォ
ルトのパスが埋め込まれています。この変数は、postscript 出力形式でデフ
ォルトのファイルの代わりにカスタマイズした prologue ファイルを使用する
のに利用できます。以下参照: {\bf postscript prologue (p.~\pageref{postscript prologue})\index{prologue}}。
\section*{式 (Expressions)}
\addcontentsline{toc}{section}{式 (Expressions)}
\label{expressions}%
\index{expressions}%
\label{division}%
\index{division}%
基本的には C, FORTRAN, Pascal, BASIC において利用可能な数学表現を使用
できます。 演算子の優先順位は C 言語の仕様に従います。数式中の空白文字
とタブ文字は無視されます。

gnuplot は {\tt"}実数{\tt"} と {\tt"}整数{\tt"} 演算を FORTRAN や C のように扱うということ
に注意してください。{\tt"}1{\tt"}, {\tt"}-10{\tt"} などは整数と見なされ、{\tt"}1.0{\tt"}, {\tt"}-10.0{\tt"},
{\tt"}1e1{\tt"}, 3.5e-1 などは実数と見なされます。 これら 2 つのもっとも重要な違
いは割算です。整数の割算は切り捨てられます: 5/2 = 2。実数はそうではあ
りません: 5.0/2.0 = 2.5。それらが混在した式の場合、計算の前に整数は実
数に {\tt"}拡張{\tt"} されます: 5/2e0 = 2.5。負の整数を正の整数で割る場合、その
値はコンパイラによって変わります。{\tt"}print -5/2{\tt"} として、あなたのシステ
ムが常に切り捨てる (-5/2 で -3 になる) のか、または 0 の近くに丸める
(-5/2 で -2 になる) のかを確認してください。

数式 {\tt"}1/0{\tt"} は {\tt"}未定義値 (undefined){\tt"} フラグを生成し、それによりその点
を無視します。あるいは、あらかじめ定義されている値 NaN を使っても同じ
ことになります。例については、以下参照: {\bf using (p.~\pageref{using})\index{using}}。
\index{NaN}%

gnuplot は文字列に対する単純な演算、および文字列変数も利用できます。例
えば式 ({\tt"}A{\tt"} . {\tt"}B{\tt"} eq {\tt"}AB{\tt"}) は真と評価されますが、これは文字列の結合演
算子と文字列の等号演算子を意味しています。

数としての値を含む文字列は、それが数式で利用された場合は、対応する整数
や実数に変換されます。よって、({\tt"}3{\tt"} + {\tt"}4{\tt"} == 7) や (6.78 == {\tt"}6.78{\tt"}) は
どちらも真になります。整数は、それが文字列結合演算子で使われた場合は文
字列に変換されますが、実数や複素数はダメです。典型的な例は、ファイル名
や他の文字列内に整数を使う場合でしょう: 例えば ({\tt"}file{\tt"} . 4 eq {\tt"}file4{\tt"})
は真です。

後置指定する範囲記述子 [beg:end] によって、部分文字列を指定することが
できます。例えば、{\tt"}ABCDEF{\tt"}[3:4] == {\tt"}CD{\tt"} で、{\tt"}ABCDEF{\tt"}[4:*] == {\tt"}DEF{\tt"} で
す。書式 {\tt"}string{\tt"}[beg:end] は、文字列値の組み込み関数
substr({\tt"}strings{\tt"},beg,end) を呼ぶこととほぼ同じですが、関数呼び出しでは
beg, end は省略することはできません。
\subsection*{複素数値 (Complex values)}
\addcontentsline{toc}{subsection}{複素数値 (Complex values)}
\label{complex values}%
\label{complex}%
\index{complex}%
計算の演算子とほとんどの組み込み関数は複素数引数の使用をサポートしてい
ます。複素定数は、\{$<$real$>$,$<$imag$>$\} と表記し、$<$real$>$ と $<$imag$>$ は、数定
数である必要があります。よって、\{0,1\} は 'i' を意味します。
現在の gnuplot は、あらかじめ I = \{0,1\} を変数として定義していて、他の
変数から複素数値を作るのに使えるようにしています。つまり、{\bf x + y*I} は
正しい数式なのですが、{\bf \{x,y\}} はそうではありません。
複素数値 z の実数部分と虚数部分は、real(z), imag(z) として取り出せます。
長さは abs(z) で、偏角は arg(z) で得られます。

\gpinsetfigure{figure_E0}
gnuplot の 2 次元と 3 次元の描画スタイルは、実数値を仮定しています。よ
って 0 でない虚数部分を持つ複素数値関数 f(x) を描画する場合は、実数部
分や虚数部分、あるいは長さや偏角を描画させなければいけません。
例えば複素引数に対する関数 f(z) の複素数値の長さと偏角を表示させるには、
長さを曲面の高さ、偏角を色で表示するという手があります。
その場合、HSV 色空間のカラーパレットを用いて、0 から 1 の範囲の H 成分
(色相) を arg(z) が返す偏角の範囲 [-π:π] に割り当て、偏角が 1 周した
ら色も巻き戻るようにすると便利でしょう。デフォルトでは、これは H = 0
(赤) から始まりますが、{\bf set palette} の {\bf start} キーワードを使ってその
開始位置を変更し、H の他の値を 0 に割り当てることも可能です。
以下の例は、H = 0.3 (緑) から開始し巻き戻るようにしています。以下参照:
{\bf set palette defined (p.~\pageref{set palette defined})\index{defined}}, {\bf arg (p.~\pageref{arg})\index{arg}}, {\bf set angles (p.~\pageref{set angles})\index{angles}}。

\preverbatim
\begin{verbatim}
    set palette model HSV start 0.3 defined (0 0 1 1, 1 1 1 1)
    set cbrange [-pi:pi]
    set cbtics ("-π" -pi, "π" pi)
    set pm3d corners2color c1
    E0(z) = exp(-z)/z
    I = {0,1}
    splot '++' using 1:2:(abs(E0(x+I*y))):(arg(E0(x+I*y))) with pm3d
\end{verbatim}
\postverbatim

\subsection*{定数 (Constants)}
\addcontentsline{toc}{subsection}{定数 (Constants)}
\label{constants}%
\index{constants}%
\label{expressions constants}%
\label{octal}%
\index{octal}%
\label{hexadecimal}%
\index{hexadecimal}%
\label{complex constants}%
整数定数は、C の strtoll() ライブラリルーチンを使って解釈しますが、こ
れは、{\tt"}0{\tt"} で始まる定数は 8 進数と、また {\tt"}0x{\tt"} か {\tt"}0X{\tt"} で始まる定数は
16 進数とみなすことを意味します。

実数 (浮動小数) 定数は、C の atof() ライブラリルーチンを使って解釈しま
す。

複素数の定数は \{$<$real$>$,$<$imag$>$\} と表現します。ここで $<$real$>$ と $<$imag$>$
(実部、虚部) は数値定数である必要があります。例えば、\{0,1\} は 'i' 自身
を表し、\{3,2\} は 3 + 2i を表します。これらには明示的に中カッコを使う必
要があります。この gnuplot では、あらかじめ I = \{0,1\} を変数として定義
して、明示的な形式の入力を避ける工夫をしています。例えば、{\bf 3 + 2*I} は
{\bf \{3,2\}} と同じですが、こちらは虚数成分に変数係数を使えるところが優位で
す。すなわち、{\bf x + y*I} は正しい数式ですが、{\bf \{x,y\}} はそうではありませ
ん。

文字列定数は単一引用符か二重引用符のいずれかで囲まれた任意の文字の並び
からなるものです。単一引用符と二重引用符の違いは重要です。以下参照:
{\bf quotes (p.~\pageref{quotes})\index{quotes}}。

例:
\preverbatim
\begin{verbatim}
    1 -10 0xffaabb        # 整数定数
    1.0 -10. 1e1 3.5e-1   # 実数定数
    {1.2, -3.4}           # 複素数定数
    "Line 1\nLine 2"      # 文字列定数 (\n は改行に展開される)
    '123\na456'           # 文字列定数 (\ と n はそのままの文字)
\end{verbatim}
\postverbatim

\newpage
 \subsection*{関数 (Functions)}
\addcontentsline{toc}{subsection}{関数 (Functions)}
\label{expressions functions}%
特に注意がなければ、{\bf gnuplot} の数学関数の引数は整数、実数、複素数の値
を取ることができます。角を引数や戻り値とする関数 (例えば sin(x)) は、
その値をラジアンとして扱いますが、これはコマンド {\bf set angles} によって
度に変更できます。












\begin{center}
\begin{longtable}{@{\extracolsep{\fill}}|lcrl|@{}} \hline
\multicolumn{4}{|c|}{数学ライブラリ、組み込み関数} \\ \hline \hline
関数 & 引数 & ~ & 戻り値 ({\gpCX } は複素数) \\ \hline
\endhead \hline \endfoot
\label{expressions functions abs}%
\label{abs}%
\index{abs}%
abs(x) & 整数または実数 & ~ &  $x$ の絶対値, $|x|$ \\
abs(x) & 複素数 & ~ & $x$ の長さ, $\sqrt{{\mbox{real}(x)^{2} +
\mbox{imag}(x)^{2}}}$ \\
\index{norm}%
\index{modulus}%
\label{expressions functions acos}%
\label{acos}%
\index{acos}%
acos(x) &  ~~   & \gpCX & $\cos^{-1} x$ (アークコサイン) \\
\label{expressions functions acosh}%
\label{acosh}%
\index{acosh}%
acosh(x) &  ~~   & \gpCX & $\cosh^{-1} x$ (逆双曲余弦) \\
\label{expressions functions airy}%
\label{airy}%
\index{airy}%
airy(x) &  実数   & ~ & 実数 x に対するエアリー関数 Ai(x)\\
\label{expressions functions arg}%
\label{arg}%
\index{arg}%
arg(x) & 複素数 & ~ & $x$ の偏角, $-\pi\leq$arg($x$)$\leq\pi$ \\
\label{expressions functions asin}%
\label{asin}%
\index{asin}%
asin(x) &  ~~   & \gpCX & $\sin^{-1} x$ (アークサイン) \\
\label{expressions functions asinh}%
\label{asinh}%
\index{asinh}%
asinh(x) &  ~~   & \gpCX & $\sinh^{-1} x$ (逆双曲正弦)\\
\label{expressions functions atan}%
\label{atan}%
\index{atan}%
atan(x) &  ~~   & \gpCX & $\tan^{-1} x$ (アークタンジェント) \\
\label{expressions functions atan2}%
\label{atan2}%
\index{atan2}%
atan2(y,x) & 整数または実数 & ~ & $\tan^{-1} (y/x)$ (アークタンジェント) \\
\label{expressions functions atanh}%
\label{atanh}%
\index{atanh}%
atanh(x) &  ~~   & \gpCX & $\tanh^{-1} x$ (逆双曲正接)\\
\label{expressions functions besj0}%
\label{besj0}%
\index{besj0}%
 besj0(x) & 実数 & ~ & $x$ ラジアンの $J_{0}$ ベッセル関数 (0 次ベッセル関数)\\
\label{expressions functions besj1}%
\label{besj1}%
\index{besj1}%
 besj1(x) & 実数 & ~ & $x$ ラジアンの $J_{1}$ ベッセル関数 (1 次ベッセル関数)\\
\label{expressions functions besjn}%
\label{besjn}%
\index{besjn}%
 besjn(n,x) & 整数, 実数 & ~ & $x$ ラジアンの $J_{n}$ ベッセル関数 (n 次ベッセル関数)\\
\label{expressions functions besy0}%
\label{besy0}%
\index{besy0}%
 besy0(x) & 実数 & ~ & $x$ ラジアンの $Y_{0}$ ベッセル関数 (0 次ノイマン関数)\\
\label{expressions functions besy1}%
\label{besy1}%
\index{besy1}%
 besy1(x) & 実数 & ~ & $x$ ラジアンの $Y_{1}$ ベッセル関数 (1 次ノイマン関数)\\
\label{expressions functions besyn}%
\label{besyn}%
\index{besyn}%
 besyn(n,x) & 整数, 実数 & ~ & $x$ ラジアンの $Y_{n}$ ベッセル関数 (n 次ノイマン関数)\\
\label{expressions functions besi0}%
\label{besi0}%
\index{besi0}%
 besi0(x) & 実数 & ~ & $x$ ラジアンの $I_{0}$ (0 次) 変形ベッセル関数\\
\label{expressions functions besi1}%
\label{besi1}%
\index{besi1}%
 besi1(x) & 実数 & ~ & $x$ ラジアンの $I_{1}$ (1 次) 変形ベッセル関数\\
\label{expressions functions besin}%
\label{besin}%
\index{besin}%
 besin(n,x) &整数, 実数& ~ & $x$ ラジアンの $I_{n}$ (n 次) 変形ベッセル関数\\
\label{expressions functions cbrt}%
\label{cbrt}%
\index{cbrt}%
cbrt(x) & 実数 & ~ & $x$ の三乗根 (定義域、値域は共に実数に限定) \\
ceil(x) & ~~ & ~ & $\lceil x \rceil$, $x$ の実部以上の最小の整数\\
\label{expressions functions conj}%
\label{conj}%
\index{conj}%
conj(x) & 複素数 & \gpCX & $x$ の複素共役 \\
\label{expressions functions cos}%
\label{cos}%
\index{cos}%
cos(x) & ~~ & \gpCX & $x$ のコサイン $\cos x$\\
\label{expressions functions cosh}%
\label{cosh}%
\index{cosh}%
cosh(x) & ~~ & \gpCX & $\cosh x$, $x$ ラジアンのハイパボリックコサイン \\
\label{expressions functions EllipticK}%
\label{EllipticK}%
\index{EllipticK}%
EllipticK(k) & 実数 k $\in$ (-1:1) & ~ & $K(k)$ 第 1 種完全楕円積分\\
\label{expressions functions EllipticE}%
\label{EllipticE}%
\index{EllipticE}%
EllipticE(k) & 実数 k $\in$ [-1:1] & ~ & $E(k)$ 第 2 種完全楕円積分\\
\label{expressions functions EllipticPi}%
\label{EllipticPi}%
\index{EllipticPi}%
EllipticPi(n,k) & 実数 n$<$1, 実数 k $\in$ (-1:1) & ~ & $\Pi(n,k)$ 第 3 種完全楕円積分\\
\label{expressions functions erf}%
\label{erf}%
\index{erf}%
erf(x) & ~~ & ~ & $\mbox{erf}(\mbox{real}(x))$,  $x$ の 実部の誤差関数\\
\label{expressions functions erfc}%
\label{erfc}%
\index{erfc}%
erfc(x) & ~~ & ~ & $\mbox{erfc}(\mbox{real}(x))$,  1.0 - ($x$ の実部の誤差関数) \\
\label{expressions functions exp}%
\label{exp}%
\index{exp}%
exp(x) &  ~~  & \gpCX & $e^{x}$, $x$ の指数関数\\
expint(n,x) & 整数 $n\ge0$, 実数 $x\ge0$ & ~ & $E_n(x)=\int_1^\infty t^{-n} e^{-xt}\,dt$, $x$ の指数積分 \\
floor(x) &  ~~  & ~ & $\lfloor x \rfloor$, $x$ の実部以下の最大の整数\\
\label{expressions functions gamma}%
gamma(x) &  ~~  & ~ & $\Gamma(x)$, $x$ の実部のガンマ関数\\
ibeta(a,b,x) & $a,b>0$, $x \in [0:1]$ & ~ & $B(a,b,x)=\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}\intop_{0}^{x}t^{a-1}(1-t)^{b-1}dt$, 不完全ベータ関数 \\
\label{expressions functions inverf}%
\label{inverf}%
\index{inverf}%
inverf(x) &  ~~  & ~ & $x$ の実部の逆誤差関数 \\
igamma(a,z) & 複素数, $\Re(a)>0$ & \gpCX & 不完全ガンマ関数 $P(a,z)=\frac{1}{\Gamma(z)}\intop_{0}^{z}t^{a-1}e^{-t}dt$ \\
\label{expressions functions imag}%
\label{imag}%
\index{imag}%
imag(x) & 複素数 & ~ & $x$ の虚数部分 (実数) \\
int(x) & 実数 & ~ &  $x$ の 0 に向かって丸めた整数部分\\
\label{expressions functions invnorm}%
\label{invnorm}%
\index{invnorm}%
invnorm(x) &  ~~  & ~ & $x$ の実部の逆正規分布関数 \\
invibeta(a,b,p) & 実数 & ~ &  逆 (正規化) 不完全ベータ関数  \\
invigamma(a,p) & 実数 & ~ &  逆 (正規化) 不完全ガンマ関数  \\
LambertW(z,k) & 複素数, 整数 & \gpCX & 複素 Lambert W 関数の第 k 分岐 \\
\label{expressions functions lambertw}%
\label{lambertw}%
\index{lambertw}%
lambertw(x) & 実数 & ~ & Lambert W 関数の主値 (第 0 分岐) \\
\label{expressions functions lgamma}%
\label{lgamma}%
\index{lgamma}%
lgamma(x) & 実数 & ~ & 実数 $x$ に対する $\ln\Gamma(x)$ (ガンマ対数関数) \\
lnGamma(x) & 複素数 & \gpCX & 複素平面全体で正当な $\ln\Gamma(x)$ \\
\label{expressions functions log}%
\label{log}%
\index{log}%
log(x) &  ~~  & \gpCX & $\log_{e} x$,  $x$ の自然対数 (底 $e$) \\
\label{expressions functions log10}%
\label{log10}%
\index{log10}%
log10(x) &  ~~  & \gpCX & $\log_{10} x$, $x$ の対数 (底 $10$) \\
\label{expressions functions norm}%
\label{norm}%
\index{norm}%
norm(x) &  ~~  & ~ & $x$ の実部の正規分布 (ガウス分布) 関数 \\
\label{expressions functions rand}%
\label{rand}%
\index{rand}%
rand(x) & 整数 & ~ & 開区間 (0:1) 内の疑似乱数生成器 \\
\label{expressions functions real}%
\label{real}%
\index{real}%
real(x) &  ~~  & ~ & $x$ の実部 \\
round(x) &  ~~  & ~ & $\lfloor x \rceil$,  $x$ の実部に一番近い整数\\
\label{expressions functions sgn}%
\label{sgn}%
\index{sgn}%
sgn(x) &  ~~  & ~ & $x>0$ なら 1, $x<0$ なら -1, $x=0$ なら 0 (虚部は無視) \\
Sign(x) & 複素数 & \gpCX & $x = 0$ なら 0、それ以外は $x/|x|$ \\
\label{expressions functions sin}%
\label{sin}%
\index{sin}%
sin(x) &  ~~  & \gpCX & $\sin x$, $x$ のサイン \\
\label{expressions functions sinh}%
\label{sinh}%
\index{sinh}%
sinh(x) &  ~~  & \gpCX & $\sinh x$, $x$ ラジアンのハイパボリックサイン \\
\label{expressions functions sqrt}%
\label{sqrt}%
\index{sqrt}%
sqrt(x) &  ~~  & \gpCX & $\sqrt{x}$,  $x$ の平方根\\
SynchrotronF(x) & 実数 & ~ & $F(x) = x\intop_{x}^{\infty}K_{\frac{5}{3}}(\nu)~d\nu$ \\
\label{expressions functions tan}%
\label{tan}%
\index{tan}%
tan(x) &  ~~  & \gpCX & $\tan x$,  $x$ のタンジェント \\
\label{expressions functions tanh}%
\label{tanh}%
\index{tanh}%
tanh(x) &  ~~  & \gpCX & $\tanh x$, $x$ ラジアンのハイパボリックタンジェント\\
uigamma(a,x) & 実数, 実数 & & 上方不完全ガンマ関数 $Q(a,x)=\frac{1}{\Gamma(x)}\intop_{x}^{\infty}t^{a-1}e^{-t}dt$ \\
\label{expressions functions voigt}%
\label{voigt}%
\index{voigt}%
voigt(x,y) & 実数 & ~ & Voigt/Faddeeva 関数 $\frac{y}{\pi} \int{\frac{exp(-t^2)}{(x-t)^2+y^2}}dt$ \\
           &       & ~ & 注意: voigt$(x,y)$ = $real($faddeeva$(x+iy))$ \\
zeta(s) & 複素数 & \gpCX & リーマンゼータ関数 $\zeta(s) = \Sigma^{\infty}_{k=1} k^{-s}$\\
\hline \end{longtable}
%% @end が必要とするため、ダミーの tabular の開始
\begin{tabular}{|lcl|}
\hline
\end{tabular}
\end{center}


\begin{center}
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\begin{longtable}{@{\extracolsep{\fill}}|lcrl|@{}} \hline
\multicolumn{4}{|c|}{libcerf (利用可能な場合のみ) による特殊関数} \\ \hline \hline
関数 ~~~~~~~~~~~~~~~~~ & 引数 & ~ & 戻り値 ({\gpCX } は複素数)\\ \hline
\endhead \hline \endfoot
 ~ & ~ & ~ & \hspace{9cm} \\
\label{expressions functions cerf}%
\label{cerf}%
\index{cerf}%
cerf(z) & 複素数 & \gpCX & 複素誤差関数 $cerf(z)={\frac{\sqrt{\pi}}{2}}{\int^{z}_{0}{e^{-t^2}dt}} $ \\
\label{expressions functions cdawson}%
\label{cdawson}%
\index{cdawson}%
\index{Dawson's integral}%
\label{Dawson's integral}%
cdawson(z)&複素数& \gpCX &Dawson 積分 $D(z)={\frac{\sqrt{\pi}}{2}e^{-z^2} erfi(z)}$ の複素拡張 \\
\label{expressions functions faddeeva}%
\label{faddeeva}%
\index{faddeeva}%
faddeeva(z)&複素数& \gpCX &スケール化複素相補誤差関数 $w(z) = e^{-z^2}~ erfc(-iz) $ \\
\label{expressions functions erfi}%
\label{erfi}%
\index{erfi}%
erfi(x)&実数&~&虚誤差関数 $erf(x) = -i * erf(ix)$ \\
FresnelC(x)&実数&~&フレネル積分 $C(x)=\int^{x}_{0}\cos(\frac{\pi}{2}t^2)dt$ \\
FresnelS(x)&実数&~&フレネル積分 $S(x)=\int^{x}_{0}\sin(\frac{\pi}{2}t^2)dt$ \\
\label{expressions functions VP}%
\label{expressions functions VP_fwhm}%
\label{VP}%
\index{VP}%
\label{VP_fwhm}%
\index{VP fwhm}%
VP(x,$\sigma$,$\gamma$)&実数& ~ & Voigt プロファイル $ VP(x,\sigma,\gamma) = {\int^{\infty}_{-\infty}{G(x^\prime;\sigma) L(x-x^\prime;\gamma) dx^\prime }} $ \\
VP\_fwhm($\sigma$,$\gamma$)&実数& ~ & Voigt プロファイルの半値全幅 (FWHM)\\
\hline \end{longtable}
%% @end が必要とするため、ダミーの tabular の開始
\begin{tabular}{|lcl|}
\hline
\end{tabular}
\end{center}


\begin{center}
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\begin{longtable}{@{\extracolsep{\fill}}|lcrl|@{}} \hline
\multicolumn{4}{|c|}{Amos ライブラリ (利用可能な場合のみ) による複素特殊関数} \\ \hline \hline
関数 ~~~~~~~~~~~~~~~~~ & 引数 & ~ & 戻り値 ({\gpCX } は複素数)\\ \hline
\endhead \hline \endfoot
 ~ & ~ & ~ & \hspace{7cm} \\
Ai(z) & 複素数 & \gpCX &  複素エアリー関数 $Ai(z)$\\
Bi(z) & 複素数 & \gpCX &  複素エアリー関数 $Bi(z)$\\
BesselH1(nu,z) & 実数, 複素数 & \gpCX & $H^{(1)}_{\nu}(z)$ 第 1 種ハンケル関数\\
BesselH2(nu,z) & 実数, 複素数 & \gpCX & $H^{(2)}_{\nu}(z)$ 第 2 種ハンケル関数\\
BesselJ(nu,z) & 実数, 複素数 & \gpCX & $J_{\nu}(z)$ 第 1 種ベッセル関数\\
BesselY(nu,z) & 実数, 複素数 & \gpCX & $Y_{\nu}(z)$ 第 2 種ベッセル関数\\
BesselI(nu,z) & 実数, 複素数 & \gpCX & $I_{\nu}(z)$ 第 1 種変形ベッセル関数\\
BesselK(nu,z) & 実数, 複素数 & \gpCX & $K_{\nu}(z)$ 第 2 種変形ベッセル関数\\
expint(n,z) & 整数 $n\geq0$, 複素数 $z$ & \gpCX & $E_n(z)=\int_1^\infty t^{-n} e^{-zt}\,dt$,  指数積分\\
\hline \end{longtable}
%% @end が必要とするため、ダミーの tabular の開始
\begin{tabular}{|lcl|}
\hline
\end{tabular}
\end{center}


\begin{center}
\begin{longtable}{@{\extracolsep{\fill}}|lcl|@{}} \hline
\multicolumn{3}{|c|}{文字列関数} \\ \hline \hline
関数 & 引数 & 戻り値 \\ \hline
\label{expressions functions gprintf}%
gprintf("format",x,...) & 任意 & gnuplot の書式解析器を適用した結果の文字列 \\
\label{expressions functions sprintf}%
\label{sprintf}%
\index{sprintf}%
sprintf("format",x,...) & 複数個 & C 言語の sprintf の返す文字列 \\
\label{expressions functions strlen}%
\label{strlen}%
\index{strlen}%
strlen("string") & 文字列 & 文字列中の文字数\\
\label{expressions functions strstrt}%
\label{strstrt}%
\index{strstrt}%
strstrt("string","key") & 文字列 & 部分文字列 "key" が現れる先頭位置\\
\label{expressions functions substr}%
\label{substr}%
\index{substr}%
\index{substring}%
substr("string",beg,end) & 複数個 & 文字列 "string"[beg:end] \\
split("string","sep") & 文字列 & 部分文字列からなる配列 \\
join(array,"sep") & 配列, 文字列 & 配列要素を一つの文字列に結合\\
\label{expressions functions strftime}%
\label{strftime}%
\index{strftime}%
strftime("timeformat",t) & 任意 & gnuplot による時刻解析結果の文字列 \\
\label{expressions functions strptime}%
\label{strptime}%
\index{strptime}%
strptime("timeformat",s) & 文字列 & 文字列 s を変換した 1970 年からの秒数 \\
\label{expressions functions system}%
\index{system}%
system("command") & 文字列 & シェルコマンドの出力を持つ文字列\\
\index{trim}%
\label{expressions functions trim}%
trim(" string ") & 文字列 & 前後につく空白を取り除いた文字列 \\
\index{word}%
word("string",n) & 文字列, 整数 & 文字列 "string" の n 番目の単語 \\
\index{words}%
words("string") & 文字列 & 文字列 "string" 中の単語数 \\
\hline \end{longtable}
%% @end が必要とするため、ダミーの tabular の開始
\begin{tabular}{|lcl|}
\hline
\end{tabular}
\end{center}


\begin{center}
\begin{tabular}{|lcl|} \hline
\multicolumn{3}{|c|}{時刻関数} \\ \hline \hline
関数 & 引数 & 戻り値 \\ \hline
time(x) & 任意 & 現在のシステム時刻 (秒単位) \\
timecolumn(N,"timeformat") & 整数, 文字列 & 入力データの $N$ 列目からの書式化日時データ \\
\label{expressions functions tm_hour}%
\label{tm_hour}%
\index{tm hour}%
tm\_hour(t) & 秒数による時刻 & 時 (0..23)\\
\label{expressions functions tm_mday}%
\label{tm_mday}%
\index{tm mday}%
tm\_mday(t) & 秒数による時刻 & 日 (1..31)\\
\label{expressions functions tm_min}%
\label{tm_min}%
\index{tm min}%
tm\_min(t) & 秒数による時刻 & 分 (0..59)\\
\label{expressions functions tm_mon}%
\label{tm_mon}%
\index{tm mon}%
tm\_mon(t) & 秒数による時刻 & 月 (0..11)\\
\label{expressions functions tm_sec}%
\label{tm_sec}%
\index{tm sec}%
tm\_sec(t) & 秒数による時刻 & 秒 (0..59)\\
\label{expressions functions tm_wday}%
\label{tm_wday}%
\index{tm wday}%
tm\_wday(t) & 秒数による時刻 & 曜日 (日から土を 0..6 で)\\
tm\_week(t) & 秒数による時刻 & ISO 8601 規則での週番号 (1..53)\\
\label{expressions functions tm_yday}%
\label{tm_yday}%
\index{tm yday}%
tm\_yday(t) & 秒数による時刻 & その年の何日目 (0..365)\\
\label{expressions functions tm_year}%
\label{tm_year}%
\index{tm year}%
tm\_year(t) & 秒数による時刻 & 西暦 \\
weekdate\_iso(year,week,day) & 整数 & ISO 8601 規則での週曜日に対応する時刻\\
weekdate\_cdc(year,week,day) & 整数 & CDC による疫学的週曜日に対応する時刻\\
\hline
\end{tabular}
\end{center}


\begin{center}
\begin{tabular}{|lcl|} \hline
\multicolumn{3}{|c|}{他の {\bf gnuplot} の関数} \\ \hline \hline
関数 & 引数 & 戻り値 \\ \hline
column(x) & 整数か文字列 & データ入力中の $x$ 列目の数値 \\
columnhead(x) & 整数 & データファイルの最初の $x$ 列目中の文字列 \\
\label{expressions functions exists}%
\label{exists}%
\index{exists}%
exists("X") & 文字列 & 変数名 X が定義されていれば 1, そうでなければ 0\\
\label{expressions functions hsv2rgb}%
\label{hsv2rgb}%
\index{hsv2rgb}%
\label{hsv}%
\index{hsv}%
hsv2rgb(h,s,v) & h,s,v $\in$ [0:1] & 24 ビット RGB 色値 \\
index(A,x) & 配列, 任意 & A[i] = x となる整数 i。なければ 0。\\
\label{expressions functions palette}%
\label{palette}%
\index{palette}%
palette(z) & 実数 & z に割り当てられた 24 ビット RGB パレット色 \\
\label{expressions functions rgbcolor}%
\label{rgbcolor}%
\index{rgbcolor}%
\index{alpha channel}%
rgbcolor("name") & 文字列 & 色名か文字列表現の色の 32 ビット ARGB 値\\
stringcolumn(x) & 整数か文字列 & 文字列としての $x$ 列目の内容 \\
valid(x) & 整数 & データ入力中の $x$ 列目の正当性\\
value("name") & 文字列 & 名前 name の変数の現在の値\\
\label{expressions functions voxel}%
\label{voxel}%
\index{voxel}%
voxel(x,y,z) & 実数 & 点 (x,y,z) を含む有効ボクセルの値\\
\hline
\end{tabular}
\end{center}

\subsubsection*{整数変換関数 (int floor ceil round) (integer conversion functions)}
\addcontentsline{toc}{subsubsection}{整数変換関数 (int floor ceil round) (integer conversion functions)}
\label{integer conversion}%
\label{integer}%
\index{integer}%
\label{precision}%
\index{precision}%
gnuplot の整数変数値は、使用環境が許せば、64 ビットの精度で保存します。

gnuplot の複素数変数値、実数変数値は、ほとんどの使用環境で IEEE754 の
binary64 (double) 浮動小数形式で保存します。その精度は、53 ビットに制
限され、有効数字はおよそ 16 桁です。

よって、絶対値が 2\verb+^+53 よりも大きい整数は、浮動小数変数で一意に表現する
ことはできません。つまり、大きな N に対する int(real(N)) という操作は
N に近いけれども N とは異なる整数を返す可能性があります。

さらに、浮動小数値を切り捨てにより整数値に変換する関数は、その値自身が
小さくても、16 桁以上の精度に依存する操作では期待する値を得られない可
能性があります。例えば、int(log10(0.1)) は、-1 でなく 0 を返しますが、
それはその浮動小数表現が -0.999999999999999... に等しいからです。
以下も参照: {\bf overflow (p.~\pageref{overflow})\index{overflow}}。

\label{expressions functions int}%
\label{int}%
\index{int}%
{\bf int(x)} は、引数の 0 の方向に切り捨てた整数部分を返します。
$|$x$|$ $>$ 2\verb+^+63、すなわち整数値として大きすぎる場合は NaN を返します。
$|$x$|$ $>$ 2\verb+^+52 の場合は、返り値はある整数の近傍におさまりますが、浮動小数
精度の制限のためにそれらを区別できません。
以下参照: {\bf integer conversion (p.~\pageref{integer conversion})\index{conversion}}。

\label{expressions functions floor}%
\label{floor}%
\index{floor}%
{\bf floor(x)} は、x の実数部分以下の最大の整数を返します。
$|$x$|$ $>$ 2\verb+^+52 の場合、その値は一意に決定できませんので、その場合は NaN を
返します。以下参照: {\bf integer conversion (p.~\pageref{integer conversion})\index{conversion}}。

\label{expressions functions ceil}%
\label{ceil}%
\index{ceil}%
{\bf ceil(x)} は、x の実数部分以上の最小の整数を返します。
$|$x$|$ $>$ 2\verb+^+52 の場合、その値は一意に決定できませんので、その場合は NaN を
返します。以下参照: {\bf integer conversion (p.~\pageref{integer conversion})\index{conversion}}。

\label{expressions functions round}%
\label{round}%
\index{round}%
{\bf round(x)} は、x の実数部分に一番近い整数を返します。
$|$x$|$ $>$ 2\verb+^+52 の場合、その値は一意に決定できませんので、その場合は NaN を
返します。以下参照: {\bf integer conversion (p.~\pageref{integer conversion})\index{conversion}}。

\subsubsection*{種々の楕円積分 (elliptic integrals)}
\addcontentsline{toc}{subsubsection}{種々の楕円積分 (elliptic integrals)}
\label{elliptic integrals}%
\label{elliptic}%
\index{elliptic}%
\index{elliptic integrals}%
関数 {\bf EllipticK(k)} は、第 1 種完全楕円積分、すなわち、関数
{\bf (1 - k\verb+^+2*sin\verb+^+2(θ))\verb+^+(-0.5)} の 0 からπ/2 までの範囲の広義積分の値を
返します。{\bf k} の定義域は -1 から 1 です (両端は含まない)。

\quad\quad EllipticK$(k)=\int_0^{\pi/2} {\sqrt{1-k^2\sin^2\theta}~}^{-1}~d\theta$
 
関数 {\bf EllipticE(k)} は、第 2 種完全楕円積分、すなわち、関数
{\bf (1 - k\verb+^+2*sin\verb+^+2(θ))\verb+^+(-0.5)} の 0 からπ/2 までの範囲の広義積分の値を
返します。{\bf k} の定義域は -1 から 1 です (両端も含む)。

\quad\quad EllipticE$(k)=\int_0^{\pi/2} {\sqrt{1-k^2\sin^2\theta}}~d\theta$
 
関数 {\bf EllipticPi(n,k)} は、第 3 種完全楕円積分、すなわち関数
{\bf (1 - k\verb+^+2*sin\verb+^+2(θ))\verb+^+(-0.5) / (1 - n*sin\verb+^+2(θ))} の 0 からπ/2 までの
範囲の広義積分の値を返します。パラメータ {\bf n} は 1 より小さく、{\bf k} は
-1 と 1 の間 (両端は含まない) でなければいけません。定義より、すべての
正の {\bf k} に対し EllipticPi(0,k) == EllipticK(k) であることに注意してく
ださい。

\quad\quad EllipticPi$(n,k)=\int_0^{\pi/2} {\big[(1-n\sin^2\theta)\sqrt{1-k^2\sin^2\theta}~\big]}^{-1}d\theta$
 
楕円積分のアルゴリズム: B.C.Carlson 1995, Numerical Algorithms 10:13-26.

\subsubsection*{複素エアリー関数  (Complex Airy functions)}
\addcontentsline{toc}{subsubsection}{複素エアリー関数  (Complex Airy functions)}
\label{expressions functions Ai}%
\label{Ai}%
\index{Ai}%
\label{expressions functions Bi}%
\label{Bi}%
\index{Bi}%
{\bf Ai(z)} と {\bf Bi(z)} は、複素引数 z のエアリー関数で、変形ベッセル関数 K
と I を用いて計算されます。
Donald E. Amos, Sandia National Laboratories, SAND85-1018 (1985) によ
るルーチンを含む外部ライブラリによってサポートしています。

\quad\quad Ai$(z) = \frac{1}{\pi}\sqrt{\frac{z}{3}} K_{\nicefrac{1}{3}}(\zeta)$
 \quad\quad\quad $\zeta = \frac{2}{3}z^{\nicefrac{3}{2}}$
 
\quad\quad Bi$(z) = \sqrt{\frac{z}{3}} {\big[I_{\nicefrac{-1}{3}}(\zeta) + I_{\nicefrac{1}{3}}(\zeta)]}$
 
\subsubsection*{複素ベッセル関数 (Complex Bessel functions)}
\addcontentsline{toc}{subsubsection}{複素ベッセル関数 (Complex Bessel functions)}
\label{expressions functions BesselJ}%
\label{BesselJ}%
\index{BesselJ}%
{\bf BesselJ(nu,z)} は、実引数の nu と複素引数の z に対する第 1 種ベッセル
関数 J\_nu です。
Donald E. Amos, Sandia National Laboratories, SAND85-1018 (1985) によ
るルーチンを含む外部ライブラリによってサポートしています。

\label{expressions functions BesselY}%
\label{BesselY}%
\index{BesselY}%
{\bf BesselY(nu,z)} は、実引数の nu と複素引数の z に対する第 2 種ベッセル
関数 Y\_nu です。
Donald E. Amos, Sandia National Laboratories, SAND85-1018 (1985) によ
るルーチンを含む外部ライブラリによってサポートしています。

\label{expressions functions BesselI}%
\label{BesselI}%
\index{BesselI}%
{\bf BesselI(nu,z)} は、実引数の nu と複素引数の z に対する第 1 種変形ベッ
セル関数 I\_nu です。
Donald E. Amos, Sandia National Laboratories, SAND85-1018 (1985) によ
るルーチンを含む外部ライブラリによってサポートしています。

\label{expressions functions BesselK}%
\label{BesselK}%
\index{BesselK}%
{\bf BesselK(nu,z)} は、実引数の nu と複素引数の z に対する第 2 種変形ベッ
セル関数 K\_nu です。
Donald E. Amos, Sandia National Laboratories, SAND85-1018 (1985) によ
るルーチンを含む外部ライブラリによってサポートしています。

\label{expressions functions BesselH1}%
\label{expressions functions BesselH2}%
\label{expressions functions Hankel}%
\label{BesselH1}%
\index{BesselH1}%
\label{BesselH2}%
\index{BesselH2}%
\label{Hankel}%
\index{Hankel}%
{\bf BesselH1(nu,z)} と {\bf BesselH2(nu,z)} は、それぞれ実引数の nu と複素引
数の z に対する第 1 種、第 2 種のハンケル関数です。
\preverbatim
\begin{verbatim}
   H1(nu,z) = J(nu,z) + iY(nu,z)
   H2(nu,z) = J(nu,z) - iY(nu,z)
\end{verbatim}
\postverbatim
Donald E. Amos, Sandia National Laboratories, SAND85-1018 (1985) によ
るルーチンを含む外部ライブラリによってサポートしています。

\subsubsection*{Expint}
\addcontentsline{toc}{subsubsection}{Expint}
\label{expressions functions expint}%
\label{expint}%
\index{expint}%
{\bf expint(n,z)} は、0 以上の整数 n に対して、次数 n の指数積分を返します。
これは、t\verb+^+(-n) e\verb+^+(-tz) dt の 1 から∞までの積分値です。

\quad\quad $E_n(x)=\int_1^\infty t^{-n} e^{-xt}\,dt$
 
あなたが使っている gnuplot が、Amos ライブラリによる複素関数のサポート
付きでビルドされたものであれば、n$>$0 に対して、その評価には Amos ルーチ
ンの cexint を使用します [Amos 1990 Algorithm 683, ACM Trans Math
Software 16:178]。その場合、z は -pi $<$ arg(z) $<$= pi の任意の複素数とで
きます。expint(0,z) は、exp(-z)/z と計算します。

Amos ライブラリのサポートがなければ、z は 0 以上の実数値に制限されます。

\subsubsection*{フレネル積分 (Fresnel integrals FresnelC(x) and FresnelS(x))}
\addcontentsline{toc}{subsubsection}{フレネル積分 (Fresnel integrals FresnelC(x) and FresnelS(x))}
\label{expressions functions FresnelC}%
\label{expressions functions FresnelS}%
\label{FresnelC}%
\index{FresnelC}%
\label{FresnelS}%
\index{FresnelS}%
コサインとサインのフレネル積分は、複素誤差関数 erf(z) との関係を用いて
計算します。erf(z) に依存するため、これらの積分は libcerf ライブラリの
サポートがある場合にのみ利用できます。

\quad\quad $C(x) = \int^{x}_{0}\cos(\frac{\pi}{2} t^2)dt$ \quad $S(x) = \int^{x}_{0}\sin(\frac{\pi}{2} t^2)dt$
 
\quad\quad $C(x)+iS(x)=\frac{1+i}{2} erf(z)$、$z = \frac{\sqrt{\pi}}{2}(1-i)x$
 
\subsubsection*{Gamma}
\addcontentsline{toc}{subsubsection}{Gamma}
\label{gamma}%
\index{gamma}%
{\bf gamma(x)} は、その引数の実数部分のガンマ関数値を返します。整数 n に対
しては gamma(n+1) = n! です。引数が複素数の場合、その虚数部分は無視し
ます。複素数引数に対しては、以下参照: {\bf lnGamma (p.~\pageref{lnGamma})\index{lnGamma}}。

\subsubsection*{Igamma}
\addcontentsline{toc}{subsubsection}{Igamma}
\label{expressions functions igamma}%
\label{igamma}%
\index{igamma}%
{\bf igamma(a, z)} は、下方 (正規化) 不完全ガンマ関数 P(a, z) を返します
\preverbatim
\begin{verbatim}
[Abramowitz and Stegun (6.5.1); NIST DLMF 8.2.4]。複素関数サポートが
\end{verbatim}
\postverbatim
あれば、a と z は real(a) $>$ 0 の複素数値も許されます。
逆に、上方不完全ガンマ関数に関しては、以下参照: {\bf uigamma (p.~\pageref{uigamma})\index{uigamma}}。

\quad\quad igamma$(a,z)=P(a,z) = z^a\gamma^*(a,z)$
 $=\frac{1}{\Gamma(z)}\intop_{0}^{z}t^{a-1}e^{-t}dt$
 
a, z の値に依存して、以下の 4 つのアルゴリズムを使用します。
\\
 ケース (1) a が大きく ($>$100) (z-a)/a が小さい ($<$0.2) 場合、
Numerical Recipes 第 3 版 6.2 節 (2007) にある係数での Gauss-Legendre
数値積分公式を利用します。
\\
 ケース (2) z $>$ 1 で z $>$ (a+2) の場合、Shea (1988) J. Royal Stat. Soc.
Series C (Applied Statistics) 37:466-473 の連分数を利用します。
\\
 ケース (3) z $<$ 0 で a $<$ 75 で imag(a) == 0 の場合は、Abramowitz \&
Stegun (6.5.29) の数列を利用します。
\\
 ケース (4) その他の場合は、Peason の級数展開を利用します。

全平面では、ある領域でその収束は良くないことに注意してください。選択し
たアルゴリズムで 1.E-14 の範囲で収束しなければ、関数は NaN を返し、警
告を表示します。

複素関数サポートがない場合は、定義域は実数の引数の a $>$ 0, z $>$= 0 に制
限されます。

\subsubsection*{Invigamma}
\addcontentsline{toc}{subsubsection}{Invigamma}
\label{expressions functions invigamma}%
\label{invigamma}%
\index{invigamma}%
逆不完全ガンマ関数 {\bf invigamma(a,p)} は、p = igamma(a,z) となる z の値
を返します。p は (0;1] に制限され、a は正の実数でなければいけません。
gnuplot での実装は、a$<$1 に対する 1.e-16 から、a = 1.e10 に対する 5.e-6
までの相対精度を持ちます。

\subsubsection*{Ibeta}
\addcontentsline{toc}{subsubsection}{Ibeta}
\label{expressions functions ibeta}%
\label{ibeta}%
\index{ibeta}%
{\bf ibeta(a,b,x)} は、実数引数 a,b $>$ 0, [0;1] 内の x に対する、正規化下方
不完全ベータ積分値を返します。

\quad\quad ibeta$(a,b,x)=\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}\intop_{0}^{x}t^{a-1}(1-t)^{b-1}dt$
 
引数が複素数の場合、虚数部分は無視します。gnuplot での実装は、Cephes
ライブラリ [Moshier 1989, {\tt"}Methods and Programs for Mathematical
Functions{\tt"}, Prentice-Hall] からのコードを利用しています。

\subsubsection*{Invibeta}
\addcontentsline{toc}{subsubsection}{Invibeta}
\label{expressions functions invibeta}%
\label{invibeta}%
\index{invibeta}%
逆不完全ベータ関数 {\bf invibeta(a,b,p)} は、p = ibeta(a,b,z) となる z の
値を返します。a, b は正の実数に、p は [0,1] 内の値に制限されています。
a, b が 0 に近づくとき
($\lessapprox 0.05$)
 invibeta() は 1.0 に近づくので、その相対精度は浮動小数精度に制限される
ことに注意してください。

\subsubsection*{LambertW}
\addcontentsline{toc}{subsubsection}{LambertW}
\label{expressions functions LambertW}%
\label{LambertW}%
\index{LambertW}%
複素定義域と複素値域を持つ Lambert W 関数です。
LambertW( z, k ) は、方程式 W(z) * exp(W(z)) = z で定義される 関数 W
の第 k 分岐を返します。
その複素数値は、Corless et al [1996], Adv. Comp. Math 5:329 に記載され
ている Halley の方法を使って求めます。
名目上の精度は 1.E-13 ですが、不連続、すなわち分岐点の近くでは収束は良
くありません。
\subsubsection*{LnGamma}
\addcontentsline{toc}{subsubsection}{LnGamma}
\label{expressions functions lnGamma}%
\label{lnGamma}%
\index{lnGamma}%
lnGamma(z) は、複素定義域と複素値域を持つ、ガンマ関数の自然対数値を返
します。 Lanczos [1964], SIAM JNA 1:86-96 による 14 項近似による実装で
す。結果の虚数成分は、負の実軸部分を除く全体で連続な曲面を生成するよう
位相をずらしています。
\subsubsection*{乱数の生成 (random)}
\addcontentsline{toc}{subsubsection}{乱数の生成 (random)}
\label{expressions random}%
\label{random}%
\index{random}%
\index{rand}%
関数 {\bf rand()} は 0 と 1 の間の疑似乱数列を生成します。これは以下からの
アルゴリズムを使用しています: P. L'Ecuyer and S. Cote, {\tt"}Implementing a
random number package with splitting facilities{\tt"}, ACM Transactions on
Mathematical Software, 17:98-111 (1991).

\preverbatim
\begin{verbatim}
     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
                 に設定する
\end{verbatim}
\postverbatim
\subsubsection*{複素引数の特殊関数 (Special functions with complex arguments)}
\addcontentsline{toc}{subsubsection}{複素引数の特殊関数 (Special functions with complex arguments)}
\label{expressions functions special}%
\label{expressions functions complex}%
\label{special_functions}%
\index{special functions}%
\label{libcerf}%
\index{libcerf}%
\label{Amos}%
\index{Amos}%
\label{libopenspecfun}%
\index{libopenspecfun}%

複素定義域を持ついくつかの特殊関数を、外部ライブラリを通して提供します。
あなたが使っている gnuplot がこれらのライブラリへのリンクなしでビルド
されている場合は、定義域が実数の場合のみサポートするか、または関数自体
を全く提供しないかとなるでしょう。

libcerf (http://apps.jcns.fz-juelich.de/libcerf) を必要とする関数は、
ビルド時の設定オプション {\bf --with-libcerf} に依存し、これがデフォルトで
す。以下参照: {\bf cerf (p.~\pageref{cerf})\index{cerf}}, {\bf cdawson (p.~\pageref{cdawson})\index{cdawson}}, {\bf faddeeva (p.~\pageref{faddeeva})\index{faddeeva}}, {\bf erfi (p.~\pageref{erfi})\index{erfi}}, {\bf VP (p.~\pageref{VP})\index{VP}}, {\bf VP\_fwhm (p.~\pageref{VP_fwhm})\index{VP fwhm}}。

実数次 nu と複素引数の複素エアリー、ベッセル、ハンケル関数は、Douglas
E. Amos, Sandia National Laboratories, SAND85-1018 (1985) によって実装
されたルーチンを含むライブラリを必要とします。これらのルーチンは、
netlib (http://netlib.sandia.gov) や、libopenspecfun
(https://github.com/JuliaLang/openspecfun) にあります。これらに対応す
るビルド時の設定オプションは {\bf --with-amos=$<$library directory$>$} です。
以下参照: {\bf Ai (p.~\pageref{Ai})\index{Ai}}, {\bf Bi (p.~\pageref{Bi})\index{Bi}}, {\bf BesselJ (p.~\pageref{BesselJ})\index{BesselJ}}, {\bf BesselY (p.~\pageref{BesselY})\index{BesselY}}, {\bf BesselI (p.~\pageref{BesselI})\index{BesselI}}, {\bf BesselK (p.~\pageref{BesselK})\index{BesselK}},
{\bf Hankel (p.~\pageref{Hankel})\index{Hankel}}。
複素指数積分は、netlib, libamos では提供していますが、libopenspecfun
にはありません。以下参照: {\bf expint (p.~\pageref{expint})\index{expint}}。

\subsubsection*{Synchrotron function}
\addcontentsline{toc}{subsubsection}{Synchrotron function}
\label{expressions functions SynchrotronF}%
\label{SynchrotronF}%
\index{SynchrotronF}%
(第 1) シンクロトロン関数 SynchrotronF(x) は、シンクロトロン放射のパワ
ー分布スペクトルを、臨界フォトンエネルギー (臨界周波数 vc) の単位で与
える x の関数として記述するものです。

\quad\quad $F(x) = x\intop_{x}^{\infty}K_{\nicefrac{5}{3}}(\nu)~d\nu$
 ここで、$K_{\nicefrac{5}{3}}$ は第 2 種変形ベッセル関数。
 
1.E-15 まで正確な近似の Chebyshev 係数は、MacLead (2000)
NuclInstMethPhysRes A443:540-545 から採用しています。

\subsubsection*{時刻関数 (Time functions)}
\addcontentsline{toc}{subsubsection}{時刻関数 (Time functions)}
\paragraph*{Time}
\addcontentsline{toc}{paragraph}{Time}
\label{expressions functions time}%
\label{time}%
\index{time}%
関数 {\bf time(x)} は現在のシステム時刻を返します。この値は {\bf strftime} 関
数で日時文字列に変換できますし、{\bf timecolumn} と組み合わせて相対的な日
時グラフを作成するのにも使えます。引数の型はそれが返すものを決定します。
引数が整数の場合は time() は現在の時刻を 1970 年 1 月 1 日からの整数と
して返し、引数が実数 (または複素数) ならば同様の値を実数として返します。
引数が文字列ならば、それを書式文字列であるとみなし、書式化された日時文
字列を提供するようそれを {\bf strftime} に渡します。
以下参照: {\bf time\_specifiers (p.~\pageref{time_specifiers})\index{time specifiers}}, {\bf timefmt (p.~\pageref{timefmt})\index{timefmt}}。
\paragraph*{Timecolumn}
\addcontentsline{toc}{paragraph}{Timecolumn}
\label{expressions functions timecolumn}%
\label{timecolumn}%
\index{timecolumn}%
{\bf timecolumn(N,{\tt"}timeformat{\tt"})} は、N 列目から始まる文字列データを日時デ
ータ値として読み、{\tt"}timeformat{\tt"} を使用して、それを {\tt"}Unix エポック (1970
年 1 月 1 日) からの秒数{\tt"} としてミリ秒精度で解釈します。書式パラメータ
の指定がない場合、デフォルトの {\bf set timefmt} による文字列を使います。
この関数は、plot か stats コマンドでの {\bf using} 指定でのみ有効です。以
下参照: {\bf plot datafile using (p.~\pageref{plot datafile using})\index{using}}。
\paragraph*{Tm\_structure}
\addcontentsline{toc}{paragraph}{Tm\_structure}
\label{epoch}%
\index{epoch}%
gnuplot は、内部では時刻を、Unix エポック 1970 年 1 月 1 日からの秒数
を表す 64 bit の浮動小数値として保持しています。これを時刻や日付として
解釈するために、それを POSIX 標準の構造体 {\bf struct\_tm} に変換します。
1 秒未満の秒数は、どんな場合でも tm\_sec() からは取得できないことに注意
してください。各要素には、以下の関数を利用して個別にアクセスできます。
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 {\bf tm\_hour(t)} 整数 0--23 の範囲の時間
\item
 {\bf tm\_mday(t)} 整数 1--31 の範囲のその月の日
\item
 {\bf tm\_min(t)}  整数 0--59 の範囲の分
\item
 {\bf tm\_mon(t)}  整数 0--11 の範囲のその年の月
\item
 {\bf tm\_sec(t)}  整数 0--59 の範囲の秒
\item
 {\bf tm\_wday(t)} 整数 0(日)-- 6(土) の範囲の曜日
\item
 {\bf tm\_yday(t)} 整数 0--365 の範囲のその年の日
\item
 {\bf tm\_year(t)} 整数 西暦
\end{itemize}
\paragraph*{Tm\_week}
\addcontentsline{toc}{paragraph}{Tm\_week}
\label{expressions functions tm_week}%
\label{time_specifiers tm_week}%
\label{tm_week}%
\index{tm week}%
\label{epidemiological week}%
\index{epidemiological week}%
関数 {\bf tm\_week(t, standard)} は、その引数を 1970 年 1 月 1 日からの秒数
での時刻とみなします。なお、関数名から POSIX の tm 構造体のメンバと思
うかもしれませんが、そうではありません。

standard = 0 の場合、これは ISO 8601 週曜日規則での週番号を返します。
これは、gnuplot の時刻書式 \%W に対応します。
standard = 1 の場合、これは CDC (アメリカ疾病予防管理センター) 疫学的
週曜日規則 (「疫学的週」) での週番号を返します。
これは、gnuplot の時刻書式 \%U に対応します。
これらに対応する、週曜日からカレンダー時刻に変換する逆関数については、
以下参照: {\bf weekdate\_iso (p.~\pageref{weekdate_iso})\index{weekdate iso}}, {\bf weekdate\_cdc (p.~\pageref{weekdate_cdc})\index{weekdate cdc}}。

解説: ISO の YYYY 年の 1 番の週は、YYYY 年 1 月 1 に一番近い月曜日から
始まります。これは、前の年になる可能性もあります。例えば、2008 年 12
月 30 日火曜日は、ISO の週曜日では 2009-W01-2 (2009 年の週番号 1 の第
2 日) となります。逆に、1 月の 1 日から 3 日までは、ISO の週番号 1 の
月曜より前になることがありえます。この場合、これらの日は、前の年の最後
の週番号の週に含まれることになります。例えば、2021 年 1 月 1 日金曜日
は、ISO の週曜日では 2020-W53-5 です。

アメリカ疾病予防管理センター (CDC) の定める疫学的週は、同様の週曜日規
則ですが、ISO 規則とは、月曜開始ではなく、日曜開始であるところが違いま
す。

\paragraph*{Weekdate\_iso}
\addcontentsline{toc}{paragraph}{Weekdate\_iso}
\label{expressions functions weekdate_iso}%
\label{time_specifiers weekdate_iso}%
\label{weekdate_iso}%
\index{weekdate iso}%
書式:
\preverbatim
\begin{verbatim}
    time = weekdate_iso( year, week [, day] )
\end{verbatim}
\postverbatim

この関数は、ISO 8601 週曜日での year(西暦), week(週番号), day(日番号)
の要素を、Unix エポックの 1970 年 1 月 1 日からの秒数でのカレンダー時
刻に変換します。週曜日系での名目上の年 (year) は、カレンダーでの年と必
ずしも一致しないことに注意してください。週番号 week は 1 から 53 の間
の整数です。日番号 day はオプションで、それが 0 かまたは省略した場合は
その週の開始時刻を返し、そうでなければ day は 1 (月曜) から 7 (日曜)
までの整数です。
カレンダー日を、ISO 規則での週番号に変換する逆関数に関する情報について
は、以下参照: {\bf tm\_week (p.~\pageref{tm_week})\index{tm week}}。

例:
\preverbatim
\begin{verbatim}
    # 1 列目に ISO 週番号を持つファイルからのデータの描画
    #     週      感染者  死亡者
    #     2020-05    432       1
    calendar_date(w) = weekdate_iso( int(w[1:4]), int(w[6:7]) )
    set xtics time format "%b\n%Y"
    plot FILE using (calendar_date(strcol(1))) : 2   title columnhead
\end{verbatim}
\postverbatim

\paragraph*{Weekdate\_cdc}
\addcontentsline{toc}{paragraph}{Weekdate\_cdc}
\label{expressions functions weekdate_cdc}%
\label{time_specifiers weekdate_cdc}%
\label{weekdate_cdc}%
\index{weekdate cdc}%
\index{epidemiological week}%
書式:
\preverbatim
\begin{verbatim}
    time = weekdate_cdc( year, week [, day] )
\end{verbatim}
\postverbatim

この関数は、CDC/MMWR (アメリカ疾病予防管理センター/疫学週報) の疫学的
週曜日での year(西暦), week(週番号), day(日番号) の要素を、Unix エポッ
クの 1970 年 1 月 1 日からの秒数でのカレンダー時刻に変換します。CDC 週
曜日規則は、ISO 規則とは、週が 1 = 日曜から 7 = 土曜まで、と定義されて
いる点に違いがあります。3 番目のパラメータが 0 または省略した場合は、
その週の開始時刻が返ります。
以下参照: {\bf tm\_week (p.~\pageref{tm_week})\index{tm week}}, {\bf weekdate\_iso (p.~\pageref{weekdate_iso})\index{weekdate iso}}。

\subsubsection*{Uigamma}
\addcontentsline{toc}{subsubsection}{Uigamma}
\label{expressions functions uigamma}%
\label{uigamma}%
\index{uigamma}%
{\bf uigamma(a, x)} は、上方 (正規化) 不完全ガンマ関数 Q(a, x) を返します
[NIST DLMF eq 8.2.4]。
逆に、下方不完全ガンマ関数 P(a,x) に対しては、以下参照: {\bf igamma (p.~\pageref{igamma})\index{igamma}}。
\\
 Q(a, x) + P(a, x) = 1 です。

\quad\quad uigamma$(a,z)=Q(a,x) = 1-P(a,x)$
 $=\frac{1}{\Gamma(z)}\intop_{x}^{\infty}t^{a-1}e^{-t}dt$
 
現在の実装は、Cephes library (Moshier 2000) によるものです。定義域は、
実数の a$>$0, 実数の x$>$=0 に制限されています。
試験段階:
そのうちに複素引数を処理する実装に置き換えられるでしょう。

\subsubsection*{Using 指定用関数 (using specifier functions)}
\addcontentsline{toc}{subsubsection}{Using 指定用関数 (using specifier functions)}
以下の関数は、データ入力時のみ有効です。通常それは、{\bf plot}, {\bf splot},
{\bf fit}, {\bf stats} のいずれかのコマンド上の {\bf using} 指定の入力列を使用する
数式内で使用します。しかしその関数の適用範囲は、実際の plot コマンド文
全体であり、例えばグラフタイトルの作成時の {\bf columnhead} の使用も含まれ
ます。

\paragraph*{Column}
\addcontentsline{toc}{paragraph}{Column}
\label{expressions functions column}%
\label{column}%
\index{column}%
関数 {\bf column(x)} は、plot, splot, stats コマンドの一部としてのみ使いま
す。これは、\$x\$ 列目の内容を数値として評価します。
文字列を持つと思われる列の場合は、代わりに stringcolumn(x) か、
timecolumn(x, {\tt"}timeformat{\tt"}) を使用してください。
以下参照: {\bf plot datafile using (p.~\pageref{plot datafile using})\index{using}}, {\bf stringcolumn (p.~\pageref{stringcolumn})\index{stringcolumn}}, {\bf timecolumn (p.~\pageref{timecolumn})\index{timecolumn}}。
\paragraph*{Columnhead}
\addcontentsline{toc}{paragraph}{Columnhead}
\label{expressions functions columnhead}%
\label{columnhead}%
\index{columnhead}%
関数 {\bf columnhead(x)} は、plot, splot, stats コマンドの一部としてのみ使
います。これは、データファイルの最初の行の \$x\$ 列目の内容を文字列とし
て評価します。典型的には、これは先頭行をグラフタイトルとして展開するの
に使用します。
以下参照: {\bf plot datafile using (p.~\pageref{plot datafile using})\index{using}}。
例:
\preverbatim
\begin{verbatim}
    set datafile columnheader
    plot for [i=2:4] DATA using 1:i title columnhead(i)
\end{verbatim}
\postverbatim
\paragraph*{Stringcolumn}
\addcontentsline{toc}{paragraph}{Stringcolumn}
\label{expressions functions stringcolumn}%
\label{stringcolumn}%
\index{stringcolumn}%
\label{expressions functions strcol}%
\label{strcol}%
\index{strcol}%
関数 {\bf stringcolumn(x)} は、データ描画か fit における {\bf using} 指定での
み使います。これは \$x\$ 列目の内容を文字列として返します。{\bf strcol(x)}
は、{\bf stringcolumn(x)} の省略形です。
その文字列を、時間や日付と認識させたい場合は、代わりに
timecolumn(x, {\tt"}timeformat{\tt"}) を使用してください。以下参照:
{\bf plot datafile using (p.~\pageref{plot datafile using})\index{using}}。
\paragraph*{Valid}
\addcontentsline{toc}{paragraph}{Valid}
\label{expressions functions valid}%
\label{valid}%
\index{valid}%
関数 {\bf valid(x)} は、データ描画か fit における {\bf using} 指定の式の中でし
か使いません。これは、明らかな NaN 値や、入力列内の予期せぬゴミを検出
したり、多分デフォルト値に置き換えたり、NaN を使ってさらに計算をするこ
とを避けたりするのに使えます。欠損値 ({\tt"}missing{\tt"}) と NaN (非数値) デー
タ値はどちらも不正と認識されますが、以下は重要ですが、gnuplot がその列
を本当に欠損値であると認識するか、または欠損値フラグを含んでいると認識
した場合、valid() を使用する数式が呼び出される前に、その入力行は捨てら
れてしまう、ということに注意してください。
以下参照: {\bf plot datafile using (p.~\pageref{plot datafile using})\index{using}}, {\bf missing (p.~\pageref{missing})\index{missing}}。

例:
\preverbatim
\begin{verbatim}
    # 箱のある認識できない値を、無視する代わりに、期待値である定数
    # prior として、箱全体に寄与するように扱う。
    plot DATA using 1 : (valid(2) ? $2 : prior) smooth unique
\end{verbatim}
\postverbatim

\subsubsection*{Value}
\addcontentsline{toc}{subsubsection}{Value}
\label{expressions functions value}%
\label{value}%
\index{value}%
A がユーザー定義変数の名前であれば、B = value({\tt"}A{\tt"}) は事実上 B = A と全
く同じです。これは、変数の名前自身が文字列変数に収められている場合に有
用です。以下参照: {\bf user-defined variables (p.~\pageref{user-defined variables})\index{variables}}。これは、変数名をデータファ
イルから読み取ることも可能にします。引数が数式である場合、value() はそ
の数式の値を返します。引数が文字列で、定義されている変数に対応するもの
がない場合、value() は NaN を返します。

\subsubsection*{単語の取り出しと単語数 (word, words)}
\addcontentsline{toc}{subsubsection}{単語の取り出しと単語数 (word, words)}
\label{counting_words}%
\index{counting words}%
\label{expressions functions word}%
\label{expressions functions words}%
\label{words}%
\index{words}%
\label{word}%
\index{word}%
{\bf word({\tt"}string{\tt"},n)} は、文字列 (string) の n 番目の単語を返します。例え
ば {\bf word({\tt"}one two three{\tt"},2)} は文字列 {\tt"}two{\tt"} を返します。

{\bf words({\tt"}string{\tt"})} は、文字列 (string) の単語数を返します。例えば、
{\bf words({\tt"} a b c d{\tt"})} は 4 を返します。

関数 {\bf word} と {\bf words} は、単一引用符、二重引用符で囲まれた文字列も、
限定的ですがサポートしています:
\preverbatim
\begin{verbatim}
     print words("\"double quotes\" or 'single quotes'")   # 3
\end{verbatim}
\postverbatim
開始引用符の前は、スペースか、または文字列の先頭でなければいけません。
これは、単語内、あるいは単語終わりにつくアポストロフィー (') は、それ
ぞれの単語の要素であると見なされることを意味します:
\preverbatim
\begin{verbatim}
     print words("Alexis' phone doesn't work") # 4
\end{verbatim}
\postverbatim
引用符文字のエスケープはサポートしていませんので、ある引用符を維持した
い場合は、それぞれを別の種類の引用符で囲まなければいけません:
\preverbatim
\begin{verbatim}
     s = "Keep \"'single quotes'\" or '\"double quotes\"'"
     print word(s, 2) # 'single quotes'
     print word(s, 4) # "double quotes"
\end{verbatim}
\postverbatim
最後の例では、引用符のエスケープが文字列の定義時のみに必要であることに
注意してください。

\index{split}%
\label{split}%
\index{split}%
\label{expressions functions split}%
{\bf split({\tt"}string{\tt"}, {\tt"}sep{\tt"})} は、
{\bf split({\tt"}string{\tt"}, {\tt"}sep{\tt"})} は、{\tt"}sep{\tt"} 内の文字をフィールドの区切りとして
使用し、文字列 {\tt"}string{\tt"} の中身を個々のフィールドに切り分けます。これは、
その要素が元の文字列のフィールドにそれぞれ対応する文字列の配列を返しま
す。2 つ目のパラメータ {\tt"}sep{\tt"} はオプションで、{\tt"}sep{\tt"} を省略した場合、ま
たは空白文字一つである場合は、フィールド文字列を任意個のホワイトスペー
ス (スペース、タブ、改ページ、改行、復帰) で切り分けます。それ以外の場
合は、区切りは {\tt"}sep{\tt"} 内の完全な文字列にマッチする必要があります。

以下の 3 つの例は、いずれも配列 [ {\tt"}A{\tt"}, {\tt"}B{\tt"}, {\tt"}C{\tt"}, {\tt"}D{\tt"} ] を生成します。
\preverbatim
\begin{verbatim}
   t1 = split( "A B C D" )
   t2 = split( "A B C D", " ")
   t3 = split( "A;B;C;D", ";")
\end{verbatim}
\postverbatim

しかし、以下のコマンド
\preverbatim
\begin{verbatim}
   t4 = split( "A;B; C;D", "; " )
\end{verbatim}
\postverbatim
は、2 つの文字列のみを持つ配列 [ {\tt"}A;B{\tt"}, {\tt"}C;D{\tt"} ] を生成しますが、それは、
2 文字のフィールド区切り文字列 {\tt"}; {\tt"} が 1 つしか見つからないからです。

注意: 文字列を、1 文字ずつの配列に保存するために、区切りとして空文字を
設定することは、現在は実装されていません。それは、代わりに 1 文字の部
分文字列を使うことで実現できます:   Array[i] = {\tt"}string{\tt"}[i:i]

\index{join}%
\label{join}%
\index{join}%
\label{expressions functions join}%
{\bf join(array, {\tt"}sep{\tt"})} は、配列の文字列要素を、{\tt"}sep{\tt"} の文字列で区切られ
たフィールドの列として一つの文字列に連結します。文字列でない配列要素は、
空のフィールドを生成します。この逆に {\bf split} 関数は一つの文字列を複数
のフィールドに切り分けて一つの配列を生成します。
例:
\preverbatim
\begin{verbatim}
   array A = ["A", "B", , 7, "E"]
   print join(A,";")
         A;B;;;E
\end{verbatim}
\postverbatim

\index{trim}%
\label{trim}%
\index{trim}%
{\bf trim({\tt"}  padded string {\tt"})} は、元の文字列の前後にある空白部分を取り除
いた文字列を返します。これは、余計な空白を持ちうる入力データ列の文字列
同士を比較する際に有用です。例:
\preverbatim
\begin{verbatim}
    plot FOO using 1:( trim(strcol(3)) eq "A" ? $2 : NaN )
\end{verbatim}
\postverbatim

\subsubsection*{Zeta}
\addcontentsline{toc}{subsubsection}{Zeta}
\label{expressions functions zeta}%
\label{zeta}%
\index{zeta}%
\label{Riemann}%
\index{Riemann}%
zeta(s) は、複素変数、複素数値のリーマンゼータ関数です。
\quad\quad $\zeta(s) = \Sigma^{\infty}_{k=1}k^{-s}$
 
この実装は、P. Borwein [2000] Canadian Mathematical Society Conference
Proceedings でアルゴリズム 3 として記述されている多項式級数を使用して
います。名目上の精度は、複素平面上で 1.e-16 です。しかし、これは、ゼー
タ関数の自明でない零点が完全に 0 と評価されることを保証はしません。

\subsection*{演算子 (operators)}
\addcontentsline{toc}{subsection}{演算子 (operators)}
\label{expressions operators}%
\label{operators}%
\index{operators}%
{\bf gnuplot} の演算子は、C 言語の演算子とほぼ同じですが、特に注意がなけれ
ば全ての演算子が整数、実数、複素数の引数を取ることができます。また、
FORTRAN で使える ** (累乗) 演算子もサポートされています。

演算子の優先順位は Fortran や C と同じです。それらの言語同様、演算の評
価される順序を変えるためにかっこが使われます。よって -2**2 = -4 で、
(-2)**2 = 4 です。

\subsubsection*{単項演算子 (Unary)}
\addcontentsline{toc}{subsubsection}{単項演算子 (Unary)}
\label{expressions operators unary}%
\label{operators unary}%
\label{unary}%
\index{unary}%
以下は、単項演算子の一覧です:


\begin{center}
\index{factorial}%
\index{negation}%
\index{one's complement}%
\index{operator precedence}%
\index{cardinality}%
\begin{tabular}{|lcl|} \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 の要素数 \\
\hline
\end{tabular}
\end{center}


説明に星印 (*) のついた演算子の引数は整数でなければなりません。

階乗演算子は、N! が十分小さければ (64 ビット整数では N $<$= 20) 整数を返
し、大きな N の値に対しては実数での近似値を返します。

\label{cardinality}%
\index{cardinality}%
基数オペレータ $|$...$|$ は、配列 A の要素数 $|$A$|$ を返します。データブロッ
ク \$DATA に適用した場合は、$|$\$DATA$|$ はデータ行数を返します。
\subsubsection*{二項演算子 (Binary)}
\addcontentsline{toc}{subsubsection}{二項演算子 (Binary)}
\label{expressions operators binary}%
\label{operators binary}%
以下は、二項演算子の一覧です:


\begin{center}
\index{bitwise operators}%
\index{string operators}%
\index{modulo}%
\index{exponentiation}%
\begin{tabular}{|lcl|} \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~<~ & \verb~a<b~ & より小さい\\
\verb~<=~ & \verb~a<=b~ & 以下\\
\verb~>~ & \verb~a>b~ & より大きい\\
\verb~>=~ & \verb~a>=b~ & 以上\\
\verb~<<~ & \verb~0xff<<1~ & 符号なし左シフト\\
\verb~>>~ & \verb~0xff>>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~ & 文字列が等しくない\\
\hline
\end{tabular}
\end{center}


説明に星印 (*) のついた演算子の引数は整数でなければなりません。
大文字の A,B は演算子が文字列引数を要求することを意味します。

論理演算子の AND (\&\&) と OR ($|$$|$) は C 言語同様に必要最小限の評価しかし
ません。すなわち、{\bf \&\&} の第 2 引数は、第 1 引数が偽ならば評価されませ
んし、{\bf $|$$|$} の第 2 引数は、第 1 引数が真ならば評価されません。

累次評価 (,) は、カッコの中でのみ評価され、左から右へ順に実行すること
が保証され、最も右の式の値が返されます。
\subsubsection*{三項演算子 (Ternary)}
\addcontentsline{toc}{subsubsection}{三項演算子 (Ternary)}
\label{expressions operators ternary}%
\label{operators ternary}%
\label{ternary}%
\index{ternary}%
一つだけ三項演算子があります:


\begin{center}
\begin{tabular}{|lcl|} \hline
\multicolumn{3}{|c|}{三項演算子} \\ \hline \hline
記号 & 例 & 説明 \\ \hline
\verb~?:~ & \verb~a?b:c~ & 三項演算子\\
\hline
\end{tabular}
\end{center}


三項演算子は C のものと同じ働きをします。最初の引数 (a) は整数でなけれ
ばいけません。この値が評価され、それが真 (ゼロでない) ならば 2 番目の
引数 (b) が評価されその値が返され、そうでなければ 3 番目の引数 (c) が
評価され、その値が返されます。

三項演算子は、区分的に定義された関数や、ある条件が満たされた場合にのみ
点を描画する、といったことを行なう場合に有用です。

例:

0 $<$= x $<$ 1 では sin(x) に、1 $<$= x $<$ 2 では 1/x に等しくて、それ以外の
x では定義されない関数を描画:
\preverbatim
\begin{verbatim}
     f(x) = 0<=x && x<1 ? sin(x) : 1<=x && x<2 ? 1/x : 1/0
     plot f(x)
\end{verbatim}
\postverbatim
{\bf gnuplot} は描画時は未定義値に対しては何も表示せずにただ無視するので、
最後の場合の関数 (1/0) は点を全く出力しないことに注意してください。ま
た、この関数描画の描画スタイルが lines (線描画) の場合、不連続点 (x=1)
の所も連続関数として線が結ばれることにも注意してください。その点を不連
続になるようにするには、関数を 2 つの部分それぞれに分けてください。

ファイル 'file' のデータで、4 列目のデータが負でないときだけ、1 列目の
データに関する 2 列目と 3 列目のデータの平均値を描画:

\preverbatim
\begin{verbatim}
     plot 'file' using 1:( $4<0 ? 1/0 : ($2+$3)/2 )
\end{verbatim}
\postverbatim

{\bf using} の書式の説明に関しては、以下参照: {\bf plot datafile using (p.~\pageref{plot datafile using})\index{using}}。
\subsection*{和 (summation)}
\addcontentsline{toc}{subsection}{和 (summation)}
\label{expressions operators summation}%
\label{operators summation}%
\label{summation}%
\index{summation}%
和の式は、以下の形式で表します:
\preverbatim
\begin{verbatim}
     sum [<var> = <start> : <end>] <expression>
\end{verbatim}
\postverbatim
ここで $<$var$>$ は、$<$start$>$ から $<$end$>$ までの整数値を順に取る整数変数とし
て扱われます。その各値に対して、式 $<$expression$>$ の値が合計値に追加され、
最終的な合計値がこの和の式の値となります。
例:
\preverbatim
\begin{verbatim}
     print sum [i=1:10] i
         55.
     # 以下は plot 'data' using 1:($2+$3+$4+$5+$6+...) と同等
     plot 'data' using 1 : (sum [col=2:MAXCOL] column(col))
\end{verbatim}
\postverbatim
$<$expression$>$ は、必ずしも変数 $<$var$>$ を含む必要はありません。$<$start$>$ と
$<$end$>$ は変数値や数式で指定もできますが、それらの値は動的に変更すること
はできません。そうでないと副作用が起こり得ます。$<$end$>$ が $<$start$>$ より
小さい場合は、和の値は 0 となります。
\subsection*{定義済み変数 (Gnuplot-defined variables)}
\addcontentsline{toc}{subsection}{定義済み変数 (Gnuplot-defined variables)}
\label{expressions gnuplot-defined}%
\label{gnuplot-defined}%
\index{gnuplot defined}%
\label{gnuplot-defined variables}%
\label{GPVAL}%
\index{GPVAL}%
\label{gpval}%
\index{gpval}%
gnuplot は、プログラムの現在の内部状態と直前の描画を反映するような読み
出し専用の変数をいくつか持っています。これらの変数の名前は、例えば
GPVAL\_TERM, GPVAL\_X\_MIN, GPVAL\_X\_MAX, GPVAL\_Y\_MIN のように {\tt"}GPVAL\_{\tt"} で
始まります。これらすべての一覧とその値を見るには、{\bf show variables all}
と入力してください。ただし、軸のパラメータに関連する値 (範囲、対数軸で
あるか等) は、現在 {\bf set} したものではなく、最後に描画されたものが使用
されます。

例: 点 [X,Y] のスクリーン比での座標を計算する方法
\preverbatim
\begin{verbatim}
    GRAPH_X = (X - GPVAL_X_MIN) / (GPVAL_X_MAX - GPVAL_X_MIN)
    GRAPH_Y = (Y - GPVAL_Y_MIN) / (GPVAL_Y_MAX - GPVAL_Y_MIN)
    SCREEN_X = GPVAL_TERM_XMIN + GRAPH_X * (GPVAL_TERM_XMAX - GPVAL_TERM_XMIN)
    SCREEN_Y = GPVAL_TERM_YMIN + GRAPH_Y * (GPVAL_TERM_YMAX - GPVAL_TERM_YMIN)
    FRAC_X = SCREEN_X * GPVAL_TERM_SCALE / GPVAL_TERM_XSIZE
    FRAC_Y = SCREEN_Y * GPVAL_TERM_SCALE / GPVAL_TERM_YSIZE
\end{verbatim}
\postverbatim

\index{errors}%
\index{error state}%
読み出し専用変数 GPVAL\_ERRNO は、任意の gnuplot コマンドがあるエラーの
ために早く終わってしまった場合に 0 でない値にセットされ、直前のエラー
メッセージは文字列変数 GPVAL\_ERRMSG に保存されます。GPVAL\_ERRNO と
GPVAL\_ERRMSG は、コマンド {\bf reset errors} を使ってクリアできます。

{\bf mouse} 機能が使える対話型入出力形式は、{\tt"}MOUSE\_{\tt"} で始まる読み出し専用
変数をいくつか持っています。詳細は、以下参照: {\bf mouse variables (p.~\pageref{mouse variables})\index{variables}}。

{\bf fit} 機能は、{\tt"}FIT\_{\tt"} で始まるいくつかの変数を使用しますので、そのよう
な名前を使うのは避けるべきでしょう。{\bf set fit errorvariables} を使用す
ると、各当てはめ変数のエラーは、そのパラメータ名に {\tt"}\_err{\tt"} を追加した変
数に保存されます。詳細は、以下参照: {\bf fit (p.~\pageref{fit})\index{fit}}。

以下も参照: {\bf user-defined variables (p.~\pageref{user-defined variables})\index{variables}}, {\bf reset errors (p.~\pageref{reset errors})\index{errors}},
{\bf mouse variables (p.~\pageref{mouse variables})\index{variables}}, {\bf fit (p.~\pageref{fit})\index{fit}}。

\subsection*{ユーザ定義の変数と関数 (User-defined)}
\addcontentsline{toc}{subsection}{ユーザ定義の変数と関数 (User-defined)}
\label{expressions user-defined}%
\label{functions user-defined}%
\label{user-defined variables}%
\label{user-defined}%
\index{user defined}%
\label{variables}%
\index{variables}%
新たなユーザ定義変数と 1 個から 12 個までの引数を持つユーザ定義関数を、
任意の場所で定義したり使ったりすることができます。それは {\bf plot} コマン
ド上でも可能です。

ユーザ定義関数書式:
\preverbatim
\begin{verbatim}
     <func-name>( <dummy1> {,<dummy2>} ... {,<dummy12>} ) = <expression>
\end{verbatim}
\postverbatim

ここで $<$expression$>$ は、仮変数 $<$dummy1$>$ から $<$dummy12$>$ で表される数式
です。この形式の関数定義は、1 行での使用に制限されています。より複雑で
複数行からなる関数は、関数ブロックの仕組みを使えば定義できます (現バー
ジョンでの新機能)。以下参照: {\bf function blocks (p.~\pageref{function blocks})\index{blocks}}。

ユーザ定義変数書式:
\preverbatim
\begin{verbatim}
     <variable-name> = <constant-expression>
\end{verbatim}
\postverbatim

例:
\preverbatim
\begin{verbatim}
     w = 2
     q = floor(tan(pi/2 - 0.1))
     f(x) = sin(w*x)
     sinc(x) = sin(pi*x)/(pi*x)
     delta(t) = (t == 0)
     ramp(t) = (t > 0) ? t : 0
     min(a,b) = (a < b) ? a : b
     comb(n,k) = n!/(k!*(n-k)!)
     len3d(x,y,z) = sqrt(x*x+y*y+z*z)
     plot f(x) = sin(x*a), a = 0.2, f(x), a = 0.4, f(x)
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     file = "mydata.inp"
     file(n) = sprintf("run_%d.dat",n)
\end{verbatim}
\postverbatim

最後の 2 行の例は、ユーザ定義文字列変数と、ユーザ定義文字列関数を意味
しています。

\index{NaN}%
\index{pi}%
変数 {\bf pi} (3.14159...) と {\bf NaN} (IEEE 非数 ({\tt"}Not a Number{\tt"})) はあらか
じめ定義されています。これらが必要なければ、他のものに再定義することも
可能ですし、以下のようにして元の値に復帰することもできます:

\preverbatim
\begin{verbatim}
     NaN = GPVAL_NaN
     pi  = GPVAL_pi
\end{verbatim}
\postverbatim

他にもいくつかの変数が、例えば対話型入出力形式でのマウス操作や当てはめ
(fit) などの gnuplot の動作状態に応じて定義されます。詳細は
以下参照: {\bf gnuplot-defined variables (p.~\pageref{gnuplot-defined variables})\index{variables}}。

ある変数 V が既に定義されているかどうかは、式 exists({\tt"}V{\tt"}) でチェックで
きます。例:
\preverbatim
\begin{verbatim}
     a = 10
     if (exists("a")) print "a is defined"
     if (!exists("b")) print "b is not defined"
\end{verbatim}
\postverbatim

変数名や関数名の命名規則は、大抵のプログラミング言語と同じで、先頭はア
ルファベットで、その後の文字はアルファベット、数字、{\tt"}\_{\tt"} が使えます。

各関数の定義式は、'GPFUN\_' という接頭辞を持つ特別な文字列値変数として
利用できます。

例:
\preverbatim
\begin{verbatim}
     set label GPFUN_sinc at graph .05,.95
\end{verbatim}
\postverbatim

以下参照: {\bf show functions (p.~\pageref{show functions})\index{functions}}, {\bf functions (p.~\pageref{functions})\index{functions}}, {\bf gnuplot-defined variables (p.~\pageref{gnuplot-defined variables})\index{variables}},
{\bf macros (p.~\pageref{macros})\index{macros}}, {\bf value (p.~\pageref{value})\index{value}}。
\subsection*{配列 (arrays)}
\addcontentsline{toc}{subsection}{配列 (arrays)}
\label{arrays}%
\index{arrays}%
\index{cardinality}%
配列は、ユーザ変数の添字付きリストとして実装されています。一つの配列の
要素は、一つの変数型には限定されていません。配列は、参照する前に明示的
に作られていなければいけません。配列を作成した後で、そのサイズを変更す
ることはできません。配列の要素は、宣言時に提供されてない限り、最初は未
定義 (undefined) です。ほとんどの場面で、名前付きユーザ変数の代わりに
配列要素を利用できます。

配列 A の要素数は、数式 $|$A$|$ で取得できます。

例:
\preverbatim
\begin{verbatim}
    array A[6]
    A[1] = 1
    A[2] = 2.0
    A[3] = {3.0, 3.0}
    A[4] = "four"
    A[6] = A[2]**3
    array B[6] = [ 1, 2.0, A[3], "four", , B[2]**3 ]
    array C = split("A B C D E F")
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
    do for [i=1:6] { print A[i], B[i] }
        1 1
        2.0 2.0
        {3.0, 3.0} {3.0, 3.0}
        four four
        <undefined> <undefined>
        8.0 8.0
\end{verbatim}
\postverbatim

注意: 配列と変数は、同じ名前空間を共有します。例えば、あらかじめ FOO
という名前の配列がある場合、FOO という名前の変数に文字列を割り当てると
配列を破壊します。

配列の名前を {\bf plot}, {\bf splot}, {\bf fit}, {\bf stats} コマンドに与えることもで
きます。その場合、配列の添字がファイルの 1 列目の値で (1 から size ま
で)、その値 A[i] の実数部分 real(A[i]) がファイルの 2 列目、虚数部分
imag(A[i]) がファイルの 3 列目であるようなデータファイルを与えたことと
同等になります。

例:
\preverbatim
\begin{verbatim}
    array A[200]
    do for [i=1:200] { A[i] = sin(i * pi/100.) }
    plot A title "sin(x) in centiradians"
\end{verbatim}
\postverbatim

ただし、plot 時に複素数値配列の虚数部分を描画したい場合、その値は
imag(A[\$1]) かまたは \$3 として参照できます。よって以下の 2 つのコマン
ドは同等です。

\preverbatim
\begin{verbatim}
    plot A using (real(A[$1])) : (imag(A[$1]))
    plot A using 2:3
\end{verbatim}
\postverbatim

\subsubsection*{配列関数 (array functions)}
\addcontentsline{toc}{subsubsection}{配列関数 (array functions)}
\label{arrays functions}%
\label{arrays slice}%
\label{slice}%
\index{slice}%
\index{split}%
gnuplot バージョン 6 より、配列を関数に渡すことも、返り値にすること
もできるようになりました。例えば、2 つのサイズの同じ数値配列のドット積
(内積) は以下のように定義できます。

\preverbatim
\begin{verbatim}
    dot(A,B) = (|A| != |B|) ? NaN : sum [i=1:|A|] A[i] * B[i]
\end{verbatim}
\postverbatim

配列をやりとりする組み込み関数には、配列の分割操作 array[min:max] や添
字取得関数 index(Array,value) があります。

\preverbatim
\begin{verbatim}
    T = split("A B C D E F")
    U = T[3:4]
    print T
       [ "A", "B", "C", "D", "E", "F" ]
    print U
       [ "C", "D" ]
    print index( T, "D" )
       4
\end{verbatim}
\postverbatim

この例の T と U は、それが以前にどのように宣言されていたかどうかに関わ
らず、この例の時点では配列になることに注意してください。

\subsubsection*{配列の添字付け (Array indexing)}
\addcontentsline{toc}{subsubsection}{配列の添字付け (Array indexing)}
\label{arrays indexing}%
\index{index}%
要素が N 個の配列 (array) の添字は、1 から N までとなります。
配列 A の i 番目の要素は、A[i] と参照します。
組み込み関数 {\bf index(Array, $<$value$>$)} は、A[i] が $<$value$>$ に等しいよう
な整数 i を返します。ここで、$<$value$>$ は数値 (整数、実数、または複素数)
と評価される任意の数式、あるいは文字列です。配列の要素とは型と値の両方
が一致する必要があります。見つからない場合は、0 を返します。

\preverbatim
\begin{verbatim}
   array A = [ 4.0, 4, "4" ]
   print index( A, 4 )
         2
   print index( A, 2.+2. )
         1
   print index( A, "D4"[2:2] )
         3
\end{verbatim}
\postverbatim

\section*{フォント}
\addcontentsline{toc}{section}{フォント}
\label{fonts}%
\index{fonts}%
gnuplot それ自身にはどんなフォントも含まれてはおらず、外部フォント処理
に頼っているだけで、その細部は悲しいことに出力形式毎に異なります。ここ
では、複数の出力形式に適用されるフォント機構について説明します。ここに
上げたもの以外の出力形式でのフォントの使用に関しては、その出力形式のド
キュメントを参照してください。

一時的に、例えば Adobe Symbol フォントのような特別なフォントに切り替え
ることでアルファベットではない記号を入れることも可能ですが、現在は、
UTF-8 エンコーディングを使用して、他の文字と同様にその記号を扱うのがよ
り良い方法でしょう。その他に、必要な記号の Unicode コードポイントを、
拡張文字列モード内でエスケープシーケンスとして指定する手もあります。
以下参照: {\bf encoding (p.~\pageref{encoding})\index{encoding}}, {\bf unicode (p.~\pageref{unicode})\index{unicode}}, {\bf locale (p.~\pageref{locale})\index{locale}}, {\bf escape sequences (p.~\pageref{escape sequences})\index{sequences}}。

\subsection*{Cairo (pdfcairo, pngcairo, epscairo, wxt 出力形式)}
\addcontentsline{toc}{subsection}{Cairo (pdfcairo, pngcairo, epscairo, wxt 出力形式)}
\label{fonts cairo}%
\label{fontconfig}%
\index{fontconfig}%
\label{fonts fontconfig}%
\index{fonts}%
\index{pdf}%
\index{png}%
\index{wxt}%
出力形式により (例えば cairo 系の出力形式すべて)、fontconfig システム
ライブラリを使ってフォントにアクセスします。
\href{http://fontconfig.org/fontconfig-user.html}{\tt fontconfig ユーザマニュアル
}

を参照してください。これは、gnuplot で一般的な名前やサイズでフォントを
要求することを可能にし、必要ならば fontconfig に同等のフォントを代用さ
せることもできるので、通常はこれで十分でしょう。以下は、多分いずれも機
能します:
\preverbatim
\begin{verbatim}
    set term pdfcairo font "sans,12"
    set term pdfcairo font "Times,12"
    set term pdfcairo font "Times-New-Roman,12"
\end{verbatim}
\postverbatim

\subsection*{Gd (png, gif, jpeg, sixel terminals)}
\addcontentsline{toc}{subsection}{Gd (png, gif, jpeg, sixel terminals)}
\label{gd}%
\index{gd}%
\label{fonts gd}%
\index{fonts}%
\index{png}%
\index{jpeg}%
\index{gif}%
\index{sixel}%
png, gif, jpeg, sixelgd 出力形式のフォント処理は、外部ライブラリ libgd
が行います。これは、最低でも {\bf tiny}, {\bf small}, {\bf medium}, {\bf large},
{\bf giant} の 5 種類の基本フォントを提供しますが、これは伸縮させたり回転
したりはできません。これらの一つを使用する際は、{\bf font} キーワードの代
わりに上のキーワードを指定します。例:
\preverbatim
\begin{verbatim}
    set term png tiny
\end{verbatim}
\postverbatim

多くのシステムで、libgd は、fontconfig ツールが提供する一般的なフォン
ト処理も使用できます。以下参照: {\bf fontconfig (p.~\pageref{fontconfig})\index{fontconfig}}。
fontconfig のないシステム上では、大抵 Adobe フォント (*.pfa) と
TrueType フォント (*.ttf) へのアクセスを提供しています。その場合フォン
ト自身の名前ではなく、フォントファイルの名前を、{\tt"}$<$face$>$ \{,$<$size$>$\}{\tt"} の
形式で与えなければいけません。
ここで、$<$face$>$ はフォントファイルのフルパス名か、または環境変数
GDFONTPATH で指示されるディレクトリの一つの中のファイル名の先頭部分、
のいずれかです。よって、'set term png font {\tt"}Face{\tt"}' は、
$<$あるディレクトリ$>$/Face.ttf か $<$あるディレクトリ$>$/Face.pfa というファ
イル名のフォントを探そうとします。例えば、GDFONTPATH に
{\bf /usr/local/fonts/ttf:/usr/local/fonts/pfa} が含まれている場合は、以下
のコマンドの 2 つずつはいずれも同じことになります:
\preverbatim
\begin{verbatim}
    set term png font "arial"
    set term png font "/usr/local/fonts/ttf/arial.ttf"
    set term png font "Helvetica"
    set term png font "/usr/local/fonts/pfa/Helvetica.pfa"
\end{verbatim}
\postverbatim
デフォルトのフォントサイズも同時に指定するには:
\preverbatim
\begin{verbatim}
    set term png font "arial,11"
\end{verbatim}
\postverbatim

{\tt"}set term{\tt"} コマンドでフォントを指定しなかった場合、gnuplot は環境変数
GNUPLOT\_DEFAULT\_GDFONT を参照します。
\subsection*{Postscript (カプセル化 postscript *.eps も)}
\addcontentsline{toc}{subsection}{Postscript (カプセル化 postscript *.eps も)}
\label{fonts postscript}%
\index{fonts}%
\index{postscript}%
\index{eps}%
PostScript フォント処理は、プリンタか表示ソフトが行います。もし、あな
たのコンピュータにフォントが一切なくても、gnuplot は正しい PostScript
ファイル、またはカプセル化 PostScript (*.eps) ファイルを生成できます。
gnuplot は単に出力ファイル中にフォントを名前として入れるだけで、プリン
タや表示ソフトがその名前からフォントを見つけるか近似することを仮定して
います。

PostScript プリンタや表示ソフトはすべて、標準的な Adobe フォントセット
{\bf Times-Roman}, {\bf Helvetica}, {\bf Courier}, {\bf Symbol} は知っているはずです。
多分その他にも多くのフォントが使えるようになっていると思いますが、それ
ら特定のフォントセットはあなたのシステムやプリンタの設定に依存します。
gnuplot は、それは知りませんし気にもしません。gnuplot が作成した *.ps
や *.eps 出力は、あなたの要求したフォント名を単に持っているだけです。

よって、
\preverbatim
\begin{verbatim}
    set term postscript eps font "Times-Roman,12"
\end{verbatim}
\postverbatim
は、すべてのプリンタや表示ソフトに適切な出力を作成します。

一方、
\preverbatim
\begin{verbatim}
    set term postscript eps font "Garamond-Premier-Pro-Italic"
\end{verbatim}
\postverbatim
は、正しい PostScript 出力ファイルを作成しますが、それは特別な専用フォ
ントを参照しているので、要求されたその特定のフォントは一部のプリンタや
表示ソフトでしか表示できないでしょう。大抵の場合は別なフォントで代用さ
れます。

しかし、指定したフォントを出力ファイル中に埋め込んで、どんなプリンタで
もそれを使うようにすることも可能です。これには、あなたのシステムに適切
なフォント記述ファイルがあることが必要となります。この方法でフォントを
埋め込む場合、特定のライセンスが必要となるフォントファイルもあることに
注意してください。より詳細な説明や例については、以下参照:
{\bf postscript fontfile (p.~\pageref{postscript fontfile})\index{fontfile}}。
\section*{ヘルプの用語解説 (Glossary)}
\addcontentsline{toc}{section}{ヘルプの用語解説 (Glossary)}
\label{glossary}%
\index{glossary}%
\index{terminal}%
\index{screen}%
\index{record}%
\index{block}%
{\bf gnuplot} は 30 年以上かけて開発されているので、コマンドやこの文書で使
われている用語の意味は、現在の普通の用法とは違っているかもしれません。
この節では、{\bf gnuplot} 内ではそれらの用語のいくつかをどのように使ってい
るかを説明します。

用語 {\tt"}出力形式 (terminal){\tt"} は、出力モードのことを意味し、あなたがキー
ボード入力するもの (ターミナル) を指しているのではありません。例えば、
コマンド {\bf set terminal pdf} は、その後の描画コマンドが PDF 出力を生成
することを意味します。通常は、その PDF 出力を書き出す場所を指定するコ
マンド {\bf set output {\tt"}filename{\tt"}} を一緒に使う必要があるでしょう。

{\tt"}ページ (page){\tt"}、{\tt"}表示画面 (screen){\tt"}、{\tt"}キャンバス (canvas){\tt"} は、
{\bf gnuplot} がアクセス可能な領域全体を指します。デスクトップではそれはウ
ィンドウ全体を指し、プロッタでは、一枚の紙全体を指します。

データファイルに関する議論では、用語 {\tt"}行 (record){\tt"} は、ファイルの一行
の文字列、すなわち、改行文字や行末文字同士に挟まれた文字列を指します。
{\tt"}点 (point){\tt"} は、一行から取り出した一つのデータです。データの
{\tt"}ブロック (block){\tt"} は、空行で区切られた連続した複数の行からなる集合で
す。データファイルの議論の中で {\tt"}line{\tt"} が参照される場合は、これはブロッ
クの部分集合を指します。{\tt"}データのブロック (data block){\tt"} という言葉は、
インラインデータの名前付きブロックを指すのにも使われています。以下参照:
{\bf datablocks (p.~\pageref{datablocks})\index{datablocks}}。

\section*{インラインデータとデータブロック (inline data and datablocks)}
\addcontentsline{toc}{section}{インラインデータとデータブロック (inline data and datablocks)}
\label{inline data}%
\label{inline}%
\index{inline}%
\label{data inline}%
\label{datablocks}%
\index{datablocks}%
\label{data datablocks}%
gnuplot のコマンド入力の中にデータを埋め込む仕組みは 2 種類用意されて
います。まず、特殊ファイル名 '-' が plot コマンド中に与えると、その
plot コマンド以下に続く行がインラインデータと解釈されます。以下参照:
{\bf special-filenames (p.~\pageref{special-filenames})\index{special-filenames}}。この方法で提供されるデータは、その plot コマンド
で一度しか使用できません。

もう一つは、ヒアドキュメントとして名前付きのデータブロックを定義する方
法です。その名前付きのデータは残るので、複数の plot コマンドで参照でき
ます。例:
\preverbatim
\begin{verbatim}
    $Mydata << EOD
    11 22 33 first line of data
    44 55 66 second line of data
    # データファイル同様コメントも機能する
    77 88 99
    EOD
    stats $Mydata using 1:3
    plot $Mydata using 1:3 with points, $Mydata using 1:2 with impulses
\end{verbatim}
\postverbatim

データブロック名は、他の変数と区別するために、最初の文字を \$ にする必
要があります。データの終わりの区切り (上の例では EOD) は、任意のアルフ
ァベット、数字からなる文字列で構いません。

データブロック定義は、繰り返しや if/else/while 条件のかっこの内部には
置くことはできません。

データを名前付きブロックに保存するかわりに、実行可能コマンドを保存する
同様の仕組みについては、以下参照: {\bf function blocks (p.~\pageref{function blocks})\index{blocks}}。

コマンド {\bf undefine} を使えば、保存した名前付きデータブロックを削除でき
ます。{\bf undefine \$*} は、すべての名前付きデータブロック、関数ブロックを
一度に削除します。
\section*{繰り返し (iteration)}
\addcontentsline{toc}{section}{繰り返し (iteration)}
\label{iteration}%
\index{iteration}%
\label{iterate}%
\index{iterate}%
\gpinsetfigure{figure_newsyntax}
gnuplot は、繰り返し (iteration) コマンドやブロック構造を扱うための
if/else/while/do をサポートしています。以下参照: {\bf if (p.~\pageref{if})\index{if}}, {\bf while (p.~\pageref{while})\index{while}}, {\bf do (p.~\pageref{do})\index{do}}。
コマンド {\bf plot}, {\bf set} で単純な繰り返しも可能です。以下参照:
{\bf plot for (p.~\pageref{plot for})\index{for}}。複数のコマンドを包含する一般的な繰り返しは、下で紹介するブ
ロック構造を利用することで行えます。
関連する新しい機能である数式型の以下も参照: {\bf summation (p.~\pageref{summation})\index{summation}}。
以下は、これらの新しい構文機能をいくつか利用した例です:
\preverbatim
\begin{verbatim}
     set multiplot layout 2,2
     fourier(k, x) = sin(3./2*k)/k * 2./3*cos(k*x)
     do for [power = 0:3] {
         TERMS = 10**power
         set title sprintf("%g term Fourier series",TERMS)
         plot 0.5 + sum [k=1:TERMS] fourier(k,x) notitle
     }
     unset multiplot
\end{verbatim}
\postverbatim

\index{iteration specifier}%
繰り返しは、以下のような書式による繰り返し指定で制御します。

\preverbatim
\begin{verbatim}
    for [<var> in "string of N elements"]
    for [<var> = <start> : <end> { : <increment> }]
    for [<var> in Array]
\end{verbatim}
\postverbatim

最初の書式では $<$var$>$ は文字列変数で、その後ろに指定した文字列に含まれ
る 1 番目から N 番目までの単語文字列を順に値として取ります。
2 番目の書式では、$<$start$>$, $<$end$>$, $<$increment$>$ は整数、または整数値を取
る数式です。

3 番目の書式では $<$var$>$ は配列 Array の要素を順番に取りますが、要素が数
値であるか文字列であるかは考慮しません。未定義要素は、黙ってスキップし
ます。配列要素に渡る繰り返しは試験段階です (詳細は、gnuplot の安定リリ
ース版が出るまえに変更されるかもしれません)。

\index{scope}%
繰り返し変数の有効範囲 (scope) は、その繰り返しの中だけです。以下参照:
{\bf scope (p.~\pageref{scope})\index{scope}}。繰り返し変数の値を、その実行ブロック内で永続的に変更すること
はできません。繰り返し変数が繰り返しの前に値を持っていたとしたら、その
値は繰り返しの終了時に保持、または復帰されます。
例えば、以下のコマンドは、1 2 3 4 5 6 7 8 9 10 A を出力します。

\preverbatim
\begin{verbatim}
    i = "A"
    do for [i=1:10] { print i; i=10; }
    print i
\end{verbatim}
\postverbatim

\section*{線種、色、スタイル (linetypes)}
\addcontentsline{toc}{section}{線種、色、スタイル (linetypes)}
\label{linetypes}%
\index{linetypes}%
\label{colors}%
\index{colors}%
とても古い版の gnuplot では、各出力形式は {\tt"}線種 (linetype){\tt"} をある程度
用意していて、それらは色、太さ、点線/破線のパターン、または色と点線/破
線の組合せで違いを表現していました。それらの色、点線/破線のパターンは、
出力形式を越えて同じものになるという保証は何もありませんでしたが、多く
は同じ色の列、赤/緑/青/紫/水色/黄色を使用していました。この古い挙動は、
今は {\bf set colorsequence classic} で選択できますが、現在の gnuplot のデ
フォルトは、出力形式に無関係に共通の 8 色列を使用します。

線種 (linetype) の属性の並びは、対話的か初期化ファイルのいずれかによっ
てさらにカスタマイズ可能です。以下参照: {\bf set linetype (p.~\pageref{set linetype})\index{linetype}}。配布パッケージ
に初期化ファイルのサンプルがいくつか用意されています。

特定の出力形式に対する線種の属性の現在の状態は、その出力形式を設定した
あとで {\bf test} コマンドを実行することで確認できます。

一つの描画コマンド内での関数やデータファイルの連続する並びには、現在の
デフォルトの線種列から線種が順番に割り当てられます。個々の関数、データ
ファイル、またはその他の描画要素に対する線種は、その描画コマンド上で明
示的に線の属性を指定することで上書きできます。

例:

\preverbatim
\begin{verbatim}
    plot "foo", "bar"                 # 線種 1, 2 で 2 ファイルを描画
    plot sin(x) linetype 4            # 線種色 4 を使用
\end{verbatim}
\postverbatim

一般に、色の指定は、色の名前か、RGB (赤、緑、青) 成分か、HSV (色相、彩
度、明度) 成分か、現在の pm3d パレットに沿った座標で行います。キーワー
ド {\bf linecolor} は、{\bf lc} と省略できます。

例:

\preverbatim
\begin{verbatim}
    plot sin(x) lc rgb "violet"       # gnuplot 内の色名の一つを使用
    plot sin(x) lc rgb "#FF00FF"      # 明示的な 16 進 RGB 3 つ組
    plot sin(x) lc palette cb -45     # 現在のパレットの cbrange の
                                      # -45 に対応する色
    plot sin(x) lc palette frac 0.3   # パレットに対応する小数値
\end{verbatim}
\postverbatim

以下参照: {\bf colorspec (p.~\pageref{colorspec})\index{colorspec}}, {\bf show colornames (p.~\pageref{show colornames})\index{colornames}}, {\bf hsv (p.~\pageref{hsv})\index{hsv}}, {\bf set palette (p.~\pageref{set palette})\index{palette}},
{\bf cbrange (p.~\pageref{cbrange})\index{cbrange}}。以下も参照: {\bf monochrome (p.~\pageref{monochrome})\index{monochrome}}。

線種 (linetype) には、点線/破線のパターンも結びつけられていますが、す
べての出力形式でそれが使えるわけではありません。線色とは独立に点線/破
線パターンを指定できます。以下参照: {\bf dashtype (p.~\pageref{dashtype})\index{dashtype}}。

\subsection*{色指定 (colorspec)}
\addcontentsline{toc}{subsection}{色指定 (colorspec)}
\label{colorspec}%
\index{colorspec}%
\index{colors}%
\label{lc}%
\index{lc}%
\label{linecolor}%
\index{linecolor}%
\label{tc}%
\index{tc}%
\label{textcolor}%
\index{textcolor}%
\index{fillcolor}%
多くのコマンドで、明示的な色の指定をともなった線種を指定することができ
ます。

書式:

\preverbatim
\begin{verbatim}
     ... {linecolor | lc} {"colorname" | <colorspec> | <n>}
     ... {textcolor | tc} {<colorspec> | {linetype | lt} <n>}
     ... {fillcolor | fc} {<colorspec> | linetype <n> | linestyle <n>}
\end{verbatim}
\postverbatim

$<$colorspec$>$ は以下の形式のいずれかです:

\preverbatim
\begin{verbatim}
     rgbcolor "colorname"    # 例: "blue"
     rgbcolor "0xRRGGBB"     # 16 進数値の定数文字列
     rgbcolor "0xAARRGGBB"   # 16 進数値の定数文字列
     rgbcolor "#RRGGBB"      # x11 形式の 16 進数文字列
     rgbcolor "#AARRGGBB"    # x11 形式の 16 進数文字列
     rgbcolor <integer val>  # AARRGGBB を表す整数値
     rgbcolor variable       # 入力ファイルから整数値を読み込む
     palette frac <val>      # <val> は 0 から 1 の値
     palette cb <value>      # <val> は cbrange の範囲の値
     palette z
     palette <colormap>      # 名前付きカラーマップを使用
     variable                # 入力ファイルから色番号を読み込む
     background または bgnd  # 背景色
     black
\end{verbatim}
\postverbatim

$<$n$>$ は、その線種 (linetype) 番号が使う色を意味します。以下参照:
{\bf test (p.~\pageref{test})\index{test}}。

{\tt"}colorname{\tt"} は gnuplot が内部に持っている色の名前のうちの一つを指定し
ます。有効な名前の一覧に関しては、以下参照: {\bf show colornames (p.~\pageref{show colornames})\index{colornames}}。

16 進定数は、引用符付きで {\tt"}\#RRGGBB{\tt"} や {\tt"}0xRRGGBB{\tt"} の形で与えることがで
きます。RRGGBB は、色の赤、緑、青の成分を意味し、それぞれ 00 から FF
までの範囲内でなければいけません。例えば、マゼンタ (紫) は、最も明るい
赤 + 最も明るい青、なので {\tt"}0xFF00FF{\tt"} と表され、これは 16 進数で
(255 $<$$<$ 16) + (0 $<$$<$ 8) + (255) を意味しています。

{\tt"}\#AARRGGBB{\tt"} は、RGB 色の上位ビットにアルファ値 (透過性) がついているこ
とを意味します。アルファ値 0 は完全に不透明色であることを意味し、よっ
て {\tt"}\#00RRGGBB{\tt"} は {\tt"}\#RRGGBB{\tt"} と同じになります。アルファ値の 255 (FF) は
完全に透明であることを意味します。

これらの任意の形式から、色の 32 ビット整数表現への変換を行うのに利用で
きる関数については、以下参照: {\bf expressions functions rgbcolor (p.~\pageref{expressions functions rgbcolor})\index{rgbcolor}}。

カラーパレットとは、色の線型なグラデーションで、単一の数値を特定の色に
滑らかに対応づけます。常にそのような 2 つの対応付けが効力を持ちます。
{\bf palette frac} は 0 から 1 までの小数値を、カラーパレットの全範囲に対
応付けるもので、{\bf palette cb} は、色軸の範囲を同じカラーパレットへ割り
当てるものです。以下参照: {\bf set cbrange (p.~\pageref{set cbrange})\index{cbrange}}, {\bf set colorbox (p.~\pageref{set colorbox})\index{colorbox}}。これらの対応
付けのどちらかを使って、現在のパレットから定数色を選び出すことができま
す。

{\tt"}palette z{\tt"} は、各描画線分や描画要素の z の値を、パレットへ対応づけら
れている cbrange の範囲に対応づけます。これにより、3 次元の曲線や曲面
に沿って色を滑らかに変化させることができます。これは、2 次元描画で、パ
レット値を追加の列データから読み込ませて色付けするのにも使えます (すべ
ての 2 次元描画スタイルがこの追加列を認識するわけではありません)。
\index{bgnd}%
\index{black}%
特殊な色指定が 2 つあります。背景色の {\bf background} (省略形 {\bf bgnd}) と
{\bf black} です。
\subsubsection*{Background color}
\addcontentsline{toc}{subsubsection}{Background color}
\label{background}%
\index{background}%
\label{bgnd}%
\index{bgnd}%
多くの出力形式でグラフの背景色を明示的に設定できます。特別な線種
(linetype) {\bf background} (省略形 {\bf bgnd}) はその色で描画しますが、それは
色名としても認識されます。
例:
\preverbatim
\begin{verbatim}
    # 以下はキャンバスの一部分を背景色で上書きすることで消去します。
    set term wxt background rgb "gray75"
    set object 1 rectangle from x0,y0 to x1,y1 fillstyle solid fillcolor bgnd
    # y=0 に「見えない」線を描き、その下のものをすべて消します。
    plot 0 lt background
\end{verbatim}
\postverbatim
\subsubsection*{Linecolor variable}
\addcontentsline{toc}{subsubsection}{Linecolor variable}
\label{linecolor variable}%
\label{linestyle variable}%
\label{lc variable}%
\label{ls variable}%
\label{textcolor variable}%
\label{tc variable}%
\label{variable linecolor}%
{\bf lc variable} は、入力データの一つの列から読んだ値を線種 (linetype) の
番号として使い、その線種に属する色を使うようプログラムに指示します。よ
ってこれは、{\bf using} 指定子へ対応する列の指定の追加を必要とします。
{\bf ls variable} は、入力データ列から読み込んだ値が線種でなく linestyle
番号として解釈されることを除いて同じことをします。文字の色も同様に、
{\bf tc variable} で指定できます。

例:
\preverbatim
\begin{verbatim}
     # データの 3 列目を、個々の点に色を割り当てるのに使用
     plot 'data' using 1:2:3 with points lc variable
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # 一つのデータファイルには複数のデータ集合を入れることが可能で、
     # それらは 2 行の空行で分離されています。個々のデータ集合には
     # index 値が割り当てられていて (以下参照: `index`)、using 指定の
     # column(-2) で取得できます。以下参照: `pseudocolumns`。以下の例
     # は -2 の column 値を使って、個々のデータ集合を異なる線色で描画
     # します。
     plot 'data' using 1:2:(column(-2)) with lines lc variable
\end{verbatim}
\postverbatim

\subsubsection*{Palette}
\addcontentsline{toc}{subsubsection}{Palette}
\label{colorspec palette}%
書式
\preverbatim
\begin{verbatim}
     ... {lc|fc|tc} palette {z}
     ... {lc|fc|tc} palette frac <fraction>
     ... {lc|fc|tc} palette cb <fixed z-value>
     ... fc palette <colormap>
\end{verbatim}
\postverbatim

パレットは、0 から 1 までの灰色値で、色の範囲を定義したものですが、
{\bf palette frac $<$fraction$>$} は、灰色値 $<$fraction$>$ でその色を選択します。

{\bf palette cb $<$z$>$} は、灰色値が (z - cbmin) / (cbmax - cbmin) である色を
選択します。

{\bf palette} と {\bf palette z} はどちらも描画要素の z 座標を現在のパレットの
色に写像します。z が cbrange の範囲外ならば、それはデフォルトでは
palette fraction 0 か palette fraction 1 になります。オプション
{\bf set pm3d noclipcb} がセットされている場合、z 座標が範囲外にある pm3d
グラフの 四辺形は何も描かれなくなります。

{\bf fillcolor palette $<$colormap$>$} は、描画要素の z 座標を、現在のパレット
を使用するのではなく、事前に保存した名前付きカラーマップに写像します。
以下参照: {\bf set colormap (p.~\pageref{set colormap})\index{colormap}}。

カラーマップがそれ用の個別の範囲を持っている場合、cbrange を標準パレッ
トに写像するのに使うのと同様に、z の値を写像するのにその範囲を使用しま
す。

\subsubsection*{Rgbcolor variable}
\addcontentsline{toc}{subsubsection}{Rgbcolor variable}
\label{rgbcolor variable}%
\label{lc rgbcolor variable}%
\label{tc rgbcolor variable}%
\label{variable rgbcolor}%
\label{variable textcolor}%
グラフの各データ点、各線分、または各ラベルにそれぞれ異なる色を割り当て
ることができます。{\bf lc rgbcolor variable} は、データファイルの各行から
RGB 色の情報を読み込むようプログラムに指示します。よってこれは、
{\bf using} 指定子による対応する列の指定の追加を必要とし、その列は 24-bit
形式の RGB の 3 つ組であるとみなされます。その値をデータファイルから直
接与える場合は、これは最も簡単な形式の 16 進値で与えます (以下参照:
{\bf rgbcolor (p.~\pageref{rgbcolor})\index{rgbcolor}})。一方で、以下の例のように 24-bit RGB 色として評価されるよ
うな数式を {\bf using} 指定子に入れることもできます。文字の色も同様に、
{\bf tc rgbcolor variable} で指定できます。

例:
\preverbatim
\begin{verbatim}
     # 3 次元描画で、各 x,y,z 座標に対応した赤、緑、青の成分を持つ色
     # のついた点を配置
     rgb(r,g,b) = 65536 * int(r) + 256 * int(g) + int(b)
     splot "data" using 1:2:3:(rgb($1,$2,$3)) with points lc rgb variable
\end{verbatim}
\postverbatim

\subsection*{点線/破線種 (dashtype)}
\addcontentsline{toc}{subsection}{点線/破線種 (dashtype)}
\label{dashtype}%
\index{dashtype}%
\index{dashtype}%
{\bf linecolor} や {\bf linewidth} と同様に、点線/破線パターン ({\bf dashtype}) が
各曲線毎の属性として独立しました。従来のような、使用中の出力形式の点線
を書くための特別なモードとして指定する必要はありません。すなわち、
{\bf set term $<$termname$>$ \{solid$|$dashed\}} のような古いコマンドは現在は無視
されます。

すべての線は、ほかに指定しなければ、{\bf dashtype solid} という属性を持ち
ますが、このデフォルト値をコマンド {\bf set linetype} で特定の線種に変更し
その後のコマンドで使えるようにできます。または、{\bf plot} や他のコマンド
の一部分として使用したい点線/破線の型を指定できます。

書式:
\preverbatim
\begin{verbatim}
     dashtype N          # 定義済み点線/破線型を番号で呼び出し
     dashtype "pattern"  # 点 (.) 横線 (-) 下線 (_) と空白の組み合わ
                         # せ文字列による指定
     dashtype (s1,e1,s2,e2,s3,e3,s4,e4)  # 1~4 個の <実線長>,<空白長>
                         # の組による点線/破線パターン指定
\end{verbatim}
\postverbatim

例:
\preverbatim
\begin{verbatim}
     # 2 つの関数が線種 1 を使うが dashtype で区別
     plot f1(x) with lines lt 1 dt solid, f2(x) with lines lt 1 dt 3
\end{verbatim}
\postverbatim

いくつかの出力形式は、それが提供する定義済み点線/破線パターンに、ユー
ザ定義パターンを追加することをサポートしています。

例:
\preverbatim
\begin{verbatim}
    plot f(x) dt 3            # 出力形式の持つパターン 3 を使用
    plot f(x) dt ".. "        # 一時的なパターンを作成
    plot f(x) dt (2,5,2,15)   # 同じパターンを数値で表現
    set dashtype 11 (2,4,4,7) # 新パターンを番号で呼び出せるよう定義
    plot f(x) dt 11           # 新パターンを使って描画
\end{verbatim}
\postverbatim

点線/破線パターンを文字列で指定した場合、gnuplot はそれを $<$実線長$>$,
$<$空白長$>$ の組の列に変換します。ドット {\tt"}.{\tt"} は (2,5) に、ダッシュ {\tt"}-{\tt"} は
(10,10) に、下線 {\tt"}\_{\tt"} は (20,10) に、また空白 {\tt"} {\tt"} は直前の $<$空白長$>$ の
値に 10 を追加します。その場合、コマンド {\bf show dashtype} は、元の文字
列と変換後の数値の列の両方を表示します。

\subsection*{Linestyles と linetypes}
\addcontentsline{toc}{subsection}{Linestyles と linetypes}
\label{linestyles vs linetypes}%
{\bf linestyle} は、属性 linecolor, linewidth, dashtype, pointtype の一時
的な組み合わせで、これはコマンド {\bf set style line} で定義します。一度
linestyle を定義すると、1 回の plot コマンド上でそれを使って、1 つ、ま
たはより多くの描画要素の見た目を制御できます。言い換えれば、これは丁度
linetype から永続性を取り除いたもの、と言うことができるでしょう。
{\bf linetypes} は永続的 (明示的にそれらを再定義するまでは保持される) です
が、{\bf linestyles} は、次のグラフィックの状態がリセットされるまでの間し
か保持されません。

例:

\preverbatim
\begin{verbatim}
    # 新しいラインスタイルを、出力形式に依存しない色 cyan、線幅が 3、
    # 点種 6 (丸の中に点) と定義
    set style line 5 lt rgb "cyan" lw 3 pt 6
    plot sin(x) with linespoints ls 5          # 定義スタイル 5 で
\end{verbatim}
\postverbatim

\subsection*{特別な線種 (special linetypes)}
\addcontentsline{toc}{subsection}{特別な線種 (special linetypes)}
\label{linetypes special linetypes}%
\label{special_linetypes}%
\index{special linetypes}%
\label{nodraw}%
\index{nodraw}%
\index{bgnd}%
\index{background}%
\index{black}%
特別な (数値ではない) 線種 (linetype) がいくつか用意されています。

{\bf lt black} は、黒い実線を意味します。

{\bf lt background} や {\bf lt bgnd}は、現在の出力形式の背景色の実線を意味しま
す。以下参照: {\bf background (p.~\pageref{background})\index{background}}。

{\bf lt nodraw} は、その曲線全体の描画をスキップします。これは、描画スタイ
ル {\bf linespoints} と組み合わせて使うと便利です。すなわち、この描画スタ
イルのみに有効な点部分の属性を残しつつ、線部分を抑制することが可能にな
ります。例えば、
\preverbatim
\begin{verbatim}
    plot f(x) with linespoints lt nodraw pointinterval -3
\end{verbatim}
\postverbatim
は、3 点置きに描画し、その下に背景色の小さな円を置くことで孤立させます。
以下参照: {\bf linespoints (p.~\pageref{linespoints})\index{linespoints}}。{\bf lt nodraw} は、自動的に描かれる線分の特別な
集合を抑制するのにも使えます。例えば、等高線描画の中のあるレベルの等高
線を、その線種に {\bf nodraw} を設定することで、その描画を抑制できます。

\section*{レイヤー (layers)}
\addcontentsline{toc}{section}{レイヤー (layers)}
\label{layers}%
\index{layers}%
\label{behind}%
\index{behind}%
\label{front}%
\index{front}%
\label{back}%
\index{back}%
gnuplot のグラフは、色々な要素を固定された順番で描き上げていくことで構
成されています。この順番は、キーワード {\bf behind}, {\bf back}, {\bf front} を使
って要素に特定の階層を割り当てることで変更できます。例えば、グラフ領域
の背景色を変更するには、色のついた長方形を属性 {\bf behind} で定義すればい
いわけです。
\preverbatim
\begin{verbatim}
    set object 1 rectangle from graph 0,0 to graph 1,1 fc rgb "gray" behind
\end{verbatim}
\postverbatim
描画の順番は以下の通りです:
\preverbatim
\begin{verbatim}
    behind
    back
    グラフ自体
    グラフの表題 (`key`)
    front
\end{verbatim}
\postverbatim
各階層内では、要素の描画は以下の順番です:
\preverbatim
\begin{verbatim}
    格子線、軸、境界要素 (grid, axis, border elements)
    番号順のピクスマップ画像 (pixmaps)
    番号順のオブジェクト (rectangle, circle, ellipse, polygon)
    番号順のラベル (label)
    番号順の矢印 (arrow)
\end{verbatim}
\postverbatim
1 ページに複数のグラフがある場合 (multiplot モード)、この順序は、複数
グラフを全体として適用するのではなく、各描画要素に別々に適用します。

これに対する例外は、TeX 系の出力形式 (例えば pslatex や cairolatex 等)
で、これらは一つの出力にすべての文字列要素を積み重ね、グラフ要素は別な
出力に積み重ねます。一般にこの場合、各文字列要素は全部がグラフの前に出
てしまうか、逆に全部がグラフの裏に置かれてしまうかのどちらかになります。

\section*{マウス入力 (mouse input)}
\addcontentsline{toc}{section}{マウス入力 (mouse input)}
\label{mouse input}%
多くの出力形式で、現在の描画にマウスを使って作用をすることが可能になっ
ています。そのうちいくつかはホットキーの定義もサポートしていて、マウス
カーソルが有効な描画ウィンドウにあるときに、あるキーを押すことであらか
じめ定義した関数を実行させることができます。マウス入力を {\bf batch} コマ
ンドスクリプトと組み合わせることも可能で、例えば {\bf pause mouse} として、
その後にマウスクリックによってパラメータとして返って来るマウス変数をそ
の後のスクリプト動作に反映させることができます。以下参照: {\bf bind (p.~\pageref{bind})\index{bind}},
{\bf mouse variables (p.~\pageref{mouse variables})\index{variables}}。また以下も参照: {\bf set mouse (p.~\pageref{set mouse})\index{mouse}}。
\subsection*{Bind}
\addcontentsline{toc}{subsection}{Bind}
\label{commands bind}%
\label{hotkey}%
\index{hotkey}%
\label{hotkeys}%
\index{hotkeys}%
\label{bind}%
\index{bind}%
書式:
\preverbatim
\begin{verbatim}
     bind {allwindows} [<key-sequence>] ["<gnuplot commands>"]
     bind <key-sequence> ""
     reset bind
\end{verbatim}
\postverbatim

{\bf bind} は、ホットキーの定義、再定義に使用します。ホットキーとは、入力
カーソルがドライバのウィンドウ内にあるときに、あるキー、または複数のキ
ーを押すことで、gnuplot のコマンド列を実行させる機能のことを言います。
{\bf bind} は、gnuplot が {\bf mouse} をサポートするようにコンパイルされていて
かつマウスが有効な出力形式上で使われてる場合にのみ有効であることに注意
してください。ユーザ指定のキー割当 (binding) は、組み込み (builtin) キ
ー割当を置き換えますが、$<$space$>$ と 'q' は通常は再定義はできません。そ
の唯一の例外については、以下参照: {\bf bind space (p.~\pageref{bind space})\index{space}}。

マウスボタン割り当ては、2 次元描画でのみ有効です。

ホットキーの一覧を得るには {\bf show bind}, または {\bf bind} とタイプするか、
グラフウィンドウ上でホットキー 'h' を入力してください。

キー定義は、{\bf reset bind} でデフォルトの状態に復帰できます。

修飾キーを含む複数のキーの定義は引用符で囲む必要があることに注意してく
ださい。

標準ではホットキーは現在の描画ウィンドウ上に入力カーソルがある場合のみ
認識されます。{\bf bind allwindows $<$key$>$ ...} ({\bf bind all $<$key$>$ ...} と省略
可) は、$<$key$>$ の割当を、それが現在の有効なものか否かに関わらず、すべて
の gnuplot の描画ウィンドウ上で可能にします。この場合、gnuplot 変数
MOUSE\_KEY\_WINDOW にそれが行なわれたウィンドウの ID が保存されるのでそ
れをキーに割り当てたコマンドで使用することができます。

例:

- キー割当の設定:

\preverbatim
\begin{verbatim}
   bind a "replot"
   bind "ctrl-a" "plot x*x"
   bind "ctrl-alt-a" 'print "great"'
   bind Home "set view 60,30; replot"
   bind all Home 'print "This is window ",MOUSE_KEY_WINDOW'
\end{verbatim}
\postverbatim

- キー割当を表示:
\preverbatim
\begin{verbatim}
   bind "ctrl-a"          # ctrl-a に対するキー割当を表示
   bind                   # 全てのキー定義を表示
   show bind              # 全てのキー定義を表示
\end{verbatim}
\postverbatim

- キー割当を削除:
\preverbatim
\begin{verbatim}
   bind "ctrl-alt-a" ""   # ctrl-alt-a のキー割当を削除
                            (組み込みキー定義は削除されません)
   reset bind             # デフォルト (組み込み) のキー定義を導入
\end{verbatim}
\postverbatim

- トグルスイッチ形式にキー割当:
\preverbatim
\begin{verbatim}
 v=0
 bind "ctrl-r" "v=v+1;if(v%2)set term x11 noraise; else set term x11 raise"
\end{verbatim}
\postverbatim

修飾キー (ctrl / alt) は大文字小文字の区別はありませんが、キーはそうで
はありません:
\preverbatim
\begin{verbatim}
   ctrl-alt-a == CtRl-alT-a
   ctrl-alt-a != ctrl-alt-A
\end{verbatim}
\postverbatim

修飾キー (alt == meta) の一覧:
\preverbatim
\begin{verbatim}
   ctrl, alt, shift (ボタン 1, ボタン 2, ボタン 3 でのみ有効)
\end{verbatim}
\postverbatim

サポートされている特殊キーの一覧:

\preverbatim
\begin{verbatim}
  "BackSpace", "Tab", "Linefeed", "Clear", "Return", "Pause", "Scroll_Lock",
  "Sys_Req", "Escape", "Delete", "Home", "Left", "Up", "Right", "Down",
  "PageUp", "PageDown", "End", "Begin",
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
  "KP_Space", "KP_Tab", "KP_Enter", "KP_F1", "KP_F2", "KP_F3", "KP_F4",
  "KP_Home", "KP_Left", "KP_Up", "KP_Right", "KP_Down", "KP_PageUp",
  "KP_PageDown", "KP_End", "KP_Begin", "KP_Insert", "KP_Delete", "KP_Equal",
  "KP_Multiply", "KP_Add", "KP_Separator", "KP_Subtract", "KP_Decimal",
  "KP_Divide",
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
  "KP_1" - "KP_9", "F1" - "F12"
\end{verbatim}
\postverbatim

以下は、実際のキーではなく、ウィンドウに関するイベントです:

\preverbatim
\begin{verbatim}
  "Button1" "Button2" "Button3" "Close"
\end{verbatim}
\postverbatim

以下も参照: {\bf mouse (p.~\pageref{mouse})\index{mouse}}。
\subsubsection*{Bind space}
\addcontentsline{toc}{subsubsection}{Bind space}
\label{commands bind space}%
\label{bind space}%
gnuplot が、configure 時にオプション --enable-rase-console をつけてイ
ンストールされた場合は、描画ウィンドウ内で $<$space$>$ をタイプすると
gnuplot のコマンドウィンドウが前面に出ます。多分。実際には、これは強く
システムに依存します。このホットキーは、'gnuplot -ctrlq' のようにして
gnuplot を起動するか、または X リソースの 'gnuplot*ctrlq' を設定するこ
とで ctrl-space に変更できます。
\subsection*{マウス用の変数 (Mouse variables)}
\addcontentsline{toc}{subsection}{マウス用の変数 (Mouse variables)}
\label{mouse variables}%
{\bf mousing} (マウス機能) が有効な場合、現在のウィンドウ上でのマウスクリ
ックによって gnuplot のコマンドライン上で使うことができる色々なユーザ
変数が設定されます。クリック時のマウスの座標は変数 MOUSE\_X, MOUSE\_Y,
MOUSE\_X2, MOUSE\_Y2 に代入されます。クリックされたボタンや、そのときの
メタキーの状態は MOUSE\_BUTTON, MOUSE\_SHIFT, MOUSE\_ALT, MOUSE\_CTRL に代
入されます。これらの変数は任意の描画の開始時には未定義で、有効な描画ウ
ィンドウ中でのマウスクリックイベントによって初めて定義されます。有効な
描画ウィンドウ中でマウスが既にクリックされたかどうかをスクリプトから調
べるには、これらの変数のうちのどれか一つが定義されているかどうかをチェ
ックすれば十分です。

\preverbatim
\begin{verbatim}
     plot 'something'
     pause mouse
     if (exists("MOUSE_BUTTON")) call 'something_else'; \
     else print "No mouse click."
\end{verbatim}
\postverbatim

描画ウィンドウ上での一連のキー入力を追跡することも、マウスコードを使う
ことで可能となります。

\preverbatim
\begin{verbatim}
     plot 'something'
     pause mouse keypress
     print "Keystroke ", MOUSE_KEY, " at ", MOUSE_X, " ", MOUSE_Y
\end{verbatim}
\postverbatim

{\bf pause mouse keypress} が、キー入力で終了した場合は MOUSE\_KEY には押さ
れたキーの ASCII コードが保存されます。MOUSE\_CHAR にはその文字自身が文
字列値として保存されます。pause コマンドが (例えば ctrl-C や描画ウィン
ドウが外部から閉じられるなどして) 異常終了した場合は MOUSE\_KEY は -1
になります。

マウスによる拡大の後の新しい描画範囲は、GPVAL\_X\_MIN, GPVAL\_X\_MAX,
GPVAL\_Y\_MIN, GPVAL\_Y\_MAX で参照できることに注意してください。
以下参照: {\bf gnuplot-defined variables (p.~\pageref{gnuplot-defined variables})\index{variables}}。
\section*{残留 (Persist)}
\addcontentsline{toc}{section}{残留 (Persist)}
\label{persist}%
\index{persist}%
gnuplot の多くの出力形式 (aqua, pm, qt, x11, windows, wxt, ...) が、ス
クリーン上にグラフをその中に描いた表示用のウィンドウを別に開きます。オ
プション {\bf persist} は、主たるプログラムが終了したときにも、それらのウ
ィンドウを残すよう gnuplot に指示します。
これは、非対話型出力形式出力では何もしません。
例えば、以下のコマンドを実行すると

\preverbatim
\begin{verbatim}
    gnuplot -persist -e 'plot sinh(x)'
\end{verbatim}
\postverbatim

gnuplot は、表示ウィンドウを開き、その中にグラフを描き、そして終了し、
表示ウィンドウはグラフをその中に持ったままスクリーンに残ります。
新しい出力形式を設定するときに {\bf persist} や {\bf nopersist} を指定すること
もできます。

\preverbatim
\begin{verbatim}
    set term qt persist size 700,500
\end{verbatim}
\postverbatim

出力形式によっては、その残ったウィンドウ上でも多少のマウス操作が可能な
場合もあります。しかし、グラフの再描画を要求するズーム (とその逆) のよ
うな操作は、既にプログラムが終了しているので無理です。描画ウィンドウを
開いたまま残し、その後のマウス機能も完全に可能にするには、例えば
gnuplot を対話型ではなく、スクリプトファイルから実行させる方法がありま
す。以下参照: {\bf pause mouse close (p.~\pageref{pause mouse close})\index{close}}。

\section*{描画 (Plotting)}
\addcontentsline{toc}{section}{描画 (Plotting)}
\label{plotting}%
\index{plotting}%
{\bf gnuplot} にはグラフを描画する 4 つのコマンド {\bf plot}, {\bf splot}, {\bf replot},
{\bf refresh} があります。他のコマンドは、最終的にグラフ上に生成される描画
要素や、レイアウト、スタイルの制御を行います。
{\bf plot} は 2 次元グラフを生成します。{\bf splot} は 3 次元グラフ (もちろん
実際にはその 2 次元面への射影) を生成します。{\bf replot} は、直前の {\bf plot}
や {\bf splot} コマンドを再実行します。{\bf refresh} は、{\bf replot} と似ています
が、入力データをファイルや入力ストリームから再読み込みする代わりに、前
に保存したデータを再使用します。

\index{multiplot}%
\index{inset}%
\index{subfigures}%
これら 4 つのコマンドのうちの一つを実行した場合は、現在定義されている
軸、ラベル、タイトル、および元の plot コマンドで指定されたさまざまな関
数やデータのすべてを含む出力のスクリーンを再描画するか、新しい出力ペー
ジを生成します。もし、一つのページに複数のグラフを隣り合うように並べて
出力したい場合、例えば複数の図のパネルを作成したり、大きなグラフの中に
小さなグラフを挿入したりしたい場合は、コマンド {\bf set multiplot} を使用
し、各描画コマンドで新しいページが作られるのを抑制してください。

描画に関する一般的な情報の大半は、{\bf plot} に関する項で見つかります。3
次元描画に固有の情報は {\bf splot} の項にあります。

{\bf plot} は xy 直交座標系と極座標系が使えます。以下参照: {\bf set polar (p.~\pageref{set polar})\index{polar}}。
{\bf splot} は xyz 直交座標が使えますが、3 次元極座標、円柱座標データも入
力できます。以下参照: {\bf set mapping (p.~\pageref{set mapping})\index{mapping}}。
\index{axes}%
{\bf plot} では、4 つの境界 x (下), x2 (上), y (左), y2 (右) をそれぞれ独
立な軸として扱うこともできます。オプション {\bf axes} で、与えられた関数や
データ集合をどの軸のペアで表示させるかを選べます。また、各軸の縮尺や見
出しづけを完全に制御するために十分な補佐となる {\bf set} コマンド群が存在
します。いくつかのコマンドは、{\bf set xlabel} のように軸の名前をその中に
持っていますし、それ以外のものは {\bf set logscale xy} のように、1 つ、ま
たは複数の軸の名前をオプションとしてとります。z 軸を制御するオプション
やコマンドは 2 次元グラフには効力を持ちません。

{\bf splot} は、点や線に加えて曲面や等高線を書くことができます。3 次元の関
数の格子定義に関する情報については、以下参照: {\bf set isosamples (p.~\pageref{set isosamples})\index{isosamples}}。3 次元
データのファイルに必要な形態については、以下参照: {\bf splot datafile (p.~\pageref{splot datafile})\index{datafile}}。等
高線に関する情報については、以下参照: {\bf set contour (p.~\pageref{set contour})\index{contour}}, {\bf set cntrlabel (p.~\pageref{set cntrlabel})\index{cntrlabel}},
{\bf set cntrparam (p.~\pageref{set cntrparam})\index{cntrparam}}。

{\bf splot} での縮尺や見出し付けの制御は、z 軸にも有効であること、および
x2 軸、y2 軸のラベル付けが {\bf set view map} を使って作られる疑似的な 2
次元描画にのみ可能であることを除けば {\bf plot} と全く同じです。
\section*{プラグイン (Plugins)}
\addcontentsline{toc}{section}{プラグイン (Plugins)}
\label{plugins}%
\index{plugins}%
グラフや数式に利用できる関数群は、共有ライブラリから実行可能な関数を取
り込むプラグインの仕組みにより拡張できます。例えば、gnuplot のバージョ
ン 5.4 では、上方不完全ガンマ関数 Q(a,x) は組み込み関数としては実装し
ていませんでした。
\\ $Q(a,x)=\frac{1}{\Gamma(x)}\intop_{x}^{\infty}t^{a-1}e^{-t}dt$ .\quad\quad
 これは、gnuplot 内で直接以下のようにして近似的に定義できます。
\preverbatim
\begin{verbatim}
     Q(a,x) = 1. - igamma(a,x)
\end{verbatim}
\postverbatim
しかし、これは、1 の近くの igamma(a,x) の値の精度に実質的な限界があり
ます。より正確な値を返す実装が欲しい場合、プラグインを通して用意するの
がいいでしょう (下を参照)。一度取り込めば、関数は、gnuplot 内の他の組
み込み関数、ユーザ定義関数と全く同様に利用できます。
以下参照: {\bf import (p.~\pageref{import})\index{import}}。

gnuplot の配布物のディレクトリ demo/plugin には、プラグインライブラリ
を生成するための説明とソースコードがあります。簡単なサンプルファイル
{\bf demo\_plugin.c} の関数を、あなたの興味ある関数の実装に置き換えて修正し
てください。
これには、外部の数学ライブラリの関数の呼び出しも含まれています。

ディレクトリ demo/plugin には、Q(a,x) を実装するプラグインのソースも
あります。上で注意したように、このプラグインは、gnuplot バージョン 6
に含まれる {\bf uigamma} と同じ関数を、以前のバージョンに実装することを可
能にします。
\preverbatim
\begin{verbatim}
    import Q(a,x) from "uigamma_plugin"
    uigamma(a,x) = ((x<1 || x<a) ? 1.0-igamma(a,x) : Q(a,x))
\end{verbatim}
\postverbatim

\section*{Scope of variables}
\addcontentsline{toc}{section}{Scope of variables}
\label{scope}%
\index{scope}%
\label{variables local}%
\index{local}%
\index{global}%
gnuplot の変数は、以下に示す特別な場合を除いては大域的 (global) です。
有効な変数に対しては、その名前で区別された、永続的な一覧表があります。
変数の割り当てとは、その一覧表に項目を一つ作るか、置き換えることを意味
します。その一覧表から変数を削除する唯一の方法は、コマンド {\bf undefine}
を使用することです。

例外 1: 繰り返し指定の中で使用される変数の有効範囲 (スコープ) は、その
繰り返しの中だけです。繰り返し変数の値を、その実行ブロック内で永続的に
変更することはできません。繰り返し変数が繰り返しの前に値を持っていたと
したら、その値は繰り返しの終了時に保持、または復帰されます。
例えば、以下のコマンドは、1 2 3 4 5 6 7 8 9 10 A を出力します。

\preverbatim
\begin{verbatim}
    i = "A"
    do for [i=1:10] { print i; i=10; }
    print i
\end{verbatim}
\postverbatim

例外 2: 関数定義で使用されるパラメータの名前は、その関数を呼び出すとき
に与える実際の値の置き場所に過ぎません。例えば、以下の例では、x と y
の現在、あるいは未来の値はここで示される定義には関係しないが、A はこの
関数が後で評価されるときには大域変数として存在しなければいけません:

\preverbatim
\begin{verbatim}
    func(x,y) = A + (x+y)/2.
\end{verbatim}
\postverbatim

例外 3: コマンド {\bf local} で宣言された変数。
{\bf local} 指定 (バージョン 6 での新機能) は、変数、または配列のオプショ
ン的な宣言を可能にし、それによりそれが見つかるコードブロック内部にその
有効範囲を制限するものです。このコードブロックとは、{\bf load} や {\bf call}
の対象、関数ブロックの評価、そして条件 {\bf if}, {\bf else}, {\bf do for}, {\bf while}
の後に続く中括弧内のコードです。
局所 (local) 変数の名前が大域 (global) 変数と重なった場合、その局所変
数の有効範囲から抜けるまでは、大域変数は隠されます。

\section*{初期化 (Startup (initialization))}
\addcontentsline{toc}{section}{初期化 (Startup (initialization))}
\label{startup}%
\index{startup}%
\label{start}%
\index{start}%
\label{start-up}%
\index{start up}%
\label{initialization}%
\index{initialization}%
\label{.gnuplot}%
\index{.gnuplot}%
\label{gnuplotrc}%
\index{gnuplotrc}%
起動時に、gnuplot はまずシステム用の初期設定ファイル {\bf gnuplotrc} を探
します。そのファイルの置き場所は gnuplot のインストール時に決定され、
{\bf show loadpath} で知ることができます。次にユーザのホームディレクトリ内
に個人用の設定ファイルを探します。そのファイルは Unix 系のシステムでは
{\bf .gnuplot} であり、その他の処理系では {\bf GNUPLOT.INI} となっています。
(OS/2 では、環境変数 {\bf GNUPLOT} に設定されている名前のディレクトリ内に
それを探します; Windows では、{\bf APPDATA} を使用します)。Unix 系のシステ
ムでは、追加で gnuplot は \$XDG\_CONFIG\_HOME/gnuplot/gnuplotrc もチェッ
クします。
\section*{文字列定数、文字列変数、文字列関数 (Strings)}
\addcontentsline{toc}{section}{文字列定数、文字列変数、文字列関数 (Strings)}
\label{string}%
\index{string}%
\label{strings}%
\index{strings}%
文字列定数に加えて、ほとんどの gnuplot コマンドは文字列変数、文字列式
または文字列を返す関数も受け付けます。例えば、以下の 4 つの plot のや
り方は結果として全て同じ描画タイトルを生成します:

\preverbatim
\begin{verbatim}
     four = "4"
     graph4 = "Title for plot #4"
     graph(n) = sprintf("Title for plot #%d",n)
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     plot 'data.4' title "Title for plot #4"
     plot 'data.4' title graph4
     plot 'data.4' title "Title for plot #".four
     plot 'data.4' title graph(4)
\end{verbatim}
\postverbatim

整数は、それが文字列結合演算子 (文字 '.') によって作用された場合は、文
字列に変換されますので、以下の例も上と同様に動作します:

\preverbatim
\begin{verbatim}
     N = 4
     plot 'data.'.N title "Title for plot #".N
\end{verbatim}
\postverbatim

一般に、コマンドラインの各要素は、それらが標準的な gnuplot への命令文
法の一部分と認識されるもの以外は、有効な文字列変数としての評価のみが行
なわれます。よって、以下のコマンド列は、恐らくは混乱を引き起こさないよ
うに避けられるべきですが、文法的には間違ってはいません:

\preverbatim
\begin{verbatim}
     plot = "my_datafile.dat"
     title = "My Title"
     plot plot title title
\end{verbatim}
\postverbatim
\subsection*{部分文字列 (substrings)}
\addcontentsline{toc}{subsection}{部分文字列 (substrings)}
\label{string substring}%
\label{substrings}%
\index{substrings}%
任意の文字列、文字列変数、文字列値関数に、範囲指定子をつけることにより
部分文字列を指定できます。範囲指定子は [begin:end] の形で、begin は部
分文字列の先頭位置、end は最後の位置です。位置指定は、最初の文字を 1
番目と見ます。先頭の位置、最後の位置は空、あるいは '*' でも構いません。
その場合、それは元の文字列自体の先頭、あるいは最後を意味します。よって
str[:] や str[*:*] はどちらも str の文字列全体を意味します。
例:
\preverbatim
\begin{verbatim}
    eos = strlen(file)
    if (file[eos-3:*] eq ".dat") {
        set output file[1:eos-4] . ".png"
        plot file
    }
\end{verbatim}
\postverbatim

同等の関数 {\bf substr( string, begin, end )} もあります。
\subsection*{文字列演算子 (string operators)}
\addcontentsline{toc}{subsection}{文字列演算子 (string operators)}
\label{string operators}%
次の 3 つの二項演算子は文字列に作用します: 文字列の結合演算子 {\tt"}.{\tt"}, 文
字列の等号演算子 {\tt"}eq{\tt"}, および文字列の不等号演算子 {\tt"}ne{\tt"} です。以下の例
では TRUE が表示されます。

\preverbatim
\begin{verbatim}
    if ("A"."B" eq "AB") print "TRUE"
\end{verbatim}
\postverbatim
\subsection*{文字列関数 (string functions)}
\addcontentsline{toc}{subsection}{文字列関数 (string functions)}
\label{string functions}%
gnuplot は、文字列に作用する組み込み関数をいくつか持っています。
汎用的な書式関数: 以下参照: {\bf gprintf (p.~\pageref{gprintf})\index{gprintf}}, {\bf sprintf (p.~\pageref{sprintf})\index{sprintf}}。
時刻書式関数: 以下参照: {\bf strftime (p.~\pageref{strftime})\index{strftime}}, {\bf strptime (p.~\pageref{strptime})\index{strptime}}。
文字列操作: 以下参照: {\bf split (p.~\pageref{split})\index{split}}, {\bf substr (p.~\pageref{substr})\index{substr}}, {\bf strstrt (p.~\pageref{strstrt})\index{strstrt}}, {\bf trim (p.~\pageref{trim})\index{trim}}, {\bf word (p.~\pageref{word})\index{word}},
{\bf words (p.~\pageref{words})\index{words}}。
\subsection*{文字列エンコード (string encoding)}
\addcontentsline{toc}{subsection}{文字列エンコード (string encoding)}
\label{string encoding}%
\index{utf8}%
gnuplot の組み込み文字列操作関数は、UTF-8 エンコードを認識します (以下
参照: {\bf set encoding (p.~\pageref{set encoding})\index{encoding}})。例:

\preverbatim
\begin{verbatim}
set encoding utf8
utf8string = "αβγ"
strlen(utf8string) は 3 を返す (文字数であって、バイト数ではない)
utf8string[2:2] は "β" となる
strstrt(utf8string,"β") は 2 となる
\end{verbatim}
\postverbatim
(訳注: いずれも UTF-8 エンドードで与えた場合)

\section*{置換とコマンドラインマクロ (Substitution)}
\addcontentsline{toc}{section}{置換とコマンドラインマクロ (Substitution)}
\label{substitution}%
\index{substitution}%
gnuplot への命令文字列が最初に読み込まれた時点、すなわちまだそれが解釈
され、もしくは実行される前の段階で、2 つの形式の単語の置換が実行されま
す。それらは逆引用符 (｀) (ASCII 番号 96) で囲まれているか、または @
(ASCII 番号 64) が頭についた文字列に対して行なわれます。
\subsection*{逆引用符によるシステムコマンドの置換 (Substitution backquotes)}
\addcontentsline{toc}{subsection}{逆引用符によるシステムコマンドの置換 (Substitution backquotes)}
\label{substitution backquotes}%
\label{backquotes}%
\index{backquotes}%
\label{shell commands}%
シェルコマンドを逆引用符 (｀) で囲むことによってコマンド置換を行うこと
ができます。このコマンドは子プロセスで実行され、その出力結果でコマンド
ラインの逆引用符で囲まれた部分を置き換えます。システムコマンドの終了ス
テータスは、変数 GPVAL\_SYSTEM\_ERRNO と GPVAL\_SYSTEM\_ERRMSG に返されま
す。

注意:  内部の復帰 ('$\backslash$r') と改行 ('$\backslash$n') 文字は、置換後の文字入力から取
り除きません。

コマンド置換は、単一引用符内の文字列以外は、{\bf gnuplot} のコマンドライ
ン中、どこででも使用可能です。

例えば、以下は現在の日付とユーザー名のラベルを生成します:
\preverbatim
\begin{verbatim}
     set label "generated on `date +%Y-%m-%d` by `whoami`" at 1,1
     set timestamp "generated on %Y-%m-%d by `whoami`"
\end{verbatim}
\postverbatim

以下は、カレントディレクトリ内のファイル名からなる配列を生成します:
\preverbatim
\begin{verbatim}
     FILES = split( "`ls -1`" )
\end{verbatim}
\postverbatim
\subsection*{文字列変数のマクロ置換 (Substitution macros)}
\addcontentsline{toc}{subsection}{文字列変数のマクロ置換 (Substitution macros)}
\label{substitution macros}%
\label{macros}%
\index{macros}%
\index{exists}%
文字 @ は、コマンドライン上でその文字列変数の値への置換を行なうのに使
われます。文字列変数の値としての文は、複数の単語からなることも可能です。
これにより文字列変数をコマンドラインマクロとして使うことが可能になりま
す。この機能により展開できるのは文字列定数のみで、文字列を値に取る数式
を使うことはできません。
例:

\preverbatim
\begin{verbatim}
     style1 = "lines lt 4 lw 2"
     style2 = "points lt 3 pt 5 ps 2"
     range1 = "using 1:3"
     range2 = "using 1:5"
     plot "foo" @range1 with @style1, "bar" @range2 with @style2
\end{verbatim}
\postverbatim

この @ 記号を含む行は、その入力時に展開され、それが実際に実行されると
きには次のように全部打ち込んだ場合と同じことになります。

\preverbatim
\begin{verbatim}
     plot "foo" using 1:3 with lines lt 4 lw 2, \
          "bar" using 1:5 with points lt 3 pt 5 ps 2
\end{verbatim}
\postverbatim

関数 exists() はマクロの評価に関して有用でしょう。以下の例は、C が安全
にユーザ定義変数の名前に展開できるかどうかをチェックします。

\preverbatim
\begin{verbatim}
     C = "pi"
     if (exists(C)) print C," = ", @C
\end{verbatim}
\postverbatim

マクロの展開は、単一引用符内、または二重引用符内では行なわれませんが、
逆引用符 (｀) 内ではマクロ展開されます。

マクロの展開は、gnuplot が新しいコマンド行を見たときに非常に早い段階で
gnuplot が処理し、そしてただ一度だけそれを行います。よって、

\preverbatim
\begin{verbatim}
    A = "c=1"
    @A
\end{verbatim}
\postverbatim

のようなコードは正しく実行しますが、以下のような行はだめです。それは、
マクロの定義が同じ行にあるため展開に間に合わないからです。

\preverbatim
\begin{verbatim}
    A = "c=1"; @A   # will not expand to c=1
\end{verbatim}
\postverbatim

繰り返し用の中括弧内でのマクロの展開は、そのループが実行される前に行い
ます。すなわち、ループ内では A 自体を再定義しても、@A は常に A の元の
値に展開されます。

コマンドを完成させて実行するには、コマンド {\bf evaluate} も有用でしょう。
\subsection*{文字列変数、マクロ、コマンドライン置換 (mixing\_macros\_backquotes)}
\addcontentsline{toc}{subsection}{文字列変数、マクロ、コマンドライン置換 (mixing\_macros\_backquotes)}
\label{mixing_macros_backquotes}%
\index{mixing macros backquotes}%
\label{substitution mixing_macros_backquotes}%
文字列変数や逆引用符 (｀) による置換、マクロによる置換の相互関係は少し
ややこしいです。逆引用符はマクロ置換を妨げないので、

\preverbatim
\begin{verbatim}
     filename = "mydata.inp"
     lines = ` wc --lines @filename | sed "s/ .*//" `
\end{verbatim}
\postverbatim

は、mydata.ipn の行数を整数変数 lines に保存することになります。また、
二重引用符は逆引用符の置換を妨げないので、

\preverbatim
\begin{verbatim}
     mycomputer = "`uname -n`"
\end{verbatim}
\postverbatim

は、システムコマンド {\bf uname -n} の返す文字列を文字列変数 mycomputer に
保存することになります。

しかし、マクロ置換は二重引用符内では機能しないので、システムコマンドを
マクロとして定義してそれをマクロとして利用しかつ逆引用符置換を行なうこ
とはでできません。

\preverbatim
\begin{verbatim}
      machine_id = "uname -n"
      mycomputer = "`@machine_id`"  # うまくいかない !
\end{verbatim}
\postverbatim

この失敗は、二重引用符が @machine\_id をマクロとして解釈することを妨げ
ているからです。システムコマンドをマクロとして保存し、その後それを実行
するには、逆引用符自体もマクロ内に含める必要があります。これは以下のよ
うにマクロを定義することで実現できます。sprintf の書式には 3 種類の引
用符全てが入れ子になっていることに注意してください。

\preverbatim
\begin{verbatim}
     machine_id = sprintf('"`uname -n`"')
     mycomputer = @machine_id
\end{verbatim}
\postverbatim
\section*{区切りやカッコの使い方 (Syntax)}
\addcontentsline{toc}{section}{区切りやカッコの使い方 (Syntax)}
\label{syntax}%
\index{syntax}%
\label{specify}%
\index{specify}%
\label{punctuation}%
\index{punctuation}%
リストや座標がコンマ (,) 区切りであるのに対し、オプションやそれに伴う
パラメータはスペース ( ) 区切りです。範囲はコロン (:) で区切ってかぎか
っこ ([]) でくくりますし、文字列やファイル名は引用符でくくり、他にいく
つかカッコ (()) でくくるものがあります。

コンマは以下の区切りで使用されます。{\bf set} コマンドの {\bf arrow}, {\bf key},
{\bf label} の座標; 当てはめ (fit) られる変数のリスト (コマンド {\bf fit} のキ
ーワード {\bf via} に続くリスト); コマンド {\bf set cntrparam} で指定されると
びとびの等高線の値やそのループパラメータのリスト; {\bf set} コマンドの
{\bf dgrid3d} {\bf dummy}, {\bf isosamples}, {\bf offsets}, {\bf origin}, {\bf samples},
{\bf size}, {\bf time}, {\bf view} の引数; 目盛りの位置やそのループパラメータのリ
スト; タイトルや軸の見出しの位置; {\bf plot}, {\bf replot}, {\bf splot} コマンドの
x,y,z 座標の計算に使われる媒介変数関数のリスト; {\bf plot}, {\bf replot},
{\bf splot} コマンドの複数の描画 (データ、または関数) のそれぞれの一連のキ
ーワードのリスト。

(丸) カッコは、目盛りの見出しを (ループパラメータではなく) 明示的に集
合与える場合の区切りとして、または {\bf fit}, {\bf plot}, {\bf replot}, {\bf splot} コ
マンドの {\bf using} 指定での計算を指示するために使われます。

(カッコやコンマは通常の関数の表記でも使われます。)

かぎかっこは、{\bf set}, {\bf plot}, {\bf splot} コマンドでは範囲を区切るのに使わ
れます。

コロンは {\bf range} (範囲) 指定 ({\bf set}, {\bf plot}, {\bf splot} コマンドで使われ
る) の両端の値を区切るのに、または {\bf plot}, {\bf replot}, {\bf splot}, {\bf fit} コ
マンドの {\bf using} 指定の各エントリを区切るのに使われます。

セミコロン (;) は、一行のコマンド行内で与えられる複数のコマンドを区切
るのに使われます。

中カッコ (\{\}) は、拡張文字列処理モード (enhanced text mode) の記述や、
if/then/else 文のブロックの区切りとして使われますし、または複素数を記
述するのにも使われます: \{3,2\} = 3 + 2i となります。
\subsection*{引用符 (quote marks)}
\addcontentsline{toc}{subsection}{引用符 (quote marks)}
\label{quotes}%
\index{quotes}%
\label{syntax quotes}%
gnuplot は、文字列を区切るのに、二重引用符 (ASCII コード 34 番)、単一
引用符 (ASCII コード 39 番)、および逆引用符 (｀) (ASCII コード 96 番)
の 3 種類の引用符を使います。

ファイル名は単一引用符、あるいは二重引用符内で囲みます。このマニュアル
では一般にコマンドの例示では、わかりやすくするためにファイル名は単一引
用符でくくり、他の文字列は二重引用符でくくります。

見出し (label)、タイトル (title)、またはその他の描画要素で使用される文
字列定数や複数行文字列は単一引用符、あるいは二重引用符内で囲みます。引
用符で囲まれた文字列のさらなる処理の結果は、どの引用符記号を選ぶかによ
って変わります。

$\backslash$n (改行) や $\backslash$345 (8 進表記の文字コード) のようなバックスラッシュ ($\backslash$)
による特殊文字表現は、2 重引用符内の文字列でのみ効力を持ちます。単一引
用符内では、バックスラッシュ自体が通常の文字と見なされます。単一引用符
内の文字列で単一引用符自体 (ASCII コード 39 番) を使うには、それを重ね
て書く必要があります。つまり、文字列 {\tt"}d$\backslash${\tt"} s' b$\backslash$$\backslash${\tt"} と、'd{\tt"} s{'\,'} b$\backslash$' は完
全に同じものとなります。

1 つの複数行文字列に関する行揃えは各行に同等に働きます。よって、中央に
行揃えされた文字列
\preverbatim
\begin{verbatim}
     "This is the first line of text.\nThis is the second line."
\end{verbatim}
\postverbatim
は次のように表示されます:
\preverbatim
\begin{verbatim}
                      This is the first line of text.
                         This is the second line.
\end{verbatim}
\postverbatim
しかし
\preverbatim
\begin{verbatim}
     'This is the first line of text.\nThis is the second line.'
\end{verbatim}
\postverbatim
だと次のようになります。
\preverbatim
\begin{verbatim}
         This is the first line of text.\nThis is the second line.
\end{verbatim}
\postverbatim

拡張文字列処理 (enhanced text processing) は二重引用符に対しても単一引
用符に対しても機能します。以下参照: {\bf enhanced text (p.~\pageref{enhanced text})\index{text}}。

逆引用符は,コマンドライン中の置換のためにシステムコマンドを囲むのに使
います。以下参照: {\bf substitution (p.~\pageref{substitution})\index{substitution}}。
\section*{時間/日付データ (Time/Date)}
\addcontentsline{toc}{section}{時間/日付データ (Time/Date)}
\label{time/date}%
\index{time/date}%
{\bf gnuplot} は入力データとして時間/日付情報の使用をサポートしています。
この機能は {\bf set xdata time}, {\bf set ydata time} などのコマンドによって有
効になります。

内部では全ての時間/日付は 1970 年からの秒数に変換されます。コマンド
{\bf set timefmt} は全ての入力に対するデフォルトの書式を定義します。データ
ファイル、範囲、軸の目盛りの見出し、ラベルの位置と、日時データ値を受け
入れるすべてのものへの入力の書式が、デフォルトでこれになります。一時に
は一つのデフォルト入力書式のみが有効です。よって、ファイル内の x と y
の両方が時間/日付データである場合は、デフォルトではそれは同じ書式と解
釈されます。しかし、このデフォルトは、{\bf using} 指定で関数 {\bf timecolumn}
を用いて、それに対応する特定のファイルや列からデータを読みこむことによ
り、変えることが可能です。

秒数へ (秒数から) の変換は国際標準時 (UT; グリニッジ標準時 (GMT) と同
じ) が使われます。各国標準時や夏時間への変換の機能は何も持ち合わせてい
ません。もしデータがすべて同じ標準時間帯に従っているなら (そして全てが
夏時間か、そうでないかのどちらか一方にのみ従うなら) これに関して何も心
配することはありません。しかし、あなたが使用するアプリケーションで絶対
的な時刻を厳密に考察しなければいけない場合は、あなた自身が UT に変換す
べきでしょう。

{\bf show xrange} のようなコマンドは、その整数値を {\bf timefmt} に従って解釈
し直します。{\bf timefmt} を変更してもう一度 {\bf show} でその値を表示させると、
それは新しい {\bf timefmt} に従って表示されます。このため、({\bf set xdata} な
どにより) その軸に対するデータ型をリセットすると、その値は整数値として
表示されることになります。

コマンド {\bf set format} または {\bf set tics format} は、指定された軸に対す
る入力が時間/日付であるなしに関わらず目盛りの見出しに使われる書式を定
義します。

時間/日付情報がファイルから描画される場合、{\bf plot}, {\bf splot} コマンドで
は {\bf using} オプションを「必ず」使う必要があります。{\bf plot}, {\bf splot} で
は各行のデータ列の分離にスペースを使いますが、時間/日付データはその中
にスペースを含み得るからです。もしタブ区切りを使用しているのなら、あな
たのシステムがそれをどう扱うか確かめるために何度もテストする必要がある
でしょう。

関数 {\bf time} は、現在のシステム時刻を得るのに使えます。この値は、
{\bf strftime} 関数で日時文字列に変換できますし、{\bf timecolumn} と組み合わせ
て相対的な日時グラフを作成するのにも使えます。引数の型はそれが返すもの
を決定します。引数が整数の場合は time() は現在の時刻を 1970 年 1 月 1
日からの整数として返し、引数が実数 (または複素数) ならば同様の値を実数
として返しますが、小数 (秒以下) 部分の精度は、オペレーティングシステム
に依存します。引数が文字列ならば、それを書式文字列であるとみなし、書式
化された日時文字列を提供するようそれを {\bf strftime} に渡します。

次の例は時間/日付データの描画の例です。

ファイル {\tt"}data{\tt"} は以下のような行からなるとします:

\preverbatim
\begin{verbatim}
     03/21/95 10:00  6.02e23
\end{verbatim}
\postverbatim

このファイルは以下のようにして表示されます:

\preverbatim
\begin{verbatim}
     set xdata time
     set timefmt "%m/%d/%y"
     set xrange ["03/21/95":"03/22/95"]
     set format x "%m/%d"
     set timefmt "%m/%d/%y %H:%M"
     plot "data" using 1:3
\end{verbatim}
\postverbatim

ここで、x 軸の目盛りの見出しは {\tt"}03/21{\tt"} のように表示されます。

現在の gnuplot は、時刻をミリ秒精度で追跡し、時刻のフォーマットもそれ
に伴って変更されています。
例: 現在の時刻をミリ秒精度で表示
\preverbatim
\begin{verbatim}
    print strftime("%H:%M:%.3S %d-%b-%Y",time(0.0))
    18:15:04.253 16-Apr-2011
\end{verbatim}
\postverbatim

以下参照: {\bf time\_specifiers (p.~\pageref{time_specifiers})\index{time specifiers}}, {\bf set xtics time (p.~\pageref{set xtics time})\index{time}}, {\bf set mxtics time (p.~\pageref{set mxtics time})\index{time}}。
\section*{ウォッチポイント (Watchpoints)}
\addcontentsline{toc}{section}{ウォッチポイント (Watchpoints)}
\label{watchpoints}%
\index{watchpoints}%
\label{watch}%
\index{watch}%
ウォッチポイントは、あなたが使用する gnuplot が configure 時にオプショ
ン --enable-watchpoints をつけて作られた場合にのみサポートされます。こ
の昨日は試験段階です (詳細は、今後のリリース版で変更される可能性があり
ます)。

書式:
\preverbatim
\begin{verbatim}
     plot FOO watch {x|y|z|F(x,y)} = <value>
     plot FOO watch mouse
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     set style watchpoints nolabels
     set style watchpoints label <label-properties>
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     unset style watchpoints      # デフォルトスタイルに戻す
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     show watchpoints    # 直前の plot コマンドからのすべてのウォッチ
                         # ポイントを要約表示
\end{verbatim}
\postverbatim

一つのウォッチポイントは、x, y, z 座標、または関数 f(x,y) に対する一つ
の対象値です。各ウォッチポイントは、コマンド {\bf plot} 内の一つのグラフに
付随します。ウォッチポイントは、{\bf with lines} と {\bf with linespoints} の
描画スタイルでのみ機能します。その場合、そのグラフのすべての構成線分に
対し、そのグラフに付随するすべてのウォッチポイントがチェックされ、一つ
以上のウォッチポイントの対象がその線分上の点で満たされるかどうかを調べ
ます。対象条件を満たす (「ヒット」({\tt"}hits{\tt"}) と呼びます) 点の一覧は、グ
ラフの描画毎に累積されます。

例えば、対象値 y=100 のウォッチポイントがある場合、各線分に対して、そ
の両端点の y 座標がその対象値を挟んでいるかをチェックします。もしそう
なら、その線分上のある点 [x,y] が、対象条件 y=100 を完全に満たすことに
なります。そして線形補間、または 2 分反復法によりその対象点が見つかり
ます。

一つの plot コマンド上の複数のウォッチポイントは、順番に番号づけします。
各描画要素毎に、1 つ以上のウォッチポイントを指定できます。
例:
\preverbatim
\begin{verbatim}
    plot DATA using 1:2 smooth cnormal watch y=0.25 watch y=0.5 \
        watch y=0.75
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_watchpoints}
直前の plot コマンドで対象にヒットしたウォッチポイントは、WATCH\_n とい
う名前の配列に保存されます。直前の plot コマンドからヒットしたすべての
ウォッチポイントの要約を表示させることもできます。以下参照:
{\bf show watchpoints (p.~\pageref{show watchpoints})\index{watchpoints}}。

\preverbatim
\begin{verbatim}
    gnuplot> show watchpoints
    Plot title:     "DATA using 1:2 smooth cnormal"
      Watch 1 target y = 0.25         (1 hits)
              hit 1   x 49.7  y 0.25
      Watch 2 target y = 0.5          (1 hits)
              hit 1   x 63.1  y 0.5
      Watch 3 target y = 0.75         (1 hits)
              hit 1   x 67.8  y 0.75
\end{verbatim}
\postverbatim

平滑化: 線分は、それらを描画する際にチェックします。平滑化しないデータ
描画に対しては、これは、補間によって見つかる対象点は、2 つのデータ点を
結ぶ線分の上に完全に乗ることを意味します。データグラフを平滑化する場合
は、ヒットする点は平滑化された曲線に対する線分の上にあります。それが平
滑化しないデータに対する対象点よりも精度が良いか悪いかは、平滑化の当て
はめの質に依存します。

精度: 線分が関数描画で生成されたものであれば、f(x) = y となる x の値は
2 分反復法で見つけます。それ以外の場合は、その線分に沿う線形補間で座標
[x,y] を近似します。

\subsection*{ウォッチマウス (watch mouse)}
\addcontentsline{toc}{subsection}{ウォッチマウス (watch mouse)}
\label{watchpoints mouse}%
\label{watch mouse}%

現在のマウス x 座標をウォッチ対象として使用すると、マウスの水平位置を
追跡しながら、グラフの線に沿って移動するラベルを生成します。これにより
同じグラフ上の複数の曲線の y の値を同時に表示することも可能です。現在
の位置を示す点とラベルの見た目は、{\bf set style watchpoint} で変更できま
す。

例:

\preverbatim
\begin{verbatim}
    set style watchpoint labels point pt 6 ps 2 boxstyle 1
    set style textbox 1 lw 0.5 opaque
    plot for [i=1:N] "file.dat" using 1:(column(i)) watch mouse
\end{verbatim}
\postverbatim

\subsection*{ウォッチラベル (watch labels)}
\addcontentsline{toc}{subsection}{ウォッチラベル (watch labels)}
\label{watchpoint labels}%
\label{watch labels}%
デフォルトではラベルは、対象 {\tt"}watch mouse{\tt"} に対して常に生成します。他
の対象に対しても、コマンド {\bf set style watchpoint labels} を使えばラベ
ルをオンにできます。ラベル文字列は {\tt"}x : y{\tt"} で、x, y は対象点の座標、そ
の書式化は対応する軸に対する現在の設定を使用します。

例:
\preverbatim
\begin{verbatim}
    set y2tics format "%.2f<C2><B0>"
    set style watchpoint labels point pt 6
    plot FOO axes x1y2 watch mouse
\end{verbatim}
\postverbatim

\newpage\part{描画スタイル (Plotting styles)}
\label{plotting styles}%
\index{plot styles}%

gnuplot では、たくさんの描画スタイルが利用できます。
それらは、アルファベット順に以下に紹介されています。
コマンド {\bf set style data} と {\bf set style function} は、それ以降の
{\bf plot} や {\bf splot} コマンドに対してデフォルトの描画スタイルを変更
します。

描画スタイルは、コマンド {\bf plot} や {\bf splot} の一部分として、明示的にオ
プション指定することもできます。一つの描画の中で、複数の描画スタイルを
組み合わせたい場合は、各要素に対して描画スタイルを指定する必要がありま
す。

例:

\preverbatim
\begin{verbatim}
    plot 'data' with boxes, sin(x) with lines
\end{verbatim}
\postverbatim

各描画スタイルは、それ自体がデータファイルからのいくつかのデータの組
を期待します。例えば、デフォルトでは {\bf lines} スタイルは、y の値だけの
1 列のデータ (x の値は暗黙に順番に取られる)、または最初が x, 次が y の
2 つの列を期待しています。ファイルの何列のデータを描画データと解釈させ
るうまい方法に関する情報については、以下参照: {\bf using (p.~\pageref{using})\index{using}}。

\section*{Arrows}
\addcontentsline{toc}{section}{Arrows}
\label{plotting styles arrows}%
\label{style arrows}%
\label{with arrows}%
\label{arrows}%
\index{arrows}%
2 次元のスタイル {\bf arrows} は、各点 (x,y) に長さと方向の角を指定して矢
印を描きます。追加の入力列は、各データ点毎の variable color 情報、ある
いは arrow style として使用します。
これは、矢先の場所の指定方法以外は 2 次元描画スタイルの {\bf with vectors}
と同じで、矢先は delta\_x + delta\_y でなく length (長さ) + angle (角)
で与えます。以下参照: {\bf with vectors (p.~\pageref{with vectors})\index{vectors}}。

\preverbatim
\begin{verbatim}
    4 列:  x  y  length  angle
\end{verbatim}
\postverbatim

キーワード {\bf with arrows} の後ろには、直接 arrow style 属性を指定したり
定義済みの arrow style 番号を指定、または {\bf arrowstyle variable} による
各矢印毎に適用したい arrow style 番号を他の列から読み込ませることの指
定、などを追加できます。

正の {\bf length} 値は、x 軸の座標で解釈します。
-1 $<$ {\bf length} $<$ 0 の値は、水平グラフ座標、すなわち $|$length$|$ を全体のグ
ラフ幅に対する割合として解釈します。
gnuplot は x と y の拡大率の差、または描画アスペクト比に関して調整して、
見た目の長さが方向角とは独立であるようにしようとします。

{\bf angle} は常に度単位で指定します。
\subsection*{Arrowstyle variable}
\addcontentsline{toc}{subsection}{Arrowstyle variable}
\label{arrowstyle variable}%
\label{variable arrowstyle}%
描画スタイル {\bf with arrows} と {\bf with vectors} で、入力データの追加列を
与えて、事前に {\bf set style arrow} で定義した arrow スタイルに対応するス
タイル番号を指定することができます。

例:
\preverbatim
\begin{verbatim}
    set style arrow 1 head nofilled linecolor "blue" linewidth 0.5
    set style arrow 2 head filled linecolor "red" linewidth 1.0
    # 第 5 列の値は 1 か 2 のいずれかで、それが事前に定義したスタイル
    # のうち使用する方を決定する
    plot DATA using 1:2:3:4:5 with arrows arrowstyle variable
\end{verbatim}
\postverbatim

\newpage
 \section*{ビースウォーム描画 (Bee swarm plots)}
\addcontentsline{toc}{section}{ビースウォーム描画 (Bee swarm plots)}
\label{beeswarm}%
\index{beeswarm}%
\label{bee swarm}%
\index{jitter}%
~
 \gpinsetfigure{figure_jitter}
ビースウォーム (bee swarm) グラフは、揺らぎ (jitter) を適用して重複点
を分離することにより得られる結果です。その典型的な例は、各点に x 座標
を決定する 2 つ以上のカテゴリによって表わされる y の値の分布の比較です。
重なりの判定基準や、jitter で使用する移動パターンを制御する方法に関し
ては、以下参照: {\bf set jitter (p.~\pageref{set jitter})\index{jitter}}。この図のグラフは、異なる jitter の設定に
対する同じ plot コマンドによって作られたものです。

\preverbatim
\begin{verbatim}
    set jitter
    plot $data using 1:2:1 with points lc variable
\end{verbatim}
\postverbatim
\section*{Boxerrorbars}
\addcontentsline{toc}{section}{Boxerrorbars}
\label{plotting styles boxerrorbars}%
\label{style boxerrorbars}%
\label{with boxerrorbars}%
\label{boxerrorbars}%
\index{boxerrorbars}%
描画スタイル {\bf boxerrorbars} は 2 次元のデータ描画でのみ利用可能です。
これは、3 列、または 4 列、または 5 列のデータが必要です。入力列を追加
(4,5,6 列目) すると、それらは各データ点毎の variable color 情報 (以下
参照: {\bf linecolor (p.~\pageref{linecolor})\index{linecolor}}, {\bf rgbcolor variable (p.~\pageref{rgbcolor variable})\index{variable}}) として使われます。

\preverbatim
\begin{verbatim}
    3 列:  x  y  ydelta
    4 列:  x  y  ylow  yhigh          (xdelta <= 0 は boxwidth を使用)
    5 列:  x  y  ylow  yhigh  xdelta  (xdelta <= 0 は boxwidth を使用)
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_boxerrorbars}
y の誤差を {\tt"}ydelta{\tt"} の形式で与える場合は、箱の横幅は 4 列目の値を使用
し、{\tt"}ylow yhigh{\tt"} の形式で与える場合は、横幅は 5 列目の値を使用します。
xdelta の値が 0 かまたは負の場合は、箱の横幅は、事前に与える boxwidth
の値で制御します。以下参照: {\bf set boxwidth (p.~\pageref{set boxwidth})\index{boxwidth}}。

誤差線の垂直方向は、{\bf yerrorbars} スタイル同様に y の誤差の値を表現する
ように描きます。y-ydelta から y+ydelta まで、あるいは ylow から yhigh
まで、これらは何列のデータが与えられているかによって決まります。誤差線
の描画で使用する線スタイルは、{\bf set bars} を使って制御できますが、使わ
なければ、箱の境界と同じもので誤差線を描きます。

非推奨: 古いバージョンの gnuplot では、{\tt"}ylow yhigh{\tt"} の誤差形式の 4 列
のデータに対して {\bf boxwidth = -2.0} を特別に扱っていました。その場合、
隣接する箱の間に隙間ができないように箱の幅を調節していました。この処理
は、後方互換性のために残されていますが、将来のバージョンでは削除するで
しょう。

\section*{Boxes}
\addcontentsline{toc}{section}{Boxes}
\label{plotting styles boxes}%
\label{style boxes}%
\label{with boxes}%
\label{boxes}%
\index{boxes}%
2 次元グラフでは、スタイル {\bf boxes} は与えられた x 座標を中心とし、x 軸
から (すなわち y=0 からであって、グラフの境界からではない) 与えられた
y 座標まで伸ばした長方形の箱を書きます。箱の横幅は入力の追加列で指定す
ることもできますし、{\bf set boxwidth} で制御することもできます。そうでな
ければ、各箱は、隣接する箱同士がくっつくように引き伸ばされます。

3 次元グラフでは、スタイル {\bf boxes} は与えられた x, y 座標を中心とし、
xy 平面 (z=0) から与えられた z 座標まで伸ばした直方体の箱を書きます。
x 方向の箱の幅は、別の入力列か {\bf set boxwidth} で指定でき、y 方向の箱の
奥行きは、{\bf set boxdepth} で制御できます。箱は、2 次元グラフのように、
自動的にはくっつくように引き伸ばされません。
\subsection*{2 次元の boxes (2D boxes)}
\addcontentsline{toc}{subsection}{2 次元の boxes (2D boxes)}
\label{style boxes 2D}%
\label{boxes 2D}%

{\bf plot with boxes} は、基本的に 2 列、または 3 列のデータを使用します。
さらに入力列を追加すると、それは、可変線色 (variable line color) や塗
り潰し色の情報として使用します。以下参照: {\bf rgbcolor variable (p.~\pageref{rgbcolor variable})\index{variable}}。

\preverbatim
\begin{verbatim}
    2 列:  x  y
    3 列:  x  y  x_width
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_boxes}
箱の幅は 3 つのうち一つの方法で決定されます。入力データに 3 列目のデー
タがある場合は、それを箱の幅として使用します。そうでない場合でコマンド
{\bf set boxwidth} で箱の幅をセットした場合は、それを使います。そのどちら
でもない場合は、隣接する箱がくっつくように箱の幅を自動的に計算します。

箱の内部は現在の塗りつぶしスタイル (fillstyle) で塗りつぶします。それ
以外に、塗りつぶしスタイルを plot コマンド上で指定することもできます。
以下参照: {\bf set style fill (p.~\pageref{set style fill})\index{fill}}。
塗り潰し色を plot コマンドで指定しなければ、現在の線色を使用します。

例:

データファイルを単色塗りした箱で描画し、箱同士を少し垂直方向にスペース
を空ける (棒グラフ):

\preverbatim
\begin{verbatim}
     set boxwidth 0.9 relative
     set style fill solid 1.0
     plot 'file.dat' with boxes
\end{verbatim}
\postverbatim

塗り色を明示してパターン塗りスタイルの箱で sin と cos のグラフを描画:

\preverbatim
\begin{verbatim}
     set style fill pattern
     plot sin(x) with boxes fc 'blue', cos(x) with boxes fc 'gold'
\end{verbatim}
\postverbatim

sin はパターン 0 で、cos はパターン 1 で描画されます。追加される描画は
出力ドライバがサポートするパターンを循環的に使用します。

\subsection*{3 次元の boxes (3D boxes)}
\addcontentsline{toc}{subsection}{3 次元の boxes (3D boxes)}
\label{style boxes 3D}%
\label{boxes 3D}%

{\bf splot with boxes} には、少なくとも 3 列の入力列が必要です。さらに入力
列を追加すると、それは箱の幅や塗り潰し色の情報として使用します。

\preverbatim
\begin{verbatim}
    3 列:  x  y  z
    4 列:  x  y  z  [x_width または color]
    5 列:  x  y  z  x_width  color
\end{verbatim}
\postverbatim

最後の列は、splot コマンドで明示的に variable カラーモードを指定してい
る場合のみ色として使用します。例:

\preverbatim
\begin{verbatim}
    splot 'blue_boxes.dat' using 1:2:3 fc "blue"
    splot 'rgb_boxes.dat' using 1:2:3:4 fc rgb variable
    splot 'category_boxes.dat' using 1:2:3:4:5 lc variable
\end{verbatim}
\postverbatim

最初の例は、すべての箱を青に塗り、幅はあらかじめ {\bf set boxwidth} で設定
した幅を使用します。2 つ目の例は、4 列目を 24-bit RGB 色として認識する
ため、箱の幅は相変わらず {\bf set boxwidth} の幅を使います。3 つ目の例は、
4 列目の値を箱の幅として読み、5 列目の整数値を色を提供する線種と解釈し
ます。

\gpinsetfigure{figure_3Dboxes}
デフォルトでは、箱には太さはなく、それらは単に xz 平面に平行な 1 つの
長方形で構成されますが、y 方向の幅として 0 でない値を設定すれば 4 面と
天井をを持つ本当の箱に変更できます。以下参照: {\bf set boxdepth (p.~\pageref{set boxdepth})\index{boxdepth}}。

3 次元の箱は、曲面ではなく pm3d 長方形として処理しています。よって、表
裏の描画順は、{\bf set hidden3d} の影響を受けません。以下参照: {\bf set pm3d (p.~\pageref{set pm3d})\index{pm3d}}。
gnuplot バージョン 6 は、箱の端はグラフの fill style の境界色で色付け
します。これはバージョン 5 とは異なる変更です。
最良の結果を得るには、{\bf set pm3d depthorder base} と {\bf set pm3d lighting}
を組み合わせてください。

\section*{Boxplot}
\addcontentsline{toc}{section}{Boxplot}
\label{plotting styles boxplot}%
\label{style boxplot}%
\label{with boxplot}%
\label{boxplot}%
\index{boxplot}%
boxplot は、値の統計的な分布を表現する一般的な方法です。gnuplot の
boxplot は常に鉛直向きで、値の分布は y 軸に沿って表示します。四分位境
界は、1/4 の点が第一四分位境界以下の y の値を持つように、1/2 の点が第
二四分位境界 (メジアン) 以下の y の値を持つように、等と決定されます。
第一四分位と第三四分位の間の領域を囲むように箱を描画し、メジアン値のと
ころには水平線を描きます。箱ひげは、箱からユーザ指定限界まで延長します。
それらの限界の外にある点 (外れ値) は、ひとつひとつ描画します。boxplot
の幅は、{\bf set boxwidth} か plot コマンドの {\bf using} 指定の 3 列目を与え
ることで制御できます。

書式

\preverbatim
\begin{verbatim}
    2 列:   x-position        y-value
    3 列:   x-position        y-value  boxwidth
    4 列:   first-x-position  y-value  boxwidth  category
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_boxplot}
boxplot の水平位置は、通常 plot コマンドの {\bf using} 指定の最初の列に定
数値 (x-position) として与えたものになります。その boxplot の位置の下
に特定のラベルを置くことができますが、それには、plot コマンドに
{\bf xticlabel} 指定を追加するか (2 列、または 3 列書式)、または独立したデ
ータ列内の文字列を与えるか (4 列書式)、の方法があります。以下の例は、
両方とも boxplot サンプル図のレイアウトと同様のグラフを生成します。

例

\preverbatim
\begin{verbatim}
    #
    # 2 つの異なるファイルからの y 値の分布の比較
    set border 2                    # 左境界線のみ
    set xtics nomirror scale 0      # 目盛り刻み無し、ラベルのみ
    set ytics rangelimited nomirror
    plot 'dataset_A' using (1.):2:xticlabel('A') with boxplot, \
         'dataset_B' using (2.):2:xticlabel('B') with boxplot
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
    #
    # 同じファイル内の 2 つのデータカテゴリの y 値の比較
    # 各行の 1 列目にはカテゴリを示す文字列 ("A" か "B")、2 列目にデ
    # ータ値が含まれ、ラベルはカテゴリ文字列から自動生成する
    start_x = 1.0
    boxwidth = 0.5
    plot 'mixeddata' using (start_x):2:(boxwidth):1 with boxplot
\end{verbatim}
\postverbatim

デフォルトでは、using で第 2 フィールドに指定した列のすべての y の値か
ら、ただ 1 つの boxplot を生成します。もし {\bf using} で第 4 フィールドを
指定した場合は、その入力列の内容は個別のカテゴリを識別するための文字列
として使います。入力列にある個々のカテゴリに対して、別な boxplot を描
画します。それらの boxplot 間の水平間隔は、デフォルトでは 1.0 ですが、
それは {\bf set style boxplot separation} で変更できます。デフォルトでは、
カテゴリ識別子は、各 boxplot の下の目盛りラベルとして書きます。
もしカテゴリ列に数値が含まれていても、それはやはりあくまで文字列として
扱われるので、boxplot x 座標には通常は対応しません。

入力ファイル内のデータ点の順序は重要ではありません。データ点が入力ファ
イル内で 2 行の空行で分離される複数のブロックになっている場合は、個々
のブロックはキーワード {\bf index} で選択するか、またはデータブロック番号
({\bf column(-2)}) を第 4 列のレベル値として使用することができます。以下
参照: {\bf pseudocolumns (p.~\pageref{pseudocolumns})\index{pseudocolumns}}, {\bf index (p.~\pageref{index})\index{index}}。

デフォルトでは箱ひげは、箱の端から、y の値が四分位範囲の 1.5 倍以内で
最も離れているような点まで延長します。外れ値は、デフォルトでは円
(point type 7) で描きます。箱ひげの端の棒の幅は、{\bf set bars} か
{\bf set errorbars} で制御できます。複数の外れ値が同じ y の値を持つ場合、
水平方向に 1 文字幅分ずらしますが、その間隔は、{\bf set jitter} で制御でき
ます。

これらのデフォルトの性質は {\bf set style boxplot} コマンドで変更できます。
以下参照: {\bf set style boxplot (p.~\pageref{set style boxplot})\index{boxplot}}, {\bf bars (p.~\pageref{bars})\index{bars}}, {\bf boxwidth (p.~\pageref{boxwidth})\index{boxwidth}}, {\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}},
{\bf candlesticks (p.~\pageref{candlesticks})\index{candlesticks}}。
\newpage
 \section*{Boxxyerror}
\addcontentsline{toc}{section}{Boxxyerror}
\label{plotting styles boxxyerror}%
\label{style boxxyerror}%
\label{with boxxyerror}%
\label{boxxyerror}%
\index{boxxyerror}%
\gpinsetfigure{figure_boxxyerror}
{\bf boxxyerror} 描画スタイルは 2 次元のデータ描画でのみ利用可能です。これ
は、{\bf xyerrorbars} スタイルが線分の交差で表現するところを長方形で表現す
ることを除けばほぼ同じです。これは入力データの 4 列、または 6 列を使用
します。余分な入力列 (5 列目、または 7 列目) は、データ点毎の可変色
(variable color) 情報の提供として扱います (以下参照: {\bf linecolor (p.~\pageref{linecolor})\index{linecolor}},
{\bf rgbcolor variable (p.~\pageref{rgbcolor variable})\index{variable}})。

\preverbatim
\begin{verbatim}
    4 列:  x  y  xdelta  ydelta
    6 列:  x  y  xlow  xhigh  ylow  yhigh
\end{verbatim}
\postverbatim

箱の幅と高さは {\bf xyerrorbars} スタイル同様 x, y の誤差から決定されます
つまり、xlow から xhigh までと ylow から yhigh まで、または x-xdelta
から x+xdelta までと y-ydelta から y+ydelta まで。これらは何列のデータ
が与えられているかによって決まります。

6 列の形式のコマンドは、任意の x, y の幅の長方形を書く簡単な方法を提供
します。

箱の内部は現在の塗りつぶしスタイル (fillstyle) に従って塗られます。詳
細は、以下参照: {\bf set style fill (p.~\pageref{set style fill})\index{fill}}, {\bf boxes (p.~\pageref{boxes})\index{boxes}}。plot コマンド上で新しい塗り
つぶしスタイルを指定することもできます。
\section*{Candlesticks}
\addcontentsline{toc}{section}{Candlesticks}
\label{plotting styles candlesticks}%
\label{style candlesticks}%
\label{with candlesticks}%
\label{candlesticks}%
\index{candlesticks}%
\gpinsetfigure{figure_candlesticks}
{\bf candlesticks} スタイルは、金融データの 2 次元のデータ描画、および統計
データのひげ付きの棒グラフを生成するのに使えます。
記号は、水平方向には x を中心とし、垂直方向には開始値 (open) と終値
(close) を境界とする長方形が使われます。そして、その x 座標のところに
長方形のてっぺんから最高値 (high) までと、長方形の底から最安値 (low)
までの垂直線が引かれますが、この垂直線は最高値と最安値が入れ替わっても
変更されません。

基本的に 5 列のデータが必要です:

\preverbatim
\begin{verbatim}
     金融データ:   date  open  low  high  close
     箱ひげ描画:   x  box_min  whisker_min  whisker_high  box_high
\end{verbatim}
\postverbatim

長方形の幅はコマンド {\bf set boxwidth} で制御できますが、以前の gnuplot
への後方互換性として、boxwidth パラメータが設定されていない場合は
{\bf set errorbars $<$width$>$} を長方形の幅として取ります。

これの代わりに、箱ひげ (box-and-whisker) のグループ化に関する明示的な
幅の指定を、追加の 6 番目のデータで指定できます。その幅は、x 座標と同
じ単位で与えなければいけません。

入力列を追加 (6 列目、または 6 列目がデータの幅として使れる場合は 7 列
目) すると、それらは各データ点毎の variable color 情報 (以下参照:
{\bf linecolor (p.~\pageref{linecolor})\index{linecolor}}, {\bf rgbcolor variable (p.~\pageref{rgbcolor variable})\index{variable}}) として使われます。

デフォルトでは、鉛直線分のてっぺんと底には垂直に交わる水平線は引かれま
せん。それを引きたい場合、例えば典型的な例は箱ひげ図 (box-and-whisker
plot) での使用ですが、描画コマンドにキーワード {\bf whiskerbars} を追加し
てください。デフォルトでは、水平線は箱 (candlestick) の水平幅一杯に引
かれますが、それは全体の幅に対する割合を指定することで変更できます。

金融データの通常の慣習では、(開始値) $<$ (終値) の場合は長方形は空で、
(終値) $<$ (開始値) の場合は単色塗りします。現在の fillstyle に {\tt"}empty{\tt"}
をセットしている場合は、実際にこうなります。以下参照: {\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}}。
fillstyle に solid (単色塗り)、または pattern (パターン) をセットして
いる場合は、開始値、終値に関係なく、すべての箱にそれが使われます。以下
参照: {\bf set errorbars (p.~\pageref{set errorbars})\index{errorbars}}, {\bf financebars (p.~\pageref{financebars})\index{financebars}}。また、以下も参照してください。
\href{http://www.gnuplot.info/demo/candlesticks.html}{\tt candlestick
}

と
\href{http://www.gnuplot.info/demo/finance.html}{\tt finance
}

のデモ。

注意: 箱ひげグラフ上に記号や線を追加して置くには、追加の描画要素が必要
になります。以下の最初の例は、2 番目の要素で、箱を潰して中央値の場所に
置く線分にしています。

\preverbatim
\begin{verbatim}
 # データ列:  X '最小値' '1/4 位の値' '中央値' '3/4 位の値' '最大値'
 set errorbars 4.0
 set style fill empty
 plot 'stat.dat' using 1:3:2:6:5 with candlesticks title 'Quartiles', \
      ''         using 1:4:4:4:4 with candlesticks lt -1 notitle
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
 # ひげの上に水平線を伴う描画で、水平線の幅を全体幅の 50% にする
 plot 'stat.dat' using 1:3:2:6:5 with candlesticks whiskerbars 0.5
\end{verbatim}
\postverbatim

以下参照: {\bf set boxwidth (p.~\pageref{set boxwidth})\index{boxwidth}}, {\bf set errorbars (p.~\pageref{set errorbars})\index{errorbars}}, {\bf set style fill (p.~\pageref{set style fill})\index{fill}}, {\bf boxplot (p.~\pageref{boxplot})\index{boxplot}}。
\section*{Circles}
\addcontentsline{toc}{section}{Circles}
\label{plotting styles circles}%
\label{style circles}%
\label{with circles}%
\label{circles}%
\index{circles}%
\gpinsetfigure{figure_circles}
スタイル {\bf circles} は、各データ点に明示された半径の円を描画します。半
径は、常に描画の水平軸 (x または x2) の単位で解釈されます。y 方向の縮
尺と描画のアスペクト比は、いずれも無視されます。半径を各点毎の列として
指定しない場合、それは {\bf set style circle} から取ります。この場合、半径
は graph か screen の座標系を使用できます。

各点毎に、そして事前に、設定する属性の多くの組み合わせ指定が可能です。
2 次元描画では、以下が指定できます。

\preverbatim
\begin{verbatim}
   using x:y
   using x:y:radius
   using x:y:color
   using x:y:radius:color
   using x:y:radius:arc_begin:arc_end
   using x:y:radius:arc_begin:arc_end:color
\end{verbatim}
\postverbatim

デフォルトでは完全な円を描画します。
この結果は {\bf points} と pointtype 7 を用いて、可変点サイズのグラフを書
くことと同様ですが、その円を x 軸の範囲で伸縮すことが違います。
4 列目、5 列目に開始角と終了角 (単位は度)を指定することで円弧の一部を
描画することもできます。

using 指定の最後の列で、円毎の色も指定できます。この場合、plot コマン
ドには {\bf lc variable} か {\bf fillcolor rgb variable} のような変動色指定を
入れる必要があります。

以下参照: {\bf set style circle (p.~\pageref{set style circle})\index{circle}}, {\bf set object circle (p.~\pageref{set object circle})\index{circle}}, {\bf set style fill (p.~\pageref{set style fill})\index{fill}}。

3 次元描画では、using 指定には以下のものが必要です。

\preverbatim
\begin{verbatim}
   splot DATA using x:y:z:radius:color
\end{verbatim}
\postverbatim

変動色の列はオプション (省略可) です。

例:

\preverbatim
\begin{verbatim}
   # 面積が 3 列目の値に比例するような円を描画
   set style fill transparent solid 0.2 noborder
   plot 'data' using 1:2:(sqrt($3)) with circles, \
        'data' using 1:2 with linespoints
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
   # 円の代わりにパックマンを描画
   plot 'data' using 1:2:(10):(40):(320) with circles
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_piechart}
\index{piechart}%

\preverbatim
\begin{verbatim}
   # インランデータで円グラフを描画
   set xrange [-15:15]
   set style fill transparent solid 0.9 noborder
   plot '-' using 1:2:3:4:5:6 with circles lc var
   0    0    5    0    30    1
   0    0    5   30    70    2
   0    0    5   70   120    3
   0    0    5  120   230    4
   0    0    5  230   360    5
   e
\end{verbatim}
\postverbatim

\section*{Contourfill}
\addcontentsline{toc}{section}{Contourfill}
\label{plotting styles contourfill}%
\label{style contourfill}%
\label{with contourfill}%
\label{contourfill}%
\index{contourfill}%
書式:
\preverbatim
\begin{verbatim}
    splot f(x,y) with contourfill {at base} {fillstyle <style>}
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_contourfill}
contourfill は、3 次元描画スタイルで、pm3d 曲面を z の等高線に沿って切
った断片の色付けに使います。これは、2 次元射影 ({\bf set view map} か
{\bf with contourfill at base}) で、等高線の間を単色で塗り潰した 2 次元の
等高線グラフを作成するのに使えます。各断片の境界と色の割り当ては、いず
れも {\bf set contourfill} で制御できます。以下も参照: {\bf pm3d (p.~\pageref{pm3d})\index{pm3d}}, {\bf zclip (p.~\pageref{zclip})\index{zclip}}。

デフォルトの塗り潰し属性は {\bf set pm3d} から取り出しますが、splot コマン
ドで異なる fillstyle を与えればそれを変更できます。

この描画スタイルは、{\bf set contours} と組み合わせて、その断片を切り分け
る等高線を重ね描きすることができます。{\bf set contourfill} の断片の境界を
{\bf set cntrparam} の等高線境界とを合わせるように注意してください。

\preverbatim
\begin{verbatim}
    # ztics で定義される断片境界
    # 断片の z の中央値に割り当てられるパレットで色付け
    set pm3d border retrace
    set contourfill ztics
    set ztics -20, 5, 20
    set contour
    set cntrparam cubic levels increment -20, 5, 20
    set cntrlabel onecolor
    set view map
    splot g(x,y) with contourfill, g(x,y) with lines nosurface
\end{verbatim}
\postverbatim

デフォルトでは、等高線は元の 3 次元曲面上に描画します。
{\bf with contourfill at base} で描画すると、代わりに色付き曲面を底面に投
影します。曲面とその色付き等高線の投影の両方を描くには
\preverbatim
\begin{verbatim}
    set hidden3d front
    splot f(x,y) with lines, f(x,y) with contourfill at base
\end{verbatim}
\postverbatim

\section*{Dots}
\addcontentsline{toc}{section}{Dots}
\label{plotting styles dots}%
\label{style dots}%
\label{with dots}%
\label{dots}%
\index{dots}%
\gpinsetfigure{figure_dots}
{\bf dots} スタイルは各点に小さなドットを描画します。これはたくさんの点か
らなる散布図の描画に便利でしょう。2 次元描画では 1 列、または 2 列の入
力データが、3 次元描画では 3 列のデータが必要です。

出力形式によっては (post, pdf など)、ドットの大きさは linewidth を変更
することで制御できることもあります。

\preverbatim
\begin{verbatim}
    1 列:  y         # x は行番号
    2 列:  x  y
    3 列:  x  y  z   # 3D のみ (splot)
\end{verbatim}
\postverbatim

\newpage
 \section*{Ellipses}
\addcontentsline{toc}{section}{Ellipses}
\label{plotting styles ellipses}%
\label{style ellipses}%
\label{with ellipses}%
\label{ellipses}%
\index{ellipses}%
\gpinsetfigure{figure_ellipses}
スタイル {\bf ellipses} は、各データ点に楕円 (ellipse) を描画します。この
スタイルは、2 次元描画にのみ適用されます。各楕円は、中心、主軸直径、副
軸直径、x 軸と主軸のなす角、で表現されます。

\preverbatim
\begin{verbatim}
    2 列: x y
    3 列: x y diam  (主軸、副軸の両方に使用)
    4 列: x y major_diam minor_diam
    5 列: x y major_diam minor_diam angle
\end{verbatim}
\postverbatim

2 列のデータのみが与えられた場合は、それらは中心の座標とみなされ、楕円
はデフォルトの大きさで描画されます (以下参照: {\bf set style ellipse (p.~\pageref{set style ellipse})\index{ellipse}})。楕
円の向きは、主軸と x 軸のなす角で定義されますが、それもデフォルトの
ellipse のスタイルから取られます (以下参照: {\bf set style ellipse (p.~\pageref{set style ellipse})\index{ellipse}})。

3 列のデータが与えられた場合は、3 列目は主、副両軸の直径 (幅) として使
われます。向きはデフォルトで 0 になります。

4 列のデータが与えられた場合は、それらは中心の座標、主軸直径 (幅)、副
軸直径として使わわれます。これらは直径であり、半径でないことに注意して
ください。
一方の直径が負ならば、直径は両方とも {\bf set style ellipse} で設定したデ
フォルト値を使います。

5 列のデータとして、向きの角度 (単位は度) を指定することもできます。
楕円は、3,4,5 列の値は負の値として指定することで、それらのデフォルトの
値を利用して楕円を書かせることもできます。

上のすべての場合で、variable color データを最後の列 (3,4,5,6 列目) と
して追加できます。以下参照: {\bf colorspec (p.~\pageref{colorspec})\index{colorspec}}。

キーワード {\bf units}: {\bf units xy} が描画指定に含まれている場合、主軸直径
は水平軸 (x または x2) の単位、副軸直径は垂直軸 (y または y2) の単位で
あるとみなされます。x 軸と y 軸の縮尺が異なる場合、主軸と副軸の比は回
転後には正しくはなりません。
{\bf units xx} は、直径は両軸とも x 軸の単位で計算します。
{\bf units yy} は、直径は両軸とも y 軸の単位で計算します。
後の 2 つは、描画のサイズを変更しても、楕円は正しいアスペクト比を持ち
ます。plot コマンドで {\bf units} を省略した場合は、{\bf set style ellipse} の
設定を使います。

例 (楕円を有効な線種を周期的に使用して描画):

\preverbatim
\begin{verbatim}
   plot 'data' using 1:2:3:4:(0):0 with ellipses
\end{verbatim}
\postverbatim

以下も参照: {\bf set object ellipse (p.~\pageref{set object ellipse})\index{ellipse}}, {\bf set style ellipse (p.~\pageref{set style ellipse})\index{ellipse}}, {\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}}。

\section*{Filledcurves}
\addcontentsline{toc}{section}{Filledcurves}
\label{plotting styles filledcurves}%
\label{style filledcurves}%
\label{with filledcurves}%
\label{filledcurves}%
\index{filledcurves}%
\gpinsetfigure{figure_filledcurves}
スタイル {\bf filledcurves} は、2 次元描画と 3 次元描画 (バージョン 6.1 よ
り) の両方で利用できます。

2 次元描画スタイルは、3 種類の異なる指定が可能です。最初の 2 種類は、
1 つの関数描画、あるいは (x,y) 2 列の入力データ用のものです。

2 次元描画用の書式:

\preverbatim
\begin{verbatim}
   plot f(x) with filledcurves [option]
   plot DATA using 1:2    with filledcurves [option]
   plot DATA using 1:2:3  with filledcurves [option]
\end{verbatim}
\postverbatim

ここで、オプションは以下のうちのいずれかです:

\preverbatim
\begin{verbatim}
   closed
   {above|below} x1 x2  y r=<a> xy=<x>,<y>
   between
\end{verbatim}
\postverbatim

最初のものは {\bf closed} で、これは曲線それ自身を閉多角形と見なします。入
力データが 2 列の場合にはこれがデフォルトです。

\preverbatim
\begin{verbatim}
   filledcurves closed   ... 丁度閉曲線で囲まれる領域
\end{verbatim}
\postverbatim

2 種類目は指定された軸、あるいは水平線、垂直線、与えられた点などと、曲
線との間に作られる領域を塗りつぶします。この場合、さらに塗り潰し領域を
指定した直線の上または下に制限できます。

\preverbatim
\begin{verbatim}
   filledcurves x1       ... x1 軸
   filledcurves x2       ... x2 軸 (y1, y2 軸も同様)
   filledcurves y=42     ... 直線 y=42, すなわち x 軸と平行
   filledcurves xy=10,20 ... x1,y1 軸での点 10,20 (扇型のような形状)
   filledcurves above r=1.5  極座標での動径軸の 1.5 の外側の領域
\end{verbatim}
\postverbatim

3 種類目は、x 座標の集合が同じである 2 つの曲線の間の領域を塗り潰しま
す。これは、(x, y1, y2) の 3 列の入力データが必要です。入力データが 3
列以上の場合にはこれがデフォルトです。
\gpinsetfigure{figure_yerrorfill}
2 列目が y の値で、3 列目がその誤差データである場合は、この 3 列データ
列指定を、不確定領域をその片側に持つことを示す実線と組み合わせて利用す
ることができます。
これに似た 3 次元描画スタイル {\bf zerrorfill} も参照してください。

\preverbatim
\begin{verbatim}
   plot $DAT using 1:($2-$3):($2+$3) with filledcurves, \
        $DAT using 1:2 smooth mcs with lines
\end{verbatim}
\postverbatim

\subsection*{Above/below}
\addcontentsline{toc}{subsection}{Above/below}
\label{filledcurves above}%
\label{filledcurves below}%
{\bf above} と {\bf below} オプションは
\preverbatim
\begin{verbatim}
   plot f(x) with filledcurves {above|below} {y|r}=<val>
\end{verbatim}
\postverbatim
および
\preverbatim
\begin{verbatim}
   plot DATA with filledcurves using 1:2:3 with filledcurves {above|below}
\end{verbatim}
\postverbatim
の形のコマンドに適用可能です。どちらの場合でも、これらのオプションは
塗りつぶし領域を、境界線、または境界曲線の片側に制限します。

データファイルから描かれた曲線の塗りつぶしを拡大すると、何もなくなった
り正しくない領域になることがありますが、それは gnuplot が、領域ではな
く点や線をクリッピングしているからです。

$<$x$>$, $<$y$>$, $<$a$>$ が描画領域の外にある場合、それらはグラフの境界へ移動され
ます。よって、オプション xy=$<$x$>$,$<$y$>$ を指定した場合の実際の塗りつぶし領
域は、xrange や yrange に依存します。

\subsection*{3 次元滝グラフ (3D waterfall plots)}
\addcontentsline{toc}{subsection}{3 次元滝グラフ (3D waterfall plots)}
\label{filledcurves 3D}%
\label{filledcurves waterfall}%
\label{waterfallplots}%
\index{waterfallplots}%
\preverbatim
\begin{verbatim}
    set style fill solid border lc "black"
    splot for [scan=N:1:-1] DATA index scan \
          using x:y:z with filledcurves fc background
\end{verbatim}
\postverbatim

gnuplot 6.1 では、2 次元曲線の集合を直交軸に沿って順番に上書きしていく
ように表示するように、3 次元の {\bf filledcurves} グラフスタイルを設計して
います。通常各曲線に対して x あるいは y の一方は固定値で、それぞれの曲
線を順番に増えていく y の場所に z=f(x) として表示する、あるいは順番に
増えていく x の場所に z=f(y) として表示するようにします。これは、「滝
グラフ」を描くのに便利です。

前面の曲線が遠い曲線を覆い隠すことを保証するためには、後ろから前への曲
線の列の順番付けが重要です。

以下も参照: {\bf fenceplots (p.~\pageref{fenceplots})\index{fenceplots}}。

\subsection*{塗り潰しの属性 (fill properties)}
\addcontentsline{toc}{subsection}{塗り潰しの属性 (fill properties)}
\label{filledcurves border}%
\index{border}%
{\bf with filledcurves} での描画は、fillstyle (solid/transparent/pattern)
や fillcolor を指定することでさらにカスタマイズできます。plot コマンド
で fillstyle ({\bf fs}) を指定しなければ、現在のデフォルトの fill スタイル
を使用します。以下参照: {\bf set style fill (p.~\pageref{set style fill})\index{fill}}。plot コマンドで fillcolor
({\bf fc}) を指定しなければ、現在の線色を使います。

fillstyle の属性の \{\{no\}border\} は、filledcurves のモードがデフォルト
の {\bf closed} である場合に受け付けます。
例:
\preverbatim
\begin{verbatim}
    plot 'data' with filledcurves fc "cyan" fs solid 0.5 border lc "blue"
\end{verbatim}
\postverbatim
\section*{Financebars}
\addcontentsline{toc}{section}{Financebars}
\label{plotting styles financebars}%
\label{style financebars}%
\label{with financebars}%
\label{financebars}%
\index{financebars}%
{\bf financebars} スタイルは金融データの 2 次元のデータ描画でのみ利用可能
です。これは、x 座標 1 つ (通常日付) と、4 つの y 座標 (金額) を必要と
します。

\preverbatim
\begin{verbatim}
    5 列:   date  open  low  high  close
\end{verbatim}
\postverbatim

入力列を追加 (6 列目) すると、それらは各行毎の variable color 情報 (以
下参照: {\bf linecolor (p.~\pageref{linecolor})\index{linecolor}}, {\bf rgbcolor variable (p.~\pageref{rgbcolor variable})\index{variable}}) として使われます。

\gpinsetfigure{figure_financebars}
記号は、水平方向にはその x 座標に置かれ、垂直方向には最高値 (high) と
最安値 (low) を端とする線分が使われます。そして、その線分に水平左側の
刻みが開始値 (open) の所に、水平右側の刻みが終り値 (close) の所につき
ます。その刻みの長さは {\bf set errorbars} で変更できます。記号は最高値と
最安値が入れ替わっても変わりません。以下参照: {\bf set errorbars (p.~\pageref{set errorbars})\index{errorbars}},
{\bf candlesticks (p.~\pageref{candlesticks})\index{candlesticks}}。以下も参照してください。
\href{http://www.gnuplot.info/demo/finance.html}{\tt 金融データデモ。
}


\section*{Fillsteps}
\addcontentsline{toc}{section}{Fillsteps}
\label{style fillsteps}%
\label{with fillsteps}%
\label{fillsteps}%
\index{fillsteps}%
\preverbatim
\begin{verbatim}
    plot <data> with fillsteps {above|below} {y=<baseline>}
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_steps}
{\bf fillsteps} スタイルは 2 次元描画でのみ利用可能です。
これは、{\bf steps} とほぼ同じですが、曲線とベースライン (デフォルトは y=0)
との間の領域を現在の fillstyle で塗り潰します。オプション {\bf above} と
{\bf below} は、ベースラインの片方の部分のみ塗り潰します。一つのデータ点か
ら次の点への移動の際に、{\bf steps} と {\bf fillsteps} はいずれもまず x 座標の
変化の線を引き、その後 y 座標の変化の線を引くことに注意してください。
以下参照: {\bf steps (p.~\pageref{steps})\index{steps}}。
\preverbatim
\begin{verbatim}
  1 列:   y     # 行番号 (0 列目) による暗黙の x
  2 列:   x y
\end{verbatim}
\postverbatim
\section*{Fsteps}
\addcontentsline{toc}{section}{Fsteps}
\label{plotting styles fsteps}%
\label{style fsteps}%
\label{with fsteps}%
\label{fsteps}%
\index{fsteps}%
\gpinsetfigure{figure_fsteps}
{\bf fsteps} スタイルは 2 次元描画でのみ利用可能です。これは 2 本の線分で
隣り合う点をつなぎます: 1 本目は (x1,y1) から (x1,y2) まで、2 本目は
(x1,y2) から (x2,y2) まで。入力列の条件は、{\bf lines} や {\bf points} に対す
るものと同じです。{\bf fsteps} と {\bf steps} の違いは、{\bf fsteps} は、折れ線を
先に y 方向に書いてから次に x 方向に書くのに対し、{\bf steps} は先に x 方
向に書いてから次に y 方向に書きます。

以下も参照
\href{http://www.gnuplot.info/demo/steps.html}{\tt steps デモ。
}

\preverbatim
\begin{verbatim}
  1 列:   y     # 行番号 (0 列目) による暗黙の x
  2 列:   x y
\end{verbatim}
\postverbatim
\section*{Histeps}
\addcontentsline{toc}{section}{Histeps}
\label{plotting styles histeps}%
\label{style histeps}%
\label{with histeps}%
\label{histeps}%
\index{histeps}%
\gpinsetfigure{figure_histeps}
{\bf histeps} スタイルは 2 次元描画でのみ利用可能です。これはヒストグラム
の描画での利用を意図しています。y の値は、x の値を中心に置くと考え、
x1 での点は ((x0+x1)/2,y1) から ((x1+x2)/2,y1) までの水平線として表現
されます。端の点では、その線はその x 座標が中心になるように延長されま
す。隣り合う点同士の水平線の端は、その両者の平均値のところでの鉛直線、
すなわち ((x1+x2)/2,y1) から ((x1+x2)/2,y2) の線分で結ばれます。
入力列の条件は、{\bf lines} や {\bf points} に対するものと同じです。

{\bf autoscale} が有効である場合、x の範囲は、その延長された水平線の範囲で
はなく、データ点の範囲が選択されます。よって、端の点に関してはその水平
線は半分しか描かれないことになります。
以下も参照
\href{http://www.gnuplot.info/demo/steps.html}{\tt steps デモ。
}

\preverbatim
\begin{verbatim}
  1 列:   y     # 行番号 (0 列目) による暗黙の x
  2 列:   x y
\end{verbatim}
\postverbatim

\newpage
 \section*{温度分布図 (heatmaps)}
\addcontentsline{toc}{section}{温度分布図 (heatmaps)}
\label{heatmaps}%
\index{heatmaps}%
gnuplot のいくつかの描画スタイルで温度分布図 (heatmaps) を作ることがで
きます。どのスタイルを使うかは、データの型で決まります。

\gpinsetfigure{figure_heatmap}
ピクセルベースの温度分布図は、すべて分布図内の各ピクセルが完全に一つの
元のデータ値に対応するという特性を持っています。
ピクセルベースの画像スタイルは、データ値が規則的な長方形格子であること
を要求します。以下参照: {\bf with image (p.~\pageref{with image})\index{image}}。しかし、格子値の欠けを処理するこ
とは可能ですし (以下参照: {\bf sparse (p.~\pageref{sparse})\index{sparse}})、格子の一部を表示からマスクして消
してしまうことも可能です (以下参照: {\bf masking (p.~\pageref{masking})\index{masking}})。格子要素がそれほど多く
ない場合は、各長方形要素を別々に塗って ({\bf with image pixels})、平滑化や
非可逆圧縮が 結果の画像 ({\tt"}image{\tt"})に適用されないようにすることは通常は
いいでしょう。

\gpinsetfigure{figure_sector_heatmap}
ピクセルベース温度分布図の画像と同等の極形のものは、2 次元描画スタイル
{\bf sectors} で生成できます。各入力点は、ピクセルと同等の極座標格子上の一
つの環状の扇片に完全に対応します。以下に説明する極座標格子面のオプショ
ンとは違い、格子の個々の扇片は任意個提供できます。この描画スタイルを、
極座標グラフ、あるいは直交座標グラフの任意の場所に、極扇片を置くように
使うことができます。ここの図は、直交座標グラフ上で、温度分布図の極形の
2 つの半分を、原点を挟んで±Δx離れた場所に置き直したものを示します。

\gpinsetfigure{figure_mask}
データ点が規則的な長方形格子を構成しない場合は、補間やスプラインを使っ
て格子曲面に当てはめることがよく行われます。他には、点の密度関数を格子
平面や滑らかな曲面に写像することもできます。以下参照: {\bf set dgrid3d (p.~\pageref{set dgrid3d})\index{dgrid3d}}。
その格子曲面は、その後 pm3d 曲面として描画できます (例は以下参照:
{\bf masking (p.~\pageref{masking})\index{masking}})。この場合、温度分布図上の点と入力点との 1 対 1 対応は保持さ
れません。すなわち、温度分布表現の妥当性は、格子近似と同程度に過ぎませ
ん。デモコレクションに、点集合から 2 次元温度分布図を生成する例があり
ます。
\href{http://www.gnuplot.info/demo/heatmap_points.html}{\tt heatmap\_points.dem
}


\gpinsetfigure{figure_polar_grid}
あなたが使用する gnuplot が --enable-polar-grid オプション付きでビルド
された場合、極座標データ点を、2 次元極座標温度分布図を生成するのに使え、
各 {\tt"}ピクセル{\tt"} は事前に決定したθと r の範囲に対応します。以下参照:
{\bf set polar grid (p.~\pageref{set polar grid})\index{grid}}, {\bf with surface (p.~\pageref{with surface})\index{surface}}。この作業は、2 次元極座標空間で操作す
ることを除いて、丁度 {\bf set dgird3d} と {\bf with pm3d} を使用することの類似
です。

\section*{Histograms}
\addcontentsline{toc}{section}{Histograms}
\label{style histograms}%
\label{with histograms}%
\label{set style histogram}%
\label{plotting styles histograms}%
\label{histograms}%
\index{histograms}%
スタイル {\bf histograms} は 2 次元描画でのみ有効です。これは、データの各
列の並びから平行な棒グラフを作ります。{\bf plot} コマンドの各要素は、それ
に関する目盛りの値や凡例 (key) のタイトルが付属するかも知れませんが、
単一の入力データを指定する必要があります (例えば入力ファイルの 1 つの
列)。現在は、4 種類のヒストグラム形式のスタイルをサポートしています。

\preverbatim
\begin{verbatim}
     set style histogram clustered {gap <gapsize>}
     set style histogram errorbars {gap <gapsize>} {<linewidth>}
     set style histogram rowstacked
     set style histogram columnstacked
     set style histogram {title font "name,size" tc <colorspec>}
\end{verbatim}
\postverbatim

デフォルトのスタイルは {\bf set style histogram clustered gap 2} に対応し
ています。このスタイルでは、並列に指定されたデータの値の集合は、選択さ
れたデータ列のそのそれぞれの序列 (行番号) に対応する x 座標の場所に、
各々箱のグループとして固められて置かれます。よって、$<$n$>$ 個のデータ列を
並列に指定した場合、最初の固まりは x=1 を中心とする $<$n$>$ 個の箱の固まり
からなり、その各々の高さは、その $<$n$>$ データ列各々の最初 (1 行目) の値
が取られます。その後に少し空白 (gap) が空けられ、次に各データ列の次 (2
行目) の値に対応する箱の固まりが x=2 を中心として置かれます。以下同様
です。デフォルトの空白 (gap) 幅の 2 は、箱の固まり同士の間の空白が、箱
2 つの幅に等しいことを意味します。同じ列に対する箱は全て同じ色または同
じパターンで与えられます; しかし、以下も参照: {\bf histograms colors (p.~\pageref{histograms colors})\index{colors}}。

箱の固まりそれぞれは、データファイルの 1 つの行から得られます。そのよ
うな入力ファイルの各行の最初の項目が見出し (ラベル) でることは良くある
ことです。その列にある見出し (ラベル) は、{\bf using} に {\bf xticlabels} オプ
ションをつけることで、それに対応する箱の固まりの真下の x 軸に沿ったと
ころに置くことができます。

{\bf errorbars} スタイル は、各エントリに対して追加の入力列を必要とする以
外は {\bf clustered} スタイルにとても良く似ています。最初の列は、
{\bf clustered} スタイルの場合と全く同様に箱の高さ (y の値) として保持され
ます。
\preverbatim
\begin{verbatim}
    2 列:       y yerr          # 線は y-yerr から y+err へ伸びる
    3 列:       y ymin ymax     # 線は ymin から ymax へ伸びる
\end{verbatim}
\postverbatim
誤差線の見た目は、現在の {\bf set errorbars} の値と $<$linewidth$>$ オプション
指定で制御できます。

積み上げ型のヒストグラムも 2 つの形式がサポートされています。それらは
コマンド {\bf set style histogram \{rowstacked$|$columnstacked\}} で選択できま
す。これらのスタイルにおいて、選択された列のデータの値は積み上げられた
箱として集められます。正の値は、y=0 から上の方へ積み上げられ、負の値は
下へ向かって積み上げられます。正の値と負の値が混じってい場合は、上向き
と下向きの両方の積み上げが生成されます。デフォルトの積み上げモードは
{\bf rowstacked} です。

スタイル {\bf rowstacked} は、まず最初に選択された列の各行の値を x 軸のそ
れぞれの位置に配置します: 1 行目の値は x=1 の箱、2 行目のは x=2、以下
同様となります。2 番目以降に選択された列に対応する箱は、それらの上に積
み重ねられて行きます。そして結果として、x=1 にできる箱の積み重ねは、各
列の最初の値 (1 行目の値) からなり、x=2 の箱の積み重ねは各列の 2 行目
の値、などのようになります。同じ列に対する箱は全て同じ色または同じパタ
ーンで与えられます (以下参照: {\bf set style fill (p.~\pageref{set style fill})\index{fill}})。

スタイル {\bf columnstacked} も同様ですが、こちらは各箱の積み上げは (各行
のデータからではなく) 各列のデータからなります。最初に指定したデータ列
の各行のデータが x=1 の箱の積み上げを生成し、2 番目に指定したデータ列
の各行のデータが x=2 の箱の積み上げ、などのようになります。このスタイ
ルでは、各箱の色は、各データ項目の (列番号ではなく) 行番号から決定され
ます。

箱の幅はコマンド {\bf set boxwidth} で変更できます。
箱の塗りつぶしスタイルはコマンド {\bf set style fill} で設定できます。

histograms は x 軸は常に x1 軸を使いますが、y 軸に関しては y1 軸か y2
軸かを選択できます。plot 命令が、histograms と他のスタイルの描画の両方
を含む場合、histogram でない方は、x1 軸を使うか x2 軸を使うかを選択で
きます。

一つ追加のスタイルオプション {\bf set style histogram nokeyseparators} は、
複数のヒストグラムを含むグラフにのみ適切なものです。その場合の追加説明
については、以下参照: {\bf newhistogram (p.~\pageref{newhistogram})\index{newhistogram}}。

例:
\gpinsetfigure{figure_histclust}
入力ファイルは、2, 4, 6, ... の列にデータ値を持ち、3, 5, 7, ...  の列
に誤差評価を持つとします。以下の例は、2 列目、4 列目の値を箱の固まり型
(clustered; デフォルトスタイル) のヒストグラムとして描画します。ここで
は、plot コマンドで繰り返し (iteration) を使用していますので、任意の個
数のデータ列を一つのコマンドで処理できます。以下参照: {\bf plot for (p.~\pageref{plot for})\index{for}}。

\preverbatim
\begin{verbatim}
     set boxwidth 0.9 relative
     set style data histograms
     set style histogram cluster
     set style fill solid 1.0 border lt -1
     plot for [COL=2:4:2] 'file.dat' using COL
\end{verbatim}
\postverbatim

これは、x 軸上の各整数値を中心とするそれぞれ 2 つの箱 (鉛直な棒) 毎の
固まりによる描画を生成します。入力ファイルの最初の列にラベルが含まれて
いるならそれを、以下の少し変更したコマンドで x 軸に沿って配置できます。

\preverbatim
\begin{verbatim}
     plot for [COL=2:4:2] 'file.dat' using COL:xticlabels(1)
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_histerrorbar}
ファイルが、各データの測定値と範囲の情報の両方を含んでいる場合、描画に
誤差線を追加することができます。以下のコマンドは誤差線を (y-$<$error$>$)
から (y+$<$error$>$) に引き、その頭に箱と同じ幅の水平線をつけます。誤差線
と誤差線の端の線は、黒で線幅 2 で描画されます。

\preverbatim
\begin{verbatim}
     set errorbars fullwidth
     set style fill solid 1 border lt -1
     set style histogram errorbars gap 2 lw 2
     plot for [COL=2:4:2] 'file.dat' using COL:COL+1
\end{verbatim}
\postverbatim

以下は、同じデータを行毎の積み上げ型 (rowstacked) のヒストグラムで描画
する方法を示しています。これまでとは違い、以下の例の描画コマンドでは、
繰り返しの使用ではなく、個別に別々の列を指定しています。

\preverbatim
\begin{verbatim}
     set style histogram rowstacked
     plot 'file.dat' using 2, '' using 4:xtic(1)
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_histrows}
これは、一つ一つの鉛直な棒が、データの一つの列に対応する描画を生成しま
す。各棒は、2 つの部分の積み上げの形であり、それぞれの部分の高さが、デ
ータファイルの 2 列目と 4 列目の値に対応します。
\vspace{1em}
 最後に以下のコマンド

\preverbatim
\begin{verbatim}
     set style histogram columnstacked
     plot 'file.dat' using 2, '' using 4
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_histcols}
は、一つ一つがそれぞれデータ列に対応する、2 つの鉛直な積み重ねの棒を生
成します。x=1 にある棒は、データファイルの 2 列目の各行の値に対応する
箱からなります。x=2 にある棒は、データファイルの 4 列目の各行の値に対
応する箱からなります。

これは、gnuplot の通常の入力の縦、横の解釈を入れ換えることになりますの
で、凡例のタイトルや x 軸の目盛りの見出しの指定も変更する必要がありま
す。以下のコメント部分を参照してください。

\preverbatim
\begin{verbatim}
     set style histogram columnstacked
     plot '' u 5:key(1)            # 1 列目を凡例タイトルに使用
     plot '' u 5 title columnhead  #
\end{verbatim}
\postverbatim

この 2 つの例は、全く同じデータ値を与えているのですが、異なる書式であ
ることに注意してください。
\subsection*{Newhistogram}
\addcontentsline{toc}{subsection}{Newhistogram}
\label{newhistogram}%
\index{newhistogram}%
\label{with histograms newhistogram}%
\label{histograms newhistogram}%
\label{styles histograms newhistogram}%
\label{plotting styles histograms newhistogram}%
書式:

\preverbatim
\begin{verbatim}
    newhistogram {"<title>" {font "name,size"} {tc <colorspec>}}
                 {lt <linetype>} {fs <fillstyle>} {at <x-coord>}
\end{verbatim}
\postverbatim

一回の描画に 2 つ以上のヒストグラムの組を作ることもできます。この場合
コマンド {\bf newhistogram} を使うことで、それらを強制的に分離し、またそれ
ぞれのラベルを分離することができます。
例:

\preverbatim
\begin{verbatim}
     set style histogram  cluster
     plot newhistogram "Set A", 'a' using 1, '' using 2, '' using 3, \
          newhistogram "Set B", 'b' using 1, '' using 2, '' using 3
\end{verbatim}
\postverbatim

ラベル {\tt"}Set A{\tt"} と {\tt"}Set B{\tt"} は、それぞれのヒストグラムの組の下、x 軸の全
てのラベルの下の位置に現われます。

コマンド newhistogram は、ヒストグラムの色付けを強制的に指定した色
(linetype) で始めるのにも使えます。デフォルトでは、色の番号はヒストグ
ラムの境界をまたいでさえも連続的に増加し続けます。次の例は、複数のヒス
トグラムに同じ色付けを施します。
\preverbatim
\begin{verbatim}
     plot newhistogram "Set A" lt 4, 'a' using 1, '' using 2, '' using 3, \
          newhistogram "Set B" lt 4, 'b' using 1, '' using 2, '' using 3
\end{verbatim}
\postverbatim

同様に、次のヒストグラムを指定した fillstyle で始めさせることが可能で
す。その fillstyle を {\bf pattern} にセットした場合、塗り潰しに使用される
パターン番号は自動的に増加されていきます。

新しいヒストラムの開始は、通常は凡例 (key) に空のエントリを追加し、そ
れによりそのヒストグラム要素の集合のタイトルは、それ以前のヒストグラム
のものと分離されることになります。しかしこの空行は、その要素が個々のタ
イトルを持たない場合は望ましいものではありません。これは、そのスタイル
を {\bf set style histogram nokeyseparators} と変更することで、その空行の
出力を抑制できます。

\gpinsetfigure{figure_newhist}
オプション {\bf at $<$x-coord$>$} は、その後のヒストグラムの x 座標の位置を
$<$x-coord$>$ に設定します。例:

\preverbatim
\begin{verbatim}
      set style histogram cluster
      set style data histogram
      set style fill solid 1.0 border -1
      set xtic 1 offset character 0,0.3
      plot newhistogram "Set A", \
           'file.dat' u 1 t 1, '' u 2 t 2, \
           newhistogram "Set B" at 8, \
           'file.dat' u 2 t 2, '' u 2 t 2
\end{verbatim}
\postverbatim

この場合、2 つ目のヒストグラムの位置は x=8 から始まります。
\subsection*{複数の列に渡る自動的な繰り返し (automated)}
\addcontentsline{toc}{subsection}{複数の列に渡る自動的な繰り返し (automated)}
\label{automated}%
\index{automated}%
\label{with histograms automated}%
\label{histograms automated}%
\label{styles histograms automated}%
\label{plotting styles histograms automated}%
一つのデータファイルのたくさんの列から、一つのヒストグラムを生成したい
場合、plot の繰り返し (iteration) 機能を使うと便利でしょう。以下参照:
{\bf plot for (p.~\pageref{plot for})\index{for}}。例えば、3 列目から 8 列目までのデータを積み上げた形のヒス
トグラムを生成する例:

\preverbatim
\begin{verbatim}
     set style histogram columnstacked
     plot for [i=3:8] "datafile" using i title columnhead
\end{verbatim}
\postverbatim
\subsection*{ヒストグラムの色の割り当て (histogram color assignments)}
\addcontentsline{toc}{subsection}{ヒストグラムの色の割り当て (histogram color assignments)}
\label{with histograms colors}%
\label{histograms colors}%
\label{styles histograms colors}%
\label{plotting styles histograms colors}%
gnuplot は、ヒストグラム内の各要素の箱に自動的に色を割り当てますが、同
値なデータには、それらがヒストグラムの行、または列にどこに現れたとして
も首尾一貫した色を保持するようにします。色は、連続する線種 (linetype)
の、まだ使用されていない次の線種、または {\bf newhistogram} 命令の提示によ
って初期化される最初の線種のいずれかから始まるものが使われます。

この仕組みは、データソースが真に並列ではない (すなわち、いくつかのファ
イルのデータが不完全) ために失敗することがあります。または、基本色の光
度や彩度を変えることにより視覚化するためのデータの追加属性を与えたいか
もしれません。自動的な色の割り当ての代わりに、各データ用の明示的な色の
値を、2 番目の {\bf using} 列で、{\bf linecolor variable} か {\bf rgb variable} の
仕組みによって与えることができます。以下参照: {\bf colorspec (p.~\pageref{colorspec})\index{colorspec}}。あなたのデ
ータのレイアウトによって、色のカテゴリは、行のヘッダか、列のヘッダか一
つのデータ列でありえます。多分、凡例 (key) のサンプルの色は、それに合
うようにカスタマイズする必要があることに注意してください (以下参照:
{\bf keyentry (p.~\pageref{keyentry})\index{keyentry}})。

例: file\_001.dat から file\_008.dat は、1 列目はカテゴリ識別子の A, B,
C, ... で、2 列目がデータ値になっています。すべてのファイルがすべての
カテゴリに対する行を持っているとは限らず、よって完全な並列データ群では
ありません。この場合、gnuplot は、間違って各ファイルの N 行目の値に同
じ色を割り当てようとしてしまいます。その代わりに、1 列目のカテゴリに基
づいた色を割り当てる例です。

\preverbatim
\begin{verbatim}
    file(i) = sprintf("file_%03d.dat",i)
    array Category = ["A", "B", "C", "D", "E", "F"]
    color(c) = index(Category, strcol(c))
    set style data histogram
    plot for [i=1:8] file(i) using 2:(color(1)) linecolor variable
\end{verbatim}
\postverbatim

さらに key のカスタマイズの生成も含む完全な例が、デモの中の
\href{http://www.gnuplot.info/demo/histogram_colors.html}{\tt histogram\_colors.dem
}

にあります。

\section*{Hsteps}
\addcontentsline{toc}{section}{Hsteps}
\label{plotting styles hsteps}%
\label{style hsteps}%
\label{with hsteps}%
\label{hsteps}%
\index{hsteps}%
2 次元描画スタイル {\bf with hsteps} は、各データ点に対し一つの水平線分
({\tt"}step{\tt"} (段)) を描画します。この段は、データ点の x 座標の左側、ある
いは右側、あるいは両側へ延ばすことができます。
追加キーワードで、隣接する段と接続する線や、段とベースラインとなる
y の値との間を塗り潰すためのオプションを制御します。

書式:
\preverbatim
\begin{verbatim}
    plot <data> with hsteps
                        {forward|backward}
                        {baseline|pillars|link|nolink}
                        {{above|below} y=<baseline>}
                        {offset <y-offset>}
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
    2 列:  x  y
    3 列:  x  y  width
\end{verbatim}
\postverbatim

この描画スタイルには 2 列か 3 列のデータが必要です。さらに入力列を追加
すると、それは可変線色や塗り潰し色の情報として使用します (以下参照:
{\bf rgbcolor variable (p.~\pageref{rgbcolor variable})\index{variable}})。入力データの x の値は、単調であると仮定します。

各段の幅を 3 列目の入力列として明示的には与えなかった場合、各線分の幅
は、隣接する水平線分と接触するように計算します。3 列目が負の値の場合は
全幅の段の要求として処理します。

キーワード {\bf forward}, {\bf backward} は、指定した x 座標から水平線分を延長
する方向を指定するのに使用します。どちらも指定しない場合は水平線分は与
えられた x の値から両側へ、隣接する次の点の x の値との中点まで延長しま
す。しかし、始点と終点では、対応する外側の隣接点がないので、水平線分は
内側の隣接点との距離を利用して外側への延長幅を外挿します (以下参照:
{\bf histeps (p.~\pageref{histeps})\index{histeps}}, {\bf boxes (p.~\pageref{boxes})\index{boxes}})。

デフォルト ({\bf baseline}) と、その変種の {\bf pillar} は、ベースラインとなる
y の値を使用します。plot コマンドで何も指定しなければ、ベースラインは
y=0 となります。plot コマンドが塗り潰しスタイルを使用する場合、ベース
ラインは塗り潰し領域の一つの境界を定めることにもなります。
4 つの変種が利用可能です。

\gpinsetfigure{figure_hsteps_baseline}
{\bf baseline} (デフォルト): x 方向に隣接する段との間に隙間がない場合、そ
れらを垂直線分で接続します。これは、スタイル {\bf steps}, {\bf histeps},
{\bf fsteps} のような曲線を生成します。段の間に隙間がある場合、通常は点の
隙間よりも段の幅が小さいので、それらを接続する線は一旦ベースラインまで
落とし、そしてその上を進んでから再び上に上がります。これは、長方形パル
スの列を生成します。

\preverbatim
\begin{verbatim}
    set xzeroaxis
    plot $data using 1:2 with hsteps
    plot $data using 1:2:(0.5) with hsteps
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_hsteps_pillar}
{\bf pillar}: 各段の端で、ベースラインへの垂直線を描きます。ベースライン上
には水平線分を一切描かないことに注意してください。

\preverbatim
\begin{verbatim}
    plot $data using 1:2       with hsteps pillar
    plot $data using 1:2:(0.5) with hsteps pillar
    plot $data using 1:2:(0.5) \
               with hsteps pillar above fc "blue", \
         $data using 1:2:(0.5) \
               with hsteps pillar below fc "red"
\end{verbatim}
\postverbatim

\vspace{6ex}
 
\gpinsetfigure{figure_hsteps_nolink}
{\bf nolink}: 隣接する段の間の線は何も描きません。この変種に対しては、ベー
スラインと塗り潰しの属性とは何の関連もありません。

\preverbatim
\begin{verbatim}
   plot $data using 1:2 with hsteps nolink, \
        $data using 1:2 with hsteps nolink forward, \
        $data using 1:2 with hsteps nolink backward, \
        $data using 1:2 with points pt "|"
\end{verbatim}
\postverbatim

\vspace{9ex}
 
\gpinsetfigure{figure_hsteps_link}
{\bf link}: 隣接する段を、一本の真っ直ぐな線分で接続します。段の幅によって
は、その線は垂直でなくむしろ斜めになります。

例: 変種 {\bf link} を変種 {\bf pillar} に重ねることで、カテゴリの境界同士を線
で接続するような積み上げ型ヒストグラムグラフを生成できます。

\preverbatim
\begin{verbatim}
    set style line 11 lw 2 lc "gray" dt "."
    set style line 12 lw 2 lc variable
    plot $data using 1:3:(0.5)   ls 11 with hsteps link, \
         $data using 1:3:(0.5):1 ls 12 with hsteps pillar \
           fs solid 0.7 border, \
         $data using 1:4:(0.5)   ls 11 with hsteps link, \
         $data using 1:4:(0.5):1 ls 12 with hsteps pillar \
           fs transparent pattern 1 border
\end{verbatim}
\postverbatim

\subsection*{Offset}
\addcontentsline{toc}{subsection}{Offset}
\gpinsetfigure{figure_hsteps_offset}
\label{with hsteps offset}%
\label{hsteps offset}%
オフセット値は、データ点それ自身 (2 列目) とグラフに現れるベースライン
の両方に y の値に増分を追加することで、{\bf with hsteps} の任意の変種を修
正します。例えば、論理回路のタイミングチャートを描くときに、パルス波形
を垂直方向に位置合わせするのに使えます。一般には、y の値の範囲を共有す
る複数のデータ集合の積み上げグラフにオフセットが利用できます。

\preverbatim
\begin{verbatim}
    # bit(k,char) は、アスキー文字の k bit の状態に応じて
    # 0 か 1 を返す関数
    set style fill solid 0.2 border
    plot for [k=1:8] STR using 1:(bit(k,STR[$1])):(0.5) \
         with hsteps fillcolor "black" offset k
\end{verbatim}
\postverbatim

\subsection*{Missing data}
\addcontentsline{toc}{subsection}{Missing data}
\label{with hsteps missing-data}%
\label{hsteps missing-data}%
描画スタイル hstep では、空行、NaN 値、欠損データは異なる意味を持ちま
す。データに空行がある場合は、データの連続列をその点でリセットします。
これは、{\bf with lines} の場合に空行が新しい曲線の開始を中断するのと同様
です。x の値が NaN の場合、それは空行の場合と同じ処理を行います。x の
値が有効で、y の値が NaN の場合は、そのデータ点には水平線は描きません
が、x の値は、段の幅の評価で必要な場合に使用します。

\section*{Image}
\addcontentsline{toc}{section}{Image}
\label{plotting styles image}%
\label{style image}%
\label{with image}%
\label{image}%
\index{image}%
\label{rgbimage}%
\index{rgbimage}%
\label{rgbalpha}%
\index{rgbalpha}%
描画スタイル {\bf image}, {\bf rgbimage}, {\bf rgbalpha} は、いずれも一様に標本点
を取った格子状データ値を、2 次元、または 3 次元中のある平面上に射影し
ます。入力データは、既にあるビッマップ画像ファイル (PNG のような標準的
なフォーマットから変換したものでよい) か、単純な数値配列です。
これらの描画スタイルは、温度分布図 (heatmap) を作るのによく使われます。
極座標での 2 次元温度分布図については、以下参照: {\bf set polar grid (p.~\pageref{set polar grid})\index{grid}}。

\gpinsetfigure{figure_heatmap}
この図は、スカラー値の配列から温度分布を生成した例です (訳注: 図が表示
されている場合)。現在のパレットを、各スカラー値から対応するピクセルの
色への割り当てに使用します。以下も参照: {\bf sparse (p.~\pageref{sparse})\index{sparse}}。
\preverbatim
\begin{verbatim}
     plot '-' matrix with image
     5 4 3 1 0
     2 2 0 0 1
     0 0 0 1 0
     0 1 2 4 3
     e
     e
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_rgb3D}
入力 2 次元画像の各ピクセル (データ点) は、描画グラフ中では長方形、ま
たは平行六面体となります。画像の各データ点の座標は、平行六面体の中心を
決定します。すなわち、M x N 個のデータ集合は M x N ピクセルの画像を生
成します。これは、M x N 個のデータ集合が (M-1) x (N-1) 要素を作成する
pm3d の構造とは異なります。バイナリ画像データの格子の走査方向は、追加
キーワードでさらに制御可能です。以下参照: {\bf binary keywords flipx (p.~\pageref{binary keywords flipx})\index{flipx}},
{\bf keywords center (p.~\pageref{keywords center})\index{center}}, {\bf keywords rotate (p.~\pageref{keywords rotate})\index{rotate}}。

\gpinsetfigure{figure_scaled_image}
各ピクセルの x と y の大きさを示すことで、画像データを 2 次元描画座標
系内の特定の長方形に収まるように伸縮することができます。以下参照:
{\bf binary keywords dx (p.~\pageref{binary keywords dx})\index{dx}}, {\bf dy (p.~\pageref{dy})\index{dy}}。右の画像を生成するのには、同じ入力画像を、
それぞれ dx, dy, origin を指定して複数回配置しました。入力 PNG 画像で
あるビルの絵は 50x128 ピクセルです。高いビルは、{\bf dx=0.5 dy=1.5} で割り
当てて描画し、低いビルは、{\bf dx=0.5 dy=0.35} としています (訳注: 図が表
示されている場合)。

スタイル {\bf image} は、グレイスケール (灰色階調)、またはカラーパレット値
を含んでいるピクセルの入力を処理します。よって 2 次元描画 ({\bf plot} コマ
ンド) では 3 列のデータ (x,y,value) を、3 次元描画 ({\bf splot} コマンド)
では 4 列のデータ (x,y,z,value) が必要になります。

スタイル {\bf rgbimage} は、赤、緑、青の 3 つの色成分 (RGB) で記述されたピ
クセルの入力を処理します。よって {\bf plot} では 5 次元データ (x,y,r,g,b)
が、{\bf splot} では 6 次元データ (x,y,z,r,g,b) が必要になります。赤、緑、
青の各成分は [0:255] の範囲内にあると仮定されます。
これは、PNG や JPEG ファイルで使用されている仕組みに合っています (以下
参照: {\bf binary filetype (p.~\pageref{binary filetype})\index{filetype}})。しかし、RGB 成分として [0:1] の範囲の実数値
を取る仕組みを使用するようなデータファイルも中にはあります。そのような
データで {\bf rgbimage} スタイルを使用するには、まず {\bf set rgbmax 1.0} とし
てください。

\index{alpha channel}%
スタイル {\bf rgbalpha} は、赤、緑、青の RGB 成分に加えて、アルファ値 (透
過パラメータ) の情報も含んだピクセルの入力を処理します。よって、{\bf plot}
では 6 次元データ (x,y,r,g,b,a) が、{\bf splot} では 7 次元データ
(x,y,z,r,g,b,a) が必要になります。赤、緑、青、およびアルファの各成分は
[0:255] の範囲内にあると仮定されます。RGBA 成分が [0:1] の範囲の実数値
であるデータを描画するには、まず {\bf set rgbmax 1.0} としてください。

rgbimage か rgbalpha のいずれかでの描画で色要素用にデータ 1 列しか指定
しなかった場合は、それは、alpha=0 は不透明、alpha=255 が完全な透明を意
味する、32 bit パックの ARGB データであるとみなします。このアルファ値
の見方は、アルファ値が別の列で与えられる場合は古臭い慣習ですが、しかし、
色を設定する必要のある個々のコマンド用の ARGB パックの仕組みには合って
います。
\subsection*{透明化 (transparency)}
\addcontentsline{toc}{subsection}{透明化 (transparency)}
\label{image transparency}%
\label{transparency}%
\index{transparency}%
\label{alpha channel}%
描画スタイル {\bf rgbalpha} は、入力データの各ピクセルが [0:255] の範囲内
のアルファ値を持っている必要があります。alpha = 0 のピクセルは完全な透
明で、その下 (奥) の描画要素を全く変えません。alpha = 255 のピクセルは
完全な不透明です。すべての出力形式は、これら 2 つの両極端な値をサポー
トします。0 $<$ alpha $<$ 255 のピクセルは半透明で、半透明をサポートしてい
ない出力形式では、その値を 0 か 255 のいずれかに丸めます。
\subsection*{Image pixels}
\addcontentsline{toc}{subsection}{Image pixels}
\label{plotting styles image pixels}%
\label{style image pixels}%
\label{with image pixels}%
\label{image pixels}%
\label{pixels}%
\index{pixels}%
\index{heatmaps}%
出力形式によっては、2 次元の長方形領域内での画像データ描画の、デバイス
やライブラリに依存した最適化ルーチンを使用しますが、これは、中間ピクセ
ル平滑化を行ったり、クリッピングがうまくなかったり、縁が欠けるなど、望
ましくない出力を生成することがあります。例として、SVG 画像レンダリング
時のウェブブラウザによる平滑化があります。
キーワード {\bf pixels} は、画像を 1 ピクセルずつ描画するような一般的なコ
ードを使用するよう gnuplot に指示します。この描画モードでは、描画は遅
く、大きな出力ファイルを生成しますが、どの出力形式でも共通的な見た目を
作成してくれるます。これは、特にピクセル数の少ない温度分布図 (heatmap)
で好まれるでしょう。
例:
\preverbatim
\begin{verbatim}
     plot 'data' with image pixels
\end{verbatim}
\postverbatim

\section*{Impulses}
\addcontentsline{toc}{section}{Impulses}
\label{plotting styles impulses}%
\label{style impulses}%
\label{with impulses}%
\label{impulses}%
\index{impulses}%
\gpinsetfigure{figure_impulses}
{\bf impulses} スタイルは、2 次元描画では y=0 から各点の y の値への、3 次
元描画では z=0 から各点の z の値への、垂直な線分を表示します。y や z
の値は負の値でもよいことに注意してください。データの追加列を各垂直線分
の色の制御に利用できます。このスタイルを 3 次元描画で使用する場合、太
い線 (linewidth $>$ 1) を利用するとより効果的でしょう。それは 3 次元の棒
グラフに似たものになります。

\preverbatim
\begin{verbatim}
    1 列:  y
    2 列:  x  y     # [x,0] から [x,y] への線 (2D)
    3 列:  x  y  z  # [x,y,0] から [x,y,z] への線 (3D)
\end{verbatim}
\postverbatim

\section*{Labels}
\addcontentsline{toc}{section}{Labels}
\label{plotting styles labels}%
\label{style labels}%
\label{with labels}%
\label{labels}%
\index{labels}%
\gpinsetfigure{figure_labels1}
スタイル {\bf labels} は、データファイルから座標と文字列を読み込み、その文
字列をその 2 次元、または 3 次元座標に置きます。これは基本的に 3 列、
または 4 列の入力を必要とします。さらに余分な入力列は、文字列の回転角
(キーワード {\bf rotate variable}) や文字色 (以下参照: {\bf textcolor variable (p.~\pageref{textcolor variable})\index{variable}})
のような、点毎に変動する属性値が指定されたとみなされます。

\preverbatim
\begin{verbatim}
    3 列:  x  y  string    # 2 次元版
    4 列:  x  y  z  string # 3 次元版
\end{verbatim}
\postverbatim

フォント、色、回転角やその他の描画テキストの属性は追加オプションとして
指定可能です (以下参照: {\bf set label (p.~\pageref{set label})\index{label}})。次の例は、入力ファイルの 1 列目
から取った市の名前から作られる文字列を、4, 5 列目から取った地図座標に
描画します。フォントサイズは、3 列目の値から計算していて、この場合はそ
れは人口を意味しています。

\preverbatim
\begin{verbatim}
 CityName(String,Size) = sprintf("{/=%d %s}", Scale(Size), String)
 plot 'cities.dat' using 5:4:(CityName(stringcolumn(1),$3)) with labels
\end{verbatim}
\postverbatim

フォントサイズを、個々の市の名前に対して異なるサイズに合わせなくていい
ならば、コマンドはもっと簡単です:

\preverbatim
\begin{verbatim}
 plot 'cities.dat' using 5:4:1 with labels font "Times,8"
\end{verbatim}
\postverbatim

labels に {\bf hypertext} がついている場合、その文字列はマウスがそれに対応
する点の上に来たときにだけ現われます。以下参照: {\bf hypertext (p.~\pageref{hypertext})\index{hypertext}}。この場合
ハイパーテキストの置き場所として機能する点を作るためにそのラベルの
{\bf point} 属性を有効にする必要があります:

\preverbatim
\begin{verbatim}
 plot 'cities.dat' using 5:4:1 with labels hypertext point pt 7
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_labels2}
スタイル {\bf points} であらかじめ定義されている点の記号が適切でない、ある
いは十分でない場合、その代わりとしてスタイル {\bf labels} を使うこともでき
ます。例えば、以下は単一文字として選択される組を定義し、3 列目のデータ
値に対応するその一つをグラフの各点に割り当てる例です (訳注: 以下のサン
プルの $<$UTF-8 文字列$>$ の部分には、元々、丸に中点記号や□、＋、トランプ
記号などの UTF-8 文字列が並んでいますが、この日本語訳とは両立しないた
め取り除いています):

\preverbatim
\begin{verbatim}
 set encoding utf8
 symbol(z) = "<UTF-8 文字列>"[int(z):int(z)]
 splot 'file' using 1:2:(symbol($3)) with labels
\end{verbatim}
\postverbatim

以下は、4 列目の値を可変値の回転角とし、5 列目の値を文字色 ({\tt"}tc{\tt"}) とす
るラベルの使用例です。可変値の色指定は、常に {\bf using} 指定の最後の列か
ら取ることに注意してください。

\preverbatim
\begin{verbatim}
 plot $Data using 1:2:3:4:5 with labels tc variable rotate variable
\end{verbatim}
\postverbatim

\section*{Lines}
\addcontentsline{toc}{section}{Lines}
\label{plotting styles lines}%
\label{style lines}%
\label{with lines}%
\label{lines}%
\index{lines}%
\gpinsetfigure{figure_lines}
{\bf lines} スタイルは隣接する点を真直な線分で結びます。
これは、2 次元描画でも、3 次元描画でも使用でき、基本的には、1 列か 2
列か 3 列かの入力データを必要とします。
余分な入力列は、線の色の変更などの情報が提供されたものとして使用されま
す (以下参照: {\bf rgbcolor variable (p.~\pageref{rgbcolor variable})\index{variable}})。

2 次元 ({\tt"}using{\tt"} 指定なし) の場合
\preverbatim
\begin{verbatim}
  1 列:  y     # 行番号による暗黙の x
  2 列:  x y
\end{verbatim}
\postverbatim
3 次元 ({\tt"}using{\tt"} 指定なし) の場合
\preverbatim
\begin{verbatim}
  1 列:  z     # x は暗黙の行番号、y は index から
  3 列:  x y z
\end{verbatim}
\postverbatim

以下も参照: {\bf linetypes (p.~\pageref{linetypes})\index{linetypes}}, {\bf linewidth (p.~\pageref{linewidth})\index{linewidth}}, {\bf linestyle (p.~\pageref{linestyle})\index{linestyle}}。
\section*{Linespoints}
\addcontentsline{toc}{section}{Linespoints}
\label{plotting styles linespoints}%
\label{style linespoints}%
\label{with linespoints}%
\label{style lp}%
\label{with lp}%
\label{linespoints}%
\index{linespoints}%
\label{lp}%
\index{lp}%
\label{pointinterval}%
\index{pointinterval}%
\label{pointnumber}%
\index{pointnumber}%
\gpinsetfigure{figure_linespoints}
{\bf linespoints} スタイル (省略形 {\bf lp}) は、隣接する点を真っ直ぐな線分で
結び、その後で最初に戻って各点に小さな記号を描きます。点記号は、
{\bf set pointsize} で決まるデフォルトの大きさで描きますが、plot コマンド
上で点のサイズを指定したり、あるいは入力データの追加列で個別の点サイズ
を指定することもできます。追加の入力列は、個別の線の色などの情報を提供
するのにも使われます。以下参照: {\bf lines (p.~\pageref{lines})\index{lines}}, {\bf points (p.~\pageref{points})\index{points}}。

グラフのすべての点に記号の印をつけるか否かを制御する 2 つのキーワード
{\bf pointinterval} (省略形 {\bf pi}), {\bf pointnumber} (省略形 {\bf pn}) があります。

{\bf pi N} あるいは {\bf pi -N} は、N 個毎に 1 つだけ記号を置くよう gnuplot に
指示します。負の値を指定すると、記号の下の線分の部分を消します。その消
す部分のサイズは {\bf set pointintervalbox} で制御できます。

{\bf pn N} あるいは {\bf pn -N} は、データ点のうち N 個だけラベル付けするよう
gnuplot に指示します。点はそのデータ全体に渡って均等な間隔に取ります。
{\bf pi} 同様、負の値を指定すると、記号の下の線分の部分を消します。

\section*{マスキング (masking)}
\addcontentsline{toc}{section}{マスキング (masking)}
\label{plotting styles mask}%
\label{plot with mask}%
\label{with mask}%
\label{masking}%
\index{masking}%
描画スタイル {\bf with mask} は、マスキング領域を定義するのに使います。こ
れは、同じ {\bf plot}, {\bf splot} コマンド上で後で指定した pm3d 曲面や画像に
適用できます。入力データは、1 つ、または複数の多角形の頂点を定義する
[x,y] 座標列、または [x,y,z] 座標列として解釈します。描画スタイル
{\bf with polygons} と同様に、多角形は空行で分離します。マスクが 3 次元描
画コマンド (splot) の一部である場合、入力には z の値が必要ですが、しか
しそれは現在のところ全く使いません。

plot コマンド上にマスク定義がある場合、その後の同じコマンド上の image
描画、pm3d 曲面が、キーワード {\bf mask} を追加することでマスクされます。
マスクを定義していなければ、そのキーワードは無視します。

以下の例は、点の集合を囲む凸包を使い、ある pm3d 曲面に対応する領域をマ
スクする方法を示します。
\gpinsetfigure{figure_mask}
\preverbatim
\begin{verbatim}
  set table $HULL
  plot $POINTS using 1:2 convexhull
  unset table
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
  set view map
  set multiplot layout 1,2
  splot $POINTS using 1:2:3 with pm3d, \
        $POINTS using 1:2:(0) nogrid with points
  splot $HULL using 1:2:(0) with mask, \
        $POINTS using 1:2:3 mask with pm3d
  unset multiplot
\end{verbatim}
\postverbatim
最初のパネルに対するコマンド {\bf splot} は、元の点から dgrid3d で生成した
マスクされていない曲面を描画し、その後で点自身を順に描画します。2 つ目
のパネルに対するコマンド {\bf splot} はマスクした曲面を描画します。マスク
の定義 ({\bf with mask} での plot) は最初に行わなければならず、それを適用
する pm3d 曲面はその後であることに注意してください (描画スタイル
{\bf with pm3d} にキーワード {\bf mask} をつけて変更)。
この例のより完全な版は、デモ集合
\href{http://www.gnuplot.info/demo/mask_pm3d.html}{\tt mask\_pm3d.dem
}

内にあります。

ここには示しませんが、一つのマスクが複数の多角形領域を含み得ます。

マスキングコマンドは試験段階です。詳細は、将来のリリースで変更されるか
もしれません。

\section*{Parallelaxes}
\addcontentsline{toc}{section}{Parallelaxes}
\gpinsetfigure{figure_parallel}
\label{plotting styles parallelaxes}%
\label{plot with parallelaxes}%
\label{with parallelaxes}%
\label{parallelaxes}%
\index{parallelaxes}%
\label{parallel}%
\index{parallel}%
平行座標描画 (parallel axis plot, parallel coordinates plot とも呼ばれ
る) は、多次元データの相関を視覚化します。入力データの個々の列は、それ
ぞれ別々のスケールの縦軸に割り当てられます。一つのファイルのすべての列
を描画する場合は、グラフの折れ線 1 本が、そのファイルのデータの 1 行分
の値を表しています。
それらを数種類に分類して色を割り当てることはよく行われますが、
それは、その分類と軸との間の関係を視覚的に調査することを可能にします。

書式:

\preverbatim
\begin{verbatim}
   set style data parallelaxes
   plot $DATA using col1{:varcol1} {at <xpos>} {<line properties}, \
        $DATA using col2, ...
\end{verbatim}
\postverbatim

キーワード {\bf at} で、以下の例に見られるように、平行座標軸の x 軸位置で
の明示的な配置も可能になっています。明示的な x 座標指定がなければ、N
番目の軸は x=N の場所に置かれます。

\preverbatim
\begin{verbatim}
    array xpos[5] = [1, 5, 6, 7, 11, 12]
    plot for [col=1:5] $DATA using col with parallelaxes at xpos[col]
\end{verbatim}
\postverbatim

デフォルトでは、gnuplot は自動的に個々の軸の範囲、スケールを入力データ
から決定しますが、通常の {\bf set axis range} コマンドによってそれをカスタ
マイズすることも可能です。以下参照: {\bf set paxis (p.~\pageref{set paxis})\index{paxis}}。
\section*{極座標描画 (Polar plots)}
\addcontentsline{toc}{section}{極座標描画 (Polar plots)}
\index{polar}%
\gpinsetfigure{figure_polar}
極座標描画 (polar) は、plot コマンドを入力する前に現在の座標系を極座標
に変更することによって生成します。オプション {\bf set polar} は、入力する
2 次元座標を $<$x$>$,$<$y$>$ の代わりに $<$角$>$,$<$半径$>$ と解釈することを gnuplot
に指示します。すべてではないですが、多くの 2 次元描画スタイルが極座標
モードでも機能します。図は、描画スタイル {\bf lines} と {\bf filledcurves} の
組み合わせを示しています。(訳注: 図が表示されている場合) 以下参照:
{\bf set polar (p.~\pageref{set polar})\index{polar}}, {\bf set rrange (p.~\pageref{set rrange})\index{rrange}}, {\bf set size square (p.~\pageref{set size square})\index{square}}, {\bf set theta (p.~\pageref{set theta})\index{theta}}, {\bf set ttics (p.~\pageref{set ttics})\index{ttics}}。

\label{polar heatmap}%
極座標での温度分布\_図は、スタイル {\bf with surface} と {\bf set polar grid}
を合わせて使用することで生成できます。
\gpinsetfigure{figure_polar_grid}
\preverbatim
\begin{verbatim}
    set size square
    set angle degrees
    set rtics
    set grid polar
    set palette cubehelix negative gamma 0.8
    set polar grid gauss kdensity scale 35
    set polar grid theta [0:190]
    plot DATA with surface, DATA with points pt 7
\end{verbatim}
\postverbatim

\section*{Points}
\addcontentsline{toc}{section}{Points}
\label{plotting styles points}%
\label{style points}%
\label{with points}%
\label{points}%
\index{points}%
\label{point type}%
\label{pointtype}%
\index{pointtype}%
\gpinsetfigure{figure_points}
{\bf points} スタイルは各点に小さな記号を表示します。すべての記号のデフォ
ルトの大きさを変更するにはコマンド {\bf set pointsize} を使います。デフォ
ルトの点種は、対応する線種と同じものになります。以下参照: {\bf linetypes (p.~\pageref{linetypes})\index{linetypes}}。
代わりに、plot コマンドで、特定の点種や点のサイズを指定することもでき
ます。他の方法のうち最も可能性が広いのは、plot コマンドで
{\bf pointtype variable} や {\bf pointsize variable} を指定し、その対応する点
属性を、各データ点毎に {\bf using} 指定による追加列で指定することです。こ
の場合入力データ列は、暗黙のうちに、以下で説明するように
{\bf x y pointsize pointtype color} の順で解釈します (以下参照:
{\bf pointtype variable (p.~\pageref{pointtype variable})\index{variable}})。

最初の 8 つの点種は、すべての出力形式で共通ですが、より多くの点種を個
別にサポートする出力形式もあります。現在の出力形式の設定でどのような点
種が用意されているかを見るには、コマンド {\bf test} を使用してください。
下の以下も参照: {\bf pointtype symbols (p.~\pageref{pointtype symbols})\index{symbols}}。

代わりに下の例のようにして、任意の印字可能文字を点種番号の代わりに使用
することもできます。点種として、任意の UTF-8 文字を使用できます (utf8
をサポートしている必要あり)。以下参照: {\bf escape sequences (p.~\pageref{escape sequences})\index{sequences}}。より長い文
字列は、描画スタイル {\bf points} ではなく {\bf labels} を使えば出力できます。

例:

\preverbatim
\begin{verbatim}
    plot f(x) with points pt "#"
    plot d(x) with points pt "\U+2299"
    plot f(x) using 1:2:3 with points pointtype 6 pointsize variable
\end{verbatim}
\postverbatim

\subsection*{Pointtype symbols}
\addcontentsline{toc}{subsection}{Pointtype symbols}
\label{pointtype symbols}%
\label{symbols}%
\index{symbols}%
最初の 8 つの数値点種は、可能な限りすべての出力形式で一致したものにな
っています。さらに、より多くの点記号を用意している出力形式もあります
(PostScript では 75 個も用意！)。一般に、N 個の記号を用意している出力
形式では、これらを循環して使用します。例えば cairo 系出力形式では 15
個の異なる記号を用意しているので、その後はそれが同じ順で繰り返し現れ、
{\tt"}pointtype 16{\tt"} の記号は {\tt"}pointtype 1{\tt"} のものと同じ記号になりますが、色
は違うかもしれません。記号の種類を確認するには、コマンド {\bf test} を使用
してください。

\subsection*{可変点属性 (variable point properties)}
\addcontentsline{toc}{subsection}{可変点属性 (variable point properties)}
\label{points variable}%
\label{with points variable}%
\index{variable}%
\label{variable}%
\index{variable}%
\label{pointtype variable}%
\label{pointsize variable}%
点 (point) 記号を含む描画スタイルでは、オプションとして追加データ列を
{\bf using} 指定で受け取ることでその点の見た目を制御することができます。こ
れは、plot コマンド上でキーワード {\bf pointtype}, {\bf pointsize}, {\bf linecolor}
を使う際に、番号の代わりにキーワード {\bf variable} を追加することで指示し
ます。
描画スタイル {\bf with labels} でも、可変文字列回転角を受け取ることができ
ます。
例:
\preverbatim
\begin{verbatim}
    # 入力データは、列 1:2 で [x,y] を与え
    # 点のサイズは 5 列目で与え
    # RGB 色は 4 列目で 16 進数値として与え
    # すべての点は pointtype 7 を使用
      plot DATA using 1:2:5:4 with points lc rgb variable ps variable pt 7
\end{verbatim}
\postverbatim

2 つ以上の可変 (variable) 属性を指定すると、plot コマンド内のキーワー
ドの順とは無関係に、以下の順で列を解釈します。

\preverbatim
\begin{verbatim}
   textrotation : pointsize : pointtype : color
   (文字列の回転角) : (点のサイズ) : (点の種類) : (色)
\end{verbatim}
\postverbatim

よって、上の例では、{\tt"}lc rgb variable{\tt"} は plot コマンドの最初に現れてい
ますが、色は {\bf using} 指定の最後の列 (4) から取ります。可変色 (variable
color) 指定は、常に最後の追加列から取ります。可変色を指定するには、い
くつかの方法があります。以下参照: {\bf colorspec (p.~\pageref{colorspec})\index{colorspec}}。

注意: 「ユーザ定義変数」の方の variable に関する情報については、以下
参照: {\bf variables (p.~\pageref{variables})\index{variables}}。
\section*{Polygons}
\addcontentsline{toc}{section}{Polygons}
\label{plotting styles polygons}%
\label{style polygons}%
\label{with polygons}%
\label{polygons}%
\index{polygons}%
2 次元グラフ:

\preverbatim
\begin{verbatim}
    plot DATA {using 1:2} with polygons
\end{verbatim}
\postverbatim

{\bf plot with polygons} は、{\bf plot with filledcurves closed} として処理し
ますが、各多角形の境界を閉曲線として描画する場合を除きます。それは、そ
のその最初と最後の点が同じでなくてもです。境界線の線種は、塗り潰しスタ
イル (fill style) から取ります。入力データファイルには、単一の空行で区
切って複数の多角形を入れることも可能です。各多角形には、3 列目の値を与
え、キーワード {\bf fc variable} を指定する (その値を linetype と解釈) か、
{\bf fc rgb variable} を指定する (その値を 24 ビット RGB 色と解釈) ことで、
個別の塗り潰し色を割り当てることができます。多角形の最初の頂点の色の値
のみを使用します。

3 次元グラフ:

\preverbatim
\begin{verbatim}
    splot DATA {using x:y:z} with polygons
          {fillstyle <fillstyle spec>}
          {fillcolor <colorspec>}
\end{verbatim}
\postverbatim

{\bf splot with polygons} は、3 次元空間の個々の三角形、四角形、およびそれ
以上の多角形を描画するのに pm3d を使用します。これらは 3 次元曲面の一
面や単独の形状となり得ます。このルーチンは、頂点が一つの平面に乗ってい
なければいけません。
個々の多角形を定義する頂点は、入力ファイルの連続する行から読み込みます。
空行は多角形同士を分離します。入力ファイルがバイナリデータの場合は、
以下参照: {\bf binary blank (p.~\pageref{binary blank})\index{blank}}。

注意: 以前の版の gnuplot では、すべての 3D 多角形が {\bf set pm3d border}
で設定される 1 つの塗り潰し境界属性を共有する、という制限がありました。
この制限は今はありません。
多角形の塗り潰しスタイル、境界色、境界線幅は、splot コマンド上で指定で
き、そうしない場合はそれらは {\bf set style fill} ({\bf set pm3d} ではない) で
の大域的な設定から取ります。
多角形オブジェクトの塗り潰しスタイル、境界色、境界線幅は、コマンド
{\bf set object} で指定します。

各多角形には、4 列目の値を与え、キーワード {\bf fc variable} を指定する
(その値を linetype と解釈) か、{\bf fc rgb variable} を指定する (その値を
24 ビット RGB 色と解釈) ことで、個別の塗り潰し色を割り当てることができ
ます。多角形の最初の頂点の色の値のみを使用します。

面には、pm3d のソート順と光源モデルを適用しますので、常に、
{\bf set pm3d depthorder} を使う方がいいかもしれせん。

\gpinsetfigure{figure_polygons}
\preverbatim
\begin{verbatim}
    set xyplane at 0
    set view equal xyz
    unset border
    unset tics
    set pm3d depth
    splot 'icosahedron.dat' with polygons fc background \
          fs transparent solid 0.8 border lc "black" lw 2
\end{verbatim}
\postverbatim

\section*{Rgbalpha}
\addcontentsline{toc}{section}{Rgbalpha}
\label{plotting styles rgbalpha}%
\label{style rgbalpha}%
\label{with rgbalpha}%
以下参照: {\bf image (p.~\pageref{image})\index{image}}。
\section*{Rgbimage}
\addcontentsline{toc}{section}{Rgbimage}
\label{plotting styles rgbimage}%
\label{style rgbimage}%
\label{with rgbimage}%
以下参照: {\bf image (p.~\pageref{image})\index{image}}。
\section*{扇片 (sectors)}
\addcontentsline{toc}{section}{扇片 (sectors)}
\label{plotting styles sectors}%
\label{with sectors}%
\label{sectors}%
\index{sectors}%
\label{windrose}%
\index{windrose}%
\gpinsetfigure{figure_sector_definition}
2 次元描画スタイル {\bf with sectors} は、入力データの 1 行毎に一つの環状
の扇片 ({\tt"}sector{\tt"}) を描画します。各扇片の形は、データ値として要求する 4
つの値で決定します。この扇片の環の部分の原点を、データ値に追加指定する
こともできます。扇片毎の色を追加列として指定することもできます。

この描画スタイルは、直交座標で、または極座標モード ({\bf set polar}) の元
で使用できます。方位角と扇の中心角の単位、解釈は、{\bf set angles} と
{\bf set theta} で制御します。

データの 1,2 列目は、その扇片の一つの角の方位 (theta) と半径 (r) です。
\newline
 データの 3,4 列目は、その扇片の方位の変位 (中心角; sector\_angle) と半
径の変位 (動径方向の幅; annular\_width) です。
\newline
 データの 5,6 列目を指定した場合は、それは扇形の中心の座標を意味し (デ
フォルトは [0,0])、直交座標では [x,y]、極座標モードでは [theta,r] と解
釈します。

書式:
\preverbatim
\begin{verbatim}
   plot DATA {using specifier} {units xy | units xx | units yy}
\end{verbatim}
\postverbatim

using 指定
\preverbatim
\begin{verbatim}
   4 列: azimuth radius sector_angle annular_width
   5 列: azimuth radius sector_angle annular_width color
   6 列: azimuth radius sector_angle annular_width center_x center_y
   7 列: azimuth radius sector_angle annular_width center_x center_y
           color
\end{verbatim}
\postverbatim

x 軸と y 軸スケールが等しくない場合、x,y 座標の環状の全体の概形は円で
はなく楕円となって現れることに注意してください。等しくない軸のスケール
に関して楕円 (ellipse) と同じ仕組みを使用して、環状の概形、および扇片
の幅の外見を正しく合わせることができます。コマンドラインに {\bf units xx}
を追加すると、現在の x 軸のスケールを x, y 両方に等しく適用したかのよ
うに扇片を描きます。同様に、{\bf units yy} は、現在の y 軸のスケールを x,y
両方に等しく適用したかのように扇片を描きます。
以下参照: {\bf set isotropic (p.~\pageref{set isotropic})\index{isotropic}}, {\bf set style ellipse (p.~\pageref{set style ellipse})\index{ellipse}}。

\gpinsetfigure{figure_windrose}
with sectors での描画は、直交座標での描画スタイルである {\bf boxes} (風配
図 (wind rose) の図を参照)、{\bf boxxyerror} と {\bf image pixels} ({\bf heatmaps}
の例を参照) に対する極座標での同等品を提供します。sector での描画は直
交座標モードでのグラフレイアウトと両立するため、一つのグラフ上の異なる
場所に複数のグラフを配置することが可能ですが、それは他の極座標モードグ
ラフスタイルでは不可能です。

ここに示しているのは、sectors を使って風配図 (wind rose) を生成する例
です。極座標温度分布図を含む他の応用例としては、ダイヤルチャート、円グ
ラフ/円環グラフ、そして 極座標でのデータ点に対する環状のエラーボックス
です。これらすべての加工された例は、
\href{http://www.gnuplot.info/demo/sectors.html}{\tt sector のデモ
}

に置かれています。

\section*{Spiderplot}
\addcontentsline{toc}{section}{Spiderplot}
\label{plotting styles spiderplot}%
\label{with spiderplot}%
\label{spiderplot}%
\index{spiderplot}%
\label{radar chart}%
クモの巣グラフ (spiderplot) は、本質的に、平行座標描画 (parallel axis)
で、その軸を垂直方向ではなく放射状に配置したものです。これはよく「レー
ダーチャート」({\bf radar chart}) とも呼ばれます。gnuplot 内部では、これは
コマンド {\bf set spiderplot} で確立される座標系での作業が必要となりますが、
これは偏角座標が平行軸番号によって暗黙に決まることを除けば {\bf set polar}
に似ています。見た目や、ラベル付け、軸の目盛りの配置は、{\bf set paxis} で
制御できます。このスタイルのさらなる設定は、{\bf set style spiderplot}、
{\bf set grid}、および plot コマンドの個々の指定で行えます。

各クモの巣グラフは、列データではなく行データに対応するため、通常の方法
での凡例 (key) タイトルの生成は意味がありません。代わりに、描画要素が
タイトル文字列を持っていれば、その文字列を対応する軸のラベルに使用しま
す。これは、事前の {\bf set paxis n label {\tt"}Foo{\tt"}} をすべて上書きします。凡
例にタイトルを配置するには、個別の {\bf keyentry} コマンドを使用するか、ま
たは using 指定で {\bf key(column)} を使って入力ファイル列から文字列を展開
する方法が使えます。

以下の図は、軸が 5 つのクモの巣グラフで、それぞれ 5 つの点数で特徴付け
られる複数のものを比較するのに使います。\$DATA の各行は、グラフ上に新し
い多角形を生成します。
\gpinsetfigure{figure_spiderplot}

\preverbatim
\begin{verbatim}
    $DATA << EOD
             A      B      C      D      E      F
    George  15     75     20     43     90     50
    Harriet 40     40     40     60     30     50
    EOD
    set spiderplot
    set style spiderplot fs transparent solid 0.2 border
    set for [p=1:5] paxis p range [0:100]
    set for [p=2:5] paxis p tics format ""
    set             paxis 1 tics font ",9"
    set for [p=1:5] paxis p label sprintf("Score %d",p)
    set grid spiderplot
    plot for [i=1:5] $DATA using i:key(1)
\end{verbatim}
\postverbatim

\subsection*{Newspiderplot}
\addcontentsline{toc}{subsection}{Newspiderplot}
\label{newspiderplot}%
\index{newspiderplot}%
\label{spiderplot newspiderplot}%
通常、{\bf with spiderplot} による plot コマンドに与えられるデータ列の個々
の値は、1 個の多角形に対するそれぞれの頂点に対応します。1 つのグラフ上
に、複数の多角形を描くには、それらを {\bf newspiderplot} で分離して指定し
ます。
例:
\preverbatim
\begin{verbatim}
    # 以下は 10 個の頂点を持つ 1 つの多角形
    plot for [i=1:5] 'A' using i, for [j=1:5] 'B' using j
    # 以下は 5 個の頂点を持つ 2 つの多角形
    plot for [i=1:5] 'A' using i, newspiderplot, for [j=1:5] 'B' using j
\end{verbatim}
\postverbatim

\newpage
 \section*{Steps}
\addcontentsline{toc}{section}{Steps}
\label{plotting styles steps}%
\label{style steps}%
\label{with steps}%
\label{steps}%
\index{steps}%
\gpinsetfigure{figure_steps}
{\bf steps} スタイルは 2 次元描画でのみ利用可能です。これは 2 本の線分で隣
り合う点をつなぎます: 1 本目は (x1,y1) から (x2,y1) まで、2 本目は
(x2,y1) から (x2,y2) まで。入力列の条件は、{\bf lines} や {\bf points} に対す
るものと同じです。{\bf fsteps} と {\bf steps} の違いは、{\bf fsteps} は、折れ線を
先に y 方向に書いてから次に x 方向に書くのに対し、{\bf steps} は先に x 方
向に書いてから次に y 方向に書きます。曲線とベースラインである y=0 との
間の領域を塗り潰すには、{\bf fillsteps} を使用してください。
以下も参照
\href{http://www.gnuplot.info/demo/steps.html}{\tt steps デモ。
}

\preverbatim
\begin{verbatim}
  1 列:   y     # 行番号 (0 列目) による暗黙の x
  2 列:   x y
\end{verbatim}
\postverbatim

\section*{Surface}
\addcontentsline{toc}{section}{Surface}
\label{plotting styles surface}%
\label{style surface}%
\label{with surface}%
描画スタイル {\bf with surface} には、2 種類の利用法があります。

3 次元グラフでは、{\bf with surface} は常に曲面を生成します。
3 次元データ集合が格子集合 (grid) と認識できれば、gnuplot はデフォルト
では、{\bf with lines} を {\bf with surface} に対する同義語として、格子曲面を
要求したかのように暗黙に描画スタイル {\bf with lines} で処理します。しかし
コマンド {\bf set surface explicit} はこの処理を抑制し、その場合
{\bf with surface} と {\bf with lines} は異なるスタイルとなり、同じグラフ内で
利用することもできます。

格子点とは認識されない 3 次元の点がある場合、最初に適切な格子に合わせ
ることが可能です。以下参照: {\bf set dgrid3d (p.~\pageref{set dgrid3d})\index{dgrid3d}}。

2 次元極座標グラフでは、{\bf with surface} は、データの色塗り格子表現を生
成するのに使います。その曲面の生成は、コマンド {\bf set polar grid} で制御
します。

\section*{Vectors}
\addcontentsline{toc}{section}{Vectors}
\label{plotting styles vectors}%
\label{style vectors}%
\label{with vectors}%
\label{vectors}%
\index{vectors}%
\gpinsetfigure{figure_vectors}
2 次元の {\bf vectors} スタイルは (x,y) から (x+xdelta,y+ydelta) までのベ
クトルを書きます。3 次元の {\bf vectors} スタイルも同様ですが、データは基
本的に 6 列必要です。いずれの場合も、入力列を追加 (2D では 5 列目、3D
では 7 列目) すると、それらは各データ点毎の variable color 情報 (以下
参照: {\bf linecolor (p.~\pageref{linecolor})\index{linecolor}}, {\bf rgbcolor variable (p.~\pageref{rgbcolor variable})\index{variable}}) として使われます。
各ベクトルの先端には小さな矢先も書かれます。

\preverbatim
\begin{verbatim}
    4 列:  x  y  xdelta  ydelta
    6 列:  x  y  z  xdelta  ydelta  zdelta
\end{verbatim}
\postverbatim

キーワード {\tt"}with vectors{\tt"} は、その後ろに、arrow スタイル属性を直接書い
たり、事前に定義した arrow スタイルを参照したり、あるいは別の入力列か
ら各ベクトルに対する適用したい arrow スタイルのインデックスを読むよう
指定したりすることができます。下の最初の 3 つの例を見てください。

例:

\preverbatim
\begin{verbatim}
    plot ... using 1:2:3:4 with vectors filled heads
    plot ... using 1:2:3:4 with vectors arrowstyle 3
    plot ... using 1:2:3:4:5 with vectors arrowstyle variable
    splot 'file.dat' using 1:2:3:(1):(1):(1) with vectors filled head lw 2
\end{verbatim}
\postverbatim

注意: plot コマンド内にキーワード {\bf arrowstyle} と他の線属性を混在させ
ることはできません。arrow スタイルに {\bf lc variable} か {\bf lc rgb variable}
がある場合、色の値用の追加列が必要です。

vectors スタイルを使っての splot は {\bf set mapping cartesian} のみでサポ
ートされています。
{\bf set clip one} と {\bf set clip two} は 2 次元のベクトルの描画に影響を与え
ます。以下参照: {\bf set clip (p.~\pageref{set clip})\index{clip}}, {\bf arrowstyle (p.~\pageref{arrowstyle})\index{arrowstyle}}。

2 次元描画スタイルの以下も参照: {\bf with arrows (p.~\pageref{with arrows})\index{arrows}}。これは、各矢印を
x:y:length:angle の形式で指定する以外は {\bf with vectors} と同じです。

\section*{Xerrorbars}
\addcontentsline{toc}{section}{Xerrorbars}
\label{plotting styles xerrorbars}%
\label{style xerrorbars}%
\label{with xerrorbars}%
\label{xerrorbars}%
\index{xerrorbars}%
\gpinsetfigure{figure_xerrorbars}
{\bf xerrorbars} スタイルは 2 次元のデータ描画のみで利用可能です。
{\bf xerrorbars} は、水平の誤差指示線 (error bar) が表示される以外は
{\bf points} と同じです。各点 (x,y) において (xlow,y) から (xhigh,y) まで、
または (x-xdelta,y) から (x+xdelta,y) までの線分が引かれますが、これら
はいくつのデータ列が与えられるかによって変わります。誤差指示線の端の刻
みの印の見た目は、{\bf set errorbars} で制御できます。
点と誤差指示線の間の隙間は、{\bf set pointintervalbox} で制御します。誤差
線を断線せずに直接点記号を貫通させるには、{\bf unset pointintervalbox} を
使用してください。
このスタイルは基本的に、3 列か 4 列のデータが必要です:

\preverbatim
\begin{verbatim}
    3 列:  x  y  xdelta
    4 列:  x  y  xlow  xhigh
\end{verbatim}
\postverbatim

入力列を追加 (4,5 列目) するとそれらを variable color として使います。
このスタイルでは、variable point 属性は使えません。

\section*{Xyerrorbars}
\addcontentsline{toc}{section}{Xyerrorbars}
\label{plotting styles xyerrorbars}%
\label{style xyerrorbars}%
\label{with xyerrorbars}%
\label{xyerrorbars}%
\index{xyerrorbars}%
\gpinsetfigure{figure_xyerrorbars}
{\bf xyerrorbars} スタイルは 2 次元のデータ描画のみで利用可能です。
{\bf xyerrorbars} は、水平、垂直の誤差指示線 (error bar) も表示される以外
は {\bf points} と同じです。各点 (x,y) において (x,y-ydelta) から
(x,y+ydelta) までと (x-xdelta,y) から (x+xdelta,y) まで、または
(x,ylow) から (x,yhigh) までと (xlow,y) から (xhigh,y) までの線分が引
かれますが、これらはいくつのデータ列が与えられるかによって変わります。
誤差指示線の端の刻みの印の見た目は、{\bf set errorbars} で制御できます。
点と誤差指示線の間の隙間は、{\bf set pointintervalbox} で制御します。誤差
線を断線せずに直接点記号を貫通させるには、{\bf unset pointintervalbox} を
使用してください。
これは 4 列か、6 列のデータが必要です。

\preverbatim
\begin{verbatim}
    4 列:  x  y  xdelta  ydelta
    6 列:  x  y  xlow  xhigh  ylow  yhigh
\end{verbatim}
\postverbatim

データが、サポートされていない混合型の形式で与えられた場合、{\bf plot} コ
マンドの {\bf using} 指定を使って適切な形に直さないといけません。例えばデ
ータが (x,y,xdelta,ylow,yhigh) という形式である場合、以下のようにしま
す:

\preverbatim
\begin{verbatim}
     plot 'data' using 1:2:($1-$3):($1+$3):4:5 with xyerrorbars
\end{verbatim}
\postverbatim

入力列を追加 (5,7 列目) するとそれらを variable color として使います。
このスタイルでは、variable point 属性は使えません。

\newpage
 \section*{Xerrorlines}
\addcontentsline{toc}{section}{Xerrorlines}
\label{plotting styles xerrorlines}%
\label{style xerrorlines}%
\label{with xerrorlines}%
\label{xerrorlines}%
\index{xerrorlines}%
\gpinsetfigure{figure_xerrorlines}
{\bf xerrorlines} スタイルは 2 次元のデータ描画のみで利用可能です。
{\bf xerrorlines} は {\bf linespoints} に似ていますが、水平の誤差線が描かれる
ことが違います。各点 (x,y) で、データ列の個数に応じて (xlow,y) から
(xhigh,y) まで、または (x-xdelta,y) から (x+xdelta,y) までの線分が描か
れます。誤差線の端の刻みの印の見た目は、{\bf set errorbars} で制御できます。
基本的には、3 列か 4 列のデータが必要です:

\preverbatim
\begin{verbatim}
    3 列:  x  y  xdelta
    4 列:  x  y  xlow  xhigh
\end{verbatim}
\postverbatim

入力列を追加 (4,5 列目) するとそれらを variable color として使います。
このスタイルでは、variable point 属性は使えません。

\section*{Xyerrorlines}
\addcontentsline{toc}{section}{Xyerrorlines}
\label{plotting styles xyerrorlines}%
\label{style xyerrorlines}%
\label{with xyerrorlines}%
\label{xyerrorlines}%
\index{xyerrorlines}%
\gpinsetfigure{figure_xyerrorlines}
{\bf xyerrorlines} スタイルは 2 次元のデータ描画のみで利用可能です。
{\bf xyerrorlines} は {\bf linespoints} に似ていますが、水平と垂直の誤差線も描
かれることが違います。各点 (x,y) で、データ列の個数に応じて、
(x,y-ydelta) から (x,y+ydelta) までと (x-xdelta,y) から (x+xdelta,y)
まで、あるいは (x,ylow) から (x,yhigh) までと (xlow,y) から (xhigh,y)
までの線分が描かれます。誤差線の端の刻みの印の見た目は、{\bf set errorbars}
で制御できます。これは、4 列か 6 列の入力データが必要です。

\preverbatim
\begin{verbatim}
    4 列:  x  y  xdelta  ydelta
    6 列:  x  y  xlow  xhigh  ylow  yhigh
\end{verbatim}
\postverbatim

データが、サポートされていない混合型の形式で与えられた場合、{\bf plot} コ
マンドの {\bf using} 指定を使って適切な形に直さないといけません。例えばデ
ータが (x,y,xdelta,ylow,yhigh) という形式である場合、以下のようにしま
す:

\preverbatim
\begin{verbatim}
     plot 'data' using 1:2:($1-$3):($1+$3):4:5 with xyerrorlines
\end{verbatim}
\postverbatim

入力列を追加 (5,7 列目) するとそれらを variable color として使います。
このスタイルでは、variable point 属性は使えません。

\newpage
 \section*{Yerrorbars}
\addcontentsline{toc}{section}{Yerrorbars}
\label{plotting styles yerrorbars}%
\label{plotting styles errorbars}%
\label{style yerrorbars}%
\label{with yerrorbars}%
\label{style errorbars}%
\label{with errorbars}%
\label{yerrorbars}%
\index{yerrorbars}%
\index{errorbars}%
\gpinsetfigure{figure_yerrorbars}
{\bf yerrorbars} (または {\bf errorbars}) スタイルは 2 次元のデータ描画のみで
利用可能です。{\bf yerrorbars} は、垂直の誤差指示線 (error bar) が表示され
る以外は {\bf points} に似ています。各点 (x,y) において (x,y-ydelta) から
(x,y+ydelta) まで、または (x,ylow) から (x,yhigh) までの線分が引かれま
すが、これらはいくつのデータ列が与えられるかによって変わります。誤差指
示線の端の刻みの印の見た目は、{\bf set errorbars} で制御できます。点と誤差
線との隙間は {\bf set pointintervalbox} で制御します。誤差線を断線せずに直
接点記号を貫通させるには、{\bf unset pointintervalbox} を使用してください。

\preverbatim
\begin{verbatim}
    2 列:  [暗黙の x]  y  ydelta
    3 列:  x  y  ydelta
    4 列:  x  y  ylow  yhigh
\end{verbatim}
\postverbatim

入力列を追加すると、それらは可変 (variable) pointsize, 可変 pointtype,
可変色 (variable color) の情報として使われます。

以下も参照
\href{http://www.gnuplot.info/demo/mgr.html}{\tt errorbar デモ。
}


\section*{Yerrorlines}
\addcontentsline{toc}{section}{Yerrorlines}
\label{plotting styles yerrorlines}%
\label{plotting styles errorlines}%
\label{style yerrorlines}%
\label{with yerrorlines}%
\label{style errorlines}%
\label{with errorlines}%
\label{yerrorlines}%
\index{yerrorlines}%
\label{errorlines}%
\index{errorlines}%
\gpinsetfigure{figure_yerrorlines}
{\bf yerrorlines} (または {\bf errorlines}) スタイルは 2 次元のデータ描画のみ
で利用可能です。{\bf yerrorlines} は {\bf linespoints} に似ていますが、垂直の
誤差線が描かれることが違います。各点 (x,y) で、データ列の個数に応じて
(x,y-ydelta) から (x,y+ydelta) まで、または (x,ylow) から (x,yhigh)
までの線分が描かれます。誤差線の端の刻みの印の見た目は、
{\bf set errorbars} で制御できます。これは、3 列か 4 列の入力が必要です。

\preverbatim
\begin{verbatim}
    3 列:  x  y  ydelta
    4 列:  x  y  ylow  yhigh
\end{verbatim}
\postverbatim

入力列を追加 (4,5 列目) すると、それらは点の variable color 情報として
使われます。
さらなる入力列は、variable point size, variable point type, variable
color の情報として使われます。

以下も参照
\href{http://www.gnuplot.info/demo/mgr.html}{\tt エラーバーのデモ
}

\newpage
 \section*{3 次元描画 (3D plots)}
\addcontentsline{toc}{section}{3 次元描画 (3D plots)}
\label{3D plots}%
\label{plotting styles 3D plots}%
\index{3D}%
3 次元グラフは、コマンド {\bf plot} ではなくコマンド {\bf splot} を使って生成
します。多くの 2 次元描画スタイル (points, images, impulse, labels,
vectors) は、z 座標データ列を追加指定すれば 3 次元でも使えます。2 次元
射影グラフのみが欲しい場合でも、{\bf splot} コマンドを使って生成しなければ
いけない描画型 (pm3d coloring, surfaces, contours) も中にはあります。
\subsection*{曲面描画 (surface plots)}
\addcontentsline{toc}{subsection}{曲面描画 (surface plots)}
\label{surface plots}%
\index{surface}%
\gpinsetfigure{figure_surface+contours}
描画スタイル {\bf splot with lines} や {\bf splot with surface} はいずれも曲面
を格子線で生成します。曲面の塗り潰しは、スタイル {\bf splot with pm3d} で
行うことができます。曲面は通常、それが 3 次元の曲面であるとはっきりわ
かるような適切な視方向から表示されます。以下参照: {\bf set view (p.~\pageref{set view})\index{view}}。
その場合、X, Y, Z 軸はすべて描画内に表示されます。3 次元的な錯覚は、隠
線処理により、より増幅されます。以下参照: {\bf hidden3d (p.~\pageref{hidden3d})\index{hidden3d}}。
コマンド {\bf splot} は、定数の Z 値に対する等高線を計算し描画することもで
きます。これらの等高線は、曲面それ自体の上に書くこともできますし、XY
平面へ射影することもできます。以下参照: {\bf set contour (p.~\pageref{set contour})\index{contour}}。
\subsection*{2 次元射影 (set view map)}
\addcontentsline{toc}{subsection}{2 次元射影 (set view map)}
\label{2D projection (set view map)}%
\gpinsetfigure{figure_mapcontours}
コマンド {\bf splot} の特別な場合として、グラフの Z 軸に沿った xy 平面への
射影による、Z 座標の 2 次元曲面への地図作成 (map) があります。以下参照:
{\bf set view map (p.~\pageref{set view map})\index{map}}。この描画モードは、等高線の描画や温度分布 (heatmap) の
生成に便利でしょう。以下の図は描画スタイル {\bf lines} を一度、{\bf labels} を
一度描画した等高線を示しています (訳注: 図が表示されている場合)。
\subsection*{PM3D 描画 (PM3D plots)}
\addcontentsline{toc}{subsection}{PM3D 描画 (PM3D plots)}
\label{PM3D PLOTS}%
\gpinsetfigure{figure_pm3dsolid}
3 次元曲面は、線分でなく、単色の pm3d 四辺形を使って描画することもでき
ます。その場合、隠面処理はありませんが、各面要素を背景から前面に向かっ
て描くことで同様の効果が得られます。以下参照: {\bf set pm3d depthorder (p.~\pageref{set pm3d depthorder})\index{depthorder}}。
pm3d 曲面は、デフォルトでは滑らかな連続的なカラーパレットを使って色付
けします (以下参照: {\bf set palette (p.~\pageref{set palette})\index{palette}}) が、単色の曲面を指定することもでき
ますし、この図にあるように (訳注: 図が表示されている場合)、上の面と下
の面に異なる単色を指定することもできます。以下参照: {\bf pm3d fillcolor (p.~\pageref{pm3d fillcolor})\index{fillcolor}}。
hidden3d モードでの線分の切り取りとは違い、pm3d 曲面は現在の zrange の
範囲に滑らかにクリッピングできます。以下参照: {\bf set pm3d clipping (p.~\pageref{set pm3d clipping})\index{clipping}}。

\newpage
 \section*{柵グラフ (Fence plots)}
\addcontentsline{toc}{section}{柵グラフ (Fence plots)}
\label{fenceplots}%
\index{fenceplots}%
\index{zerrorfill}%
\gpinsetfigure{figure_fenceplot}
柵グラフ (fence plot) は、複数の 2 次元グラフを、その Y 座標は揃え、そ
れぞれを区別するために X に沿ってはずらした形で結合したものです。土台
の値から個々のグラフの Z 座標までの間の領域を塗り潰すことで、Y 方向の
整列と Z 座標の高さの違いの見た目を強調します。gnuplot でこの形式のグ
ラフを書くにはいくつかの方法があります。最も単純なのは、5 列の形式の
{\bf zerrorfill} スタイルを利用する方法です。i で添字化された複数の曲線 z
= Fi(y) があるとき、{\bf splot with zerrorfill} で以下のような入力列を使え
ば柵グラフを書くことができます:
\preverbatim
\begin{verbatim}
    i y z_base z_base Fi(y)
\end{verbatim}
\postverbatim

\section*{ボクセルデータのモザイク型曲面 (isosurface)}
\addcontentsline{toc}{section}{ボクセルデータのモザイク型曲面 (isosurface)}
\label{plotting styles isosurface}%
\label{style isosurface}%
\label{with isosurface}%
\label{isosurface}%
\index{isosurface}%
\gpinsetfigure{figure_isosurface}
この 3 次元描画スタイルには、値の入っているボクセル格子データが必要で
す (以下参照: {\bf set vgrid (p.~\pageref{set vgrid})\index{vgrid}}, {\bf vfill (p.~\pageref{vfill})\index{vfill}})。要求する値レベルに対応する非整数
格子座標を評価する際は、ボクセル格子値の線形補間を使用します。それらの
点は、モザイク型曲面を生成するのに使用します。その曲面を構成する切片は、
{\bf set pm3d} で色、透過、境界属性などが制御できるよう pm3d 多角形として
描画します。一般に、その曲面は、その切片が細い境界で与えられ、その境界
が塗り潰しの色よりも暗い色であれば、見た目がわかりやすくなります。デフ
ォルトでは、モザイク型曲面は四角形と三角形を混ぜて使いますが、三角形の
みを使いたい場合は、以下参照: {\bf set isosurface (p.~\pageref{set isosurface})\index{isosurface}}。
例:
\preverbatim
\begin{verbatim}
    set style fill solid 0.3
    set pm3d depthorder border lc "blue" lw 0.2
    splot $helix with isosurface level 10 fc "cyan"
\end{verbatim}
\postverbatim

\section*{3 次元での曲線間の塗り潰し (zerrorfill)}
\addcontentsline{toc}{section}{3 次元での曲線間の塗り潰し (zerrorfill)}
\label{plotting styles zerrorfill}%
\label{style zerrorfill}%
\label{with zerrorfill}%
\label{zerrorfill}%
\index{zerrorfill}%
書式:

\preverbatim
\begin{verbatim}
    splot DATA using 1:2:3:4[:5] with zerrorfill {fc|fillcolor <colorspec>}
               {lt|linetype <n>} {<line properties>}
\end{verbatim}
\postverbatim

描画スタイル {\bf zerrorfill} は、2 次元の描画スタイルの一つの変種のような
ものです。これは、2 つの関数の間、または同じ x, y に対して 2 つの z の
値を点を与えて得られるデータの折れ線の間の領域を塗り潰します。これは、
4 列か 5 列の入力が必要です。

\preverbatim
\begin{verbatim}
    4 列:  x  y  z  zdelta
    5 列:  x  y  z  zlow  zhigh
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_zerror}
zlow と zhigh の間の領域を塗り潰し、その後 z の値のところに線を描きま
す。デフォルトでは、その線と塗り潰しには同じ色を使いますが、その色は
splot コマンド上で変更できます。塗り潰しの設定は、大域的な fill style
の影響も受けます。以下参照: {\bf set style fill (p.~\pageref{set style fill})\index{fill}}。

splot コマンドに複数の曲線を指定した場合は、後に描いた曲線が、前のすべ
ての曲線を隠してしまう可能性があります。見る人側の手前の曲線のみが隠す
ように適切な深さ順の並べかえを行うには、後ろから前への順番付けが最良で
す。他には、{\bf set pm3d depthorder base} を用いて自動的に並べかえること
ができますが、残念ながら、これは z の値に対応するすべての折れ線を描い
た後に、すべての領域の塗り潰しを行います。よって、折れ線を見えるように
して、かつ領域の塗り潰しの深さ順の並べかえを行うには、領域の塗り潰しは
部分的に透過 (transparent) させるといいかもしれません。

以下の最初の 2 つの例の塗り潰し領域は、同じものになります。

\preverbatim
\begin{verbatim}
    splot 'data' using 1:2:3:4 with zerrorfill fillcolor "grey" lt black
    splot 'data' using 1:2:3:($3-$4):($3+$4) with zerrorfill
    splot '+' using 1:(const):(func1($1)):(func2($1)) with zerrorfill
    splot for [k=1:5] datafile[k] with zerrorfill lt black fc lt (k+1)
\end{verbatim}
\postverbatim

この描画スタイルは、柵グラフ (fence plot) を作成するのにも使えます。
以下参照: {\bf fenceplots (p.~\pageref{fenceplots})\index{fenceplots}}。以下も参照: {\bf waterfallplots (p.~\pageref{waterfallplots})\index{waterfallplots}}。

\section*{アニメーション (Animation)}
\addcontentsline{toc}{section}{アニメーション (Animation)}
\label{animation}%
\index{animation}%
gnuplot の対話型出力形式 (qt, win, wxt, x11, aqua) ではいずれも、コマ
ンドラインやスクリプトから連続するフレームの描画を行うことでアニメーシ
ョンを表示することができます。

マウスが使えない出力形式でも、ある種のアニメーションをサポートするもの
があります。以下参照: {\bf term sixelgd (p.~\pageref{term sixelgd})\index{sixelgd}}, {\bf term kittycairo (p.~\pageref{term kittycairo})\index{kittycairo}}。

アニメーションをファイルとして保存して、後で手元で再生したり Web ペー
ジに埋め込んだりできる出力形式が 2 つあります。以下参照:
{\bf term gif animate (p.~\pageref{term gif animate})\index{animate}}, {\bf term webp (p.~\pageref{term webp})\index{webp}}。


例:

\preverbatim
\begin{verbatim}
    unset border; unset tics; unset key; set view equal xyz
    set pm3d border linecolor "black"
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
    set term webp animate delay 50
    set output 'spinning_d20.webp'
    do for [ang=1:360:2] {
        set view 60, ang
        splot 'icosahedron.dat' with polygons fc "gold"
    }
    unset output
\end{verbatim}
\postverbatim

\newpage\part{コマンド (Commands)}
\label{commands}%
\index{commands}%
このセクションでは {\bf gnuplot} が受け付けるコマンドをアルファベット順に
並べています。このドキュメントを紙に印刷したものは全てのコマンドを含ん
でいますが、対話型で参照できるドキュメントの方は完全ではない可能性があ
ります。実際、この見出しの下に何のコマンドも表示されないシステムがあり
ます。

ほとんどの場合、コマンド名とそのオプションは、紛らわしくない範囲で省略
することが可能です。すなわち、{\tt"}{\bf plot f(x) with lines}{\tt"} の代わりに
{\tt"}{\bf p f(x) w li}{\tt"} とすることができます。

書式の記述において、中カッコ (\{\}) は追加指定できる引数を意味し、
縦棒 ($|$) は互いに排他的な引数を区切るものとします。
\section*{Break}
\addcontentsline{toc}{section}{Break}
\label{commands break}%
\label{break}%
\index{break}%
コマンド {\bf break} は、{\bf do}, {\bf while} 文の繰り返し実行部分のカッコ内での
み意味を持ちます。このコマンドは、その中カッコ内の残りの命令をスキップ
し、繰り返しを中断し、その閉じカッコの次の文から実行を再開します。以下
も参照: {\bf continue (p.~\pageref{continue})\index{continue}}。
\section*{Cd}
\addcontentsline{toc}{section}{Cd}
\label{commands cd}%
\label{cd}%
\index{cd}%
{\bf cd} コマンドはカレントディレクトリを変更します。

書式:
\preverbatim
\begin{verbatim}
     cd '<ディレクトリ名>'
\end{verbatim}
\postverbatim

ディレクトリ名は引用符に囲まれていなければなりません。

例:
\preverbatim
\begin{verbatim}
     cd 'subdir'
     cd '..'
\end{verbatim}
\postverbatim

バックスラッシュ ($\backslash$) は二重引用符内 ({\tt"}) では特別な意味を持ってしまうた
めにエスケープする必要がありますので、Windows ユーザには単一引用符を使
うことを勧めます。例えば、
\preverbatim
\begin{verbatim}
     cd "c:\newdata"
\end{verbatim}
\postverbatim
では失敗しますが、
\preverbatim
\begin{verbatim}
     cd 'c:\newdata'
     cd "c:\\newdata"
\end{verbatim}
\postverbatim
なら期待通りに動くでしょう。
\section*{Call}
\addcontentsline{toc}{section}{Call}
\label{commands call}%
\label{call}%
\index{call}%
{\bf call} コマンドは、読み込むファイル名の後ろに、9 つまでのパラメータを
与えることができることを除けば {\bf load} コマンドと等価です。

\preverbatim
\begin{verbatim}
    call "inputfile" <param-1> <param-2> <param-3> ... <param-9>
\end{verbatim}
\postverbatim

現在の gnuplot は、文字列変数 ARG0, ARG1, ..., ARG9 と、整数変数 ARGC
を提供します。{\bf call} コマンドを実行すると、ARG0 には入力ファイル名が、
ARGC にはパラメータ数が設定され、ARG1 から ARG9 にはコマンドラインに並
べられたパラメータの値が読み込まれます。

通常パラメータ ARG1 ... ARG9 は文字列値として保存されるので、それをマ
クロ展開して参照することもできます。しかし、多くの場合、それらは他の変
数と同様に利用する方がより自然でしょう。

パラメータ ARG1 ... ARG9 の文字列表現と平行して、そのパラメータ自身を
配列 ARGV[9] にも保存します。以下参照: {\bf ARGV (p.~\pageref{ARGV})\index{ARGV}}。

非推奨: 5.0 以前のバージョンでは、$<$param-1$>$ ... 等の内容を、特別な記号
\$0, \$1, ..., \$9 をマクロのように置換することで表現していました。この古
い仕組みは、もはやサポートしていません。

試験段階: 関数ブロック (このバージョンからの新機能) は、{\bf call} に代わ
るより柔軟な機能を提供します。以下参照: {\bf function blocks (p.~\pageref{function blocks})\index{blocks}}。

\subsection*{ARGV[ ]}
\addcontentsline{toc}{subsection}{ARGV[ ]}
\label{argv}%
\index{argv}%
\label{ARGV}%
\index{ARGV}%
\label{call argv}%
\label{call ARGV}%
{\bf call} コマンドにより gnuplot スクリプトに入った場合、呼び出し側からの
パラメータは、2 つの仕組みで利用できます。各パラメータは、まず文字列と
して変数 ARG1, ARG2, ... ARG9 に保存します。さらにそれらは配列 ARGV[9]
の各要素としても保存します。こちらは、数値は複素変数値として保存します
が、それ以外はすべて文字列として保存します。ARGC はパラメータの個数を
保持します。よって、以下の call 後には

\preverbatim
\begin{verbatim}
    call 'routine_1.gp'  1 pi "title"
\end{verbatim}
\postverbatim

以下の 3 つの引数を routine\_1.gp 内で以下の値として利用できます:

\preverbatim
\begin{verbatim}
    ARGC = 3
    ARG1 = "1"         ARGV[1] = 1.0
    ARG2 = "3.14159"   ARGV[2] = 3.14159265358979...
    ARG3 = "title"     ARGV[3] = "title"
\end{verbatim}
\postverbatim

この例では、ARGV[1] と ARGV[2] は可能な限りの精度を持つ浮動小数値とな
りますが、ARG2 は書式 {\tt"}\%g{\tt"} による文字列として保存されるため精度が落ち
ています。

ARGC とそれに対応する配列 ARGV[ARGC] は関数ブロック呼び出しの内部でも
利用可能です。しかし、関数ブロック呼び出しでは、文字列変数 ARG1,... は
作られません。
\subsection*{例 (Example)}
\addcontentsline{toc}{subsection}{例 (Example)}
\label{call example}%
\label{commands call example}%
\preverbatim
\begin{verbatim}
    以下を call すると:
        MYFILE = "script1.gp"
        FUNC = "sin(x)"
        call MYFILE FUNC 1.23 "This is a plot title"
    呼び出されたスクリプト内では以下のようになり:
        ARG0 は "script1.gp"
        ARG1 は文字列値 "sin(x)"
        ARG2 は文字列値 "1.23"
        ARG3 は文字列値 "This is a plot title"
        ARGC は 3
    そのスクリプト内では以下のようなものを実行できる:
        plot @ARG1 with lines title ARG3
        print ARG2 * 4.56, @ARG2 * 4.56
        print "This plot produced by script ", ARG0
\end{verbatim}
\postverbatim

この例の ARG1 は文字列なので、それはマクロとして参照しなければいけませ
んが、ARG2 はマクロ参照でも (数値定数になる)、変数のままでも (文字列
{\tt"}1.23{\tt"} が実数値に自動的に変換された後の同じ数値になる) 構わないことに
注意してください。

シェルスクリプトで gnuplot をコマンドラインオプション {\bf -c} つきで実行
することで、これと同じことを直接行うこともできます:

\preverbatim
\begin{verbatim}
    gnuplot -persist -c "script1.gp" "sin(x)" 1.23 "This is a plot title"
\end{verbatim}
\postverbatim

\section*{Clear}
\addcontentsline{toc}{section}{Clear}
\label{commands clear}%
\label{clear}%
\index{clear}%
\index{inset}%
\label{inset}%
\index{inset}%
{\bf clear} コマンドは、{\bf set terminal} や {\bf set output} で選択した画面、出
力装置をクリアします。ハードコピー装置に対しては通常改ページを行います。

いくつかの出力装置は {\bf clear} コマンドでは {\bf set size} で定義された描画
領域のみを消去します。そのため、{\bf set multiplot} とともに使用することで
挿入図を一つ作ることができます。

例:
\preverbatim
\begin{verbatim}
     set multiplot
     plot sin(x)
     set origin 0.5,0.5
     set size 0.4,0.4
     clear
     plot cos(x)
     unset multiplot
\end{verbatim}
\postverbatim

詳細については、以下参照: {\bf set multiplot (p.~\pageref{set multiplot})\index{multiplot}}, {\bf set size (p.~\pageref{set size})\index{size}}, {\bf set origin (p.~\pageref{set origin})\index{origin}}。
\section*{Continue}
\addcontentsline{toc}{section}{Continue}
\label{commands continue}%
\label{continue}%
\index{continue}%
コマンド {\bf continue} は、{\bf do}, {\bf while} 文の繰り返し実行部分のカッコ内で
のみ意味を持ちます。このコマンドは、その中カッコ内の残りの命令をスキッ
プし、次の繰り返しに進みます (もしループの残りがあれば)。以下も参照:
{\bf break (p.~\pageref{break})\index{break}}。
\section*{Do}
\addcontentsline{toc}{section}{Do}
\label{commands do}%
\label{do}%
\index{do}%
書式:
\preverbatim
\begin{verbatim}
     do for <iteration-spec> {
          <commands>
          <commands>
     }
\end{verbatim}
\postverbatim
これは、コマンド列を複数回実行します。コマンドは中カッコ \{\} で囲み、か
つ開始カッコ {\tt"}\{{\tt"} は、キーワード {\bf do} と同じ行に置く必要があります。こ
のコマンドは、古い形式 (かっこなし) の if/else 構文と一緒に使うことは
できません。繰り返し指定 $<$iteration-spec$>$ の例については、以下参照:
{\bf iteration (p.~\pageref{iteration})\index{iteration}}。例:
\preverbatim
\begin{verbatim}
     set multiplot layout 2,2
     do for [name in "A B C D"] {
         filename = name . ".dat"
         set title sprintf("Condition %s",name)
         plot filename title name
     }
     unset multiplot
\end{verbatim}
\postverbatim
以下も参照: {\bf while (p.~\pageref{while})\index{while}}, {\bf continue (p.~\pageref{continue})\index{continue}}, {\bf break (p.~\pageref{break})\index{break}}。
\section*{Evaluate}
\addcontentsline{toc}{section}{Evaluate}
\label{commands evaluate}%
\label{evaluate}%
\index{evaluate}%
コマンド {\bf evaluate} は、文字列、または関数ブロックに含まれる gnuplot
コマンドを実行します。その文字列中に改行文字を入れてはいけません。

\preverbatim
\begin{verbatim}
    evaluate "commands in a string constant"
    evaluate string_valued_function( ... arguments ... )
    evaluate $functionblock( ... arguments ... )
\end{verbatim}
\postverbatim

これは、特に同様のコマンドの繰り返しに有用です。

例:
\preverbatim
\begin{verbatim}
     set_label(x, y, text) \
       = sprintf("set label '%s' at %f, %f point pt 5", text, x, y)
     eval set_label(1., 1., 'one/one')
     eval set_label(2., 1., 'two/one')
     eval set_label(1., 2., 'one/two')
\end{verbatim}
\postverbatim

gnuplot コマンドを持つ文字列を構成したり実行する他の仕組みについては、
以下参照: {\bf function blocks (p.~\pageref{function blocks})\index{blocks}}, {\bf substitution macros (p.~\pageref{substitution macros})\index{macros}}。
\section*{Exit}
\addcontentsline{toc}{section}{Exit}
\label{commands exit}%
\label{exit}%
\index{exit}%
\preverbatim
\begin{verbatim}
    exit
    exit message "エラーメッセージ文字列"
    exit status <整数のエラーコード>
\end{verbatim}
\postverbatim

{\bf exit} と {\bf quit} の両コマンドは END-OF-FILE 文字 (通常 Ctrl-D) 同様、
現在の入力ストリーム、すなわち端末の対話やパイプ入力、ファイル入力 (パ
イプ) からの入力を終了させます。入力ストリームが入れ子 (階層的な
{\bf load} のスクリプトで) になっている場合、読み込みは親のストリームで継
続されます。トップレベルのストリームが閉じられると、プログラムはそれ自
身終了します。

コマンド {\bf exit gnuplot} は、直ちに、無条件に、そして例え入力ストリーム
が多段階にネストされていても、gnuplot を終了させます。その場合、開かれ
ていた全ての出力ファイルはきれいに完全な形では閉じられない可能性があり
ます。使用例:

\preverbatim
\begin{verbatim}
     bind "ctrl-x" "unset output; exit gnuplot"
\end{verbatim}
\postverbatim

コマンド {\bf exit error {\tt"}error message{\tt"}} は、疑似プログラムエラーを行いま
す。対話型モードでは、そのエラーメッセージを表示し、すべのネストされた
ループや call を中断してコマンドラインに帰ります。非対話型モードでは、
プログラムを終了します。

gnuplot が終了しシェルの制御に戻る場合、その返り値は意味のないものにな
ることがありますが、このコマンドを以下のように実行すれば、シェルに特定
の値を返すことが可能です。

\preverbatim
\begin{verbatim}
    exit status <value>
\end{verbatim}
\postverbatim

詳細は、以下参照: {\bf batch/interactive (p.~\pageref{batch/interactive})\index{batch/interactive}}。
\section*{Fit}
\addcontentsline{toc}{section}{Fit}
\label{commands fit}%
\label{fit}%
\index{fit}%
\label{least-squares}%
\index{least squares}%
\label{Marquardt}%
\index{Marquardt}%
コマンド {\bf fit} は、Marquardt-Levenberg 法による非線形最小自乗法 (NLLS)
を用いて、データ点の集合にユーザが与える式を当てはめます。独立変数は
12 まで許されていて、従属変数は常に 1 つで、任意個数のパラメータを当て
はめることができます。さらに追加で、データ点の重み付け用に誤差評価を入
力することも可能です。

{\bf fit} の最も基本的な使用法は、以下の単純な例が示しています。ここで、フ
ァイルから読み込む x と y の計測値 (measured) の集合は、関数 y = f(x)
のモデル化に使います。

\preverbatim
\begin{verbatim}
     f(x) = a + b*x + c*x**2
     fit f(x) 'measured.dat' using 1:2 via a,b,c
     plot 'measured.dat' u 1:2, f(x)
\end{verbatim}
\postverbatim

書式:
\preverbatim
\begin{verbatim}
     fit {<ranges>} <expression>
         '<datafile>' {datafile-modifiers}
         {{unitweights} | {y|xy|z}error | errors <var1>{,<var2>,...}}
         via '<parameter file>' | <var1>{,<var2>,...}
\end{verbatim}
\postverbatim

範囲 (xrange, yrange 等) は、当てはめに使用するデータを制限する目的で
使うことができ、その範囲を超えたデータは無視します。その書式は {\bf plot}
コマンド同様
\preverbatim
\begin{verbatim}
     [{dummy_variable=}{<min>}{:<max>}],
\end{verbatim}
\postverbatim
です。以下参照: {\bf plot ranges (p.~\pageref{plot ranges})\index{ranges}}。

$<$expression$>$ は、通常はあらかじめユーザ定義された f(x) または f(x,y)
の形の関数ですが、{\bf gnuplot} で有効などんな数式でも指定できます。ただし
実数値関数でなければいけません。
独立変数の名前は、コマンド {\bf set dummy} で設定するか、fit の範囲指定部
分 ($<$rangse$>$) で設定します (以下を参照)。デフォルトでは、最初の 2 つは
x, y となります。
さらに、その数式は、当てはめの作業により決定する値を持つ 1 つ以上の変
数 (パラメータ) に依存すべきです。

$<$datafile$>$ は {\bf plot} コマンドと同様に扱われます。{\bf plot datafile} の修
飾子 ({\bf using}, {\bf every},...) は、{\bf smooth} を除いて、全て {\bf fit} に使うこ
とができます。以下参照: {\bf plot datafile (p.~\pageref{plot datafile})\index{datafile}}。

データファイルの内容は、plot コマンドに使用するのと同じ {\bf using} 指定を
使うことで柔軟に解釈させることができます。例えば、独立変数 x を2 列目
と 3 列目の和として生成し、z の値を 6 列目から取り、重みを 1 としたい
場合は以下のようにします:

\preverbatim
\begin{verbatim}
     fit ... using ($2+$3):6
\end{verbatim}
\postverbatim

{\bf using} 指定がない場合、fit は暗黙に独立変数は 1 つだけと仮定します。
ファイル自身、または using 指定が 1 列だけのデータを持つ場合、その行番
号を独立変数値として使用します。
{\bf using} 指定を与えた場合、最大 12 個 (指定してコンパイルしていればさら
にそれ以上) の独立変数を利用できます。

オプション {\bf unitweights} (これがデフォルト) は、すべてのデータ点が等し
い重みを持つとみなします。これは、キーワード {\bf error} を使用することで
変更でき、これはデータファイルから 1 つ以上の変数の誤差評価を読み込み、
その誤差評価を対応する変数値の標準偏差 s とみなし、各データに 1/s**2
の重みを計算するのに使用します。

独立変数の誤差評価において、その重みには、{\tt"}有効分散法{\tt"} (effective
variance method; Jay Orear, Am. J. Phys., Vol. 50, 1982) に従って、さ
らに当てはめ関数の微分係数をかけます。

キーワード {\bf errors} には、その後ろに、入力がどの変数の誤差であるのかを
示すコンマ区切りの 1 つ以上の変数名のリストが付きます。従属変数 z は常
にその中になければいけませんが、独立変数は必須ではありません。
そのリストの各変数に対し、ファイルからその分の、各変数の誤差評価を持つ
追加の列を読み込みます。繰り返しになりますが、{\bf using} 指定により柔軟な
解釈が可能になります。
よって、独立変数の数は暗黙に、{\bf using} 指定内の列の数から 1 を引いて
(従属変数分)、さらに {\bf errors} 指定内の変数の個数を引いた数になることに
注意してください。

例として、2 つの独立変数があり、そして 1 つ目の独立変数と従属変数の誤
差データがある場合は、{\bf errors x,z} 指定と 5 列の {\bf using} 指定を使うこ
とになりますが、それは x:y:z:sx:sz のように解釈されます (x, y は独立変
数、z が従属変数、sx, sz は x, z の標準偏差)。

{\bf errors} 指定のちょっとした略記法も 2,3 用意されています:
{\bf yerrors} (独立変数が 1 列ある当てはめ用)、
{\bf zerrors} (より一般の場合) は、いずれも {\bf errors z} と同値で、1 列だけ
追加の従属変数用の誤差列があることを意味しています。

{\bf xyerrors} は、独立変数は 1 列で、その独立変数と従属変数の両方の 2 列
の誤差列が追加されることを意味します。この場合、x と y の誤差は Orear
の有効分散法 (effective variance method) で処理されます。

{\bf yerror} と {\bf xyerror} の形式および解釈は、それぞれ 2 次元描画スタイル
の {\bf yerrorlines} と {\bf xyerrorlines} に同等であることに注意してください。

コマンド {\bf set fit v4} を使用すると、fit のコマンド書式は {\bf gnuplot} バ
ージョン 4 と互換の書式になります。その場合、{\bf using} には、独立変数が
2 つ以上ならば、独立変数の数より 2 つ (z と s) 多い指定が必要で、
{\bf gnuplot} は、{\bf using} 指定で与えられた列の数に応じて、以下の書式に従い
ます:

\preverbatim
\begin{verbatim}
     z                           # 独立変数は 1 つ (行番号)
     x:z                         # 独立変数は 1 つ (第 1 列)
     x:z:s                       # 独立変数は 1 つ (全部で 3 列)
     x:y:z:s                     # 独立変数は 2 つ (全部で 4 列)
     x1:x2:x3:z:s                # 独立変数は 3 つ (全部で 5 列)
     x1:x2:x3:...:xN:z:s         # 独立変数は N 個 (全部で N+2 列)
\end{verbatim}
\postverbatim

これは、2 つ以上の独立変数で fit をする場合、z-誤差 s を与える必要があ
ることを意味することに注意してください。重みを 1 にしたい場合は、それ
を、例えば x:y:z:(1) のような書式を using に指定することで明示的に与え
る必要があります。

仮変数名は、下で紹介するように範囲指定で指定することで変更できます。最
初の範囲は {\bf using} 指定の最初のものに対応し、以下同様です。従属変数で
ある z の範囲指定もできますが、それは、f(x,...) の値をその範囲外にして
しまうようなデータ点が、残差を最小化することには寄与しない場合に有効で
す。

複数のデータ集合も複数の 1 変数関数に同時に当てはめることも、y を '仮
変数' とすれば可能です。例えばデータ行番号を使い、2 変数関数への当ては
め、とすればいいでしょう。以下参照: {\bf fit multi-branch (p.~\pageref{fit multi-branch})\index{multi-branch}}。

{\bf via} 指定子は、パラメータの最適化を、直接行うか、またはパラメータファ
イルを参照することによって行うかを指定します。

例:
\preverbatim
\begin{verbatim}
     f(x) = a*x**2 + b*x + c
     g(x,y) = a*x**2 + b*y**2 + c*x*y
     set fit limit 1e-6
     fit f(x) 'measured.dat' via 'start.par'
     fit f(x) 'measured.dat' using 3:($7-5) via 'start.par'
     fit f(x) './data/trash.dat' using 1:2:3 yerror via a, b, c
     fit g(x,y) 'surface.dat' using 1:2:3 via a, b, c
     fit a0 + a1*x/(1 + a2*x/(1 + a3*x)) 'measured.dat' via a0,a1,a2,a3
     fit a*x + b*y 'surface.dat' using 1:2:3 via a,b
     fit [*:*][yaks=*:*] a*x+b*yaks 'surface.dat' u 1:2:3 via a,b
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     fit [][][t=*:*] a*x + b*y + c*t 'foo.dat' using 1:2:3:4 via a,b,c
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     set dummy x1, x2, x3, x4, x5
     h(x1,x2,x3,x4,s5) = a*x1 + b*x2 + c*x3 + d*x4 + e*x5
     fit h(x1,x2,x3,x4,x5) 'foo.dat' using 1:2:3:4:5:6 via a,b,c,d,e
\end{verbatim}
\postverbatim

反復の個々のステップの後で、当てはめの現在の状態についての詳細な情報が
画面に表示されます。そし最初と最後の状態に関する同じ情報が {\tt"}fit.log{\tt"}
というログファイルにも書き出されます。このファイルは前の当てはめの履歴
を消さないように常に追加されていきます。これは望むなら削除、あるいは別
な名前にできます。コマンド {\bf set fit logfile} を使ってログファイルの名
前を変更することもできます。

{\bf set fit errorvariables} を使用した場合、各当てはめパラメータの誤差は
そのパラメータと似た名前 ({\tt"}\_err{\tt"} が追加された名前) の変数に保存されま
すので、その誤差をその後の計算の入力として使用することができます。

{\bf set fit prescale} とした場合、当てはめパラメータを、それらの初期値か
らスケール変換します。これにより、個々のパラメータの大きさにかなり違い
があるような場合でも、Marquardt-Levenberg ルーチンがより早く、より信頼
性のある値に収束させられるようになります。

当てはめの反復は Ctrl-C (wgnuplot では Ctrl-Break) を押すことで中断で
きます。現在の反復が正常に終了した後、以下のいずれかを選ぶことができま
す:
(1) 当てはめを止めて現在のパラメータの値を採用する
(2) 当てはめを続行する
(3) {\bf set fit script} か、環境変数 {\bf FIT\_SCRIPT} で指定した {\bf gnuplot} コ
マンドを実行する。そのデフォルトは {\bf replot} で、もしデータと当てはめ関
数を一つのグラフにあらかじめ描画してあれば、現在の当てはめの状態を表示
することができます。

{\bf fit} が終了した後は、最後のパラメータの値を保存するのに {\bf save fit} コ
マンドを使います。その値は再びパラメータの値として使うことができます。
詳細は、以下参照: {\bf save fit (p.~\pageref{save fit})\index{fit}}。
\subsection*{パラメータの調整 (adjustable parameters)}
\addcontentsline{toc}{subsection}{パラメータの調整 (adjustable parameters)}
\label{commands fit parameters}%
\label{fit parameters}%
\label{commands fit adjustable_parameters}%
\label{fit adjustable_parameters}%
\label{fit_parameters}%
\index{fit parameters}%
{\bf via} はパラメータを調節するための 2 つの方法を指定できます。一つは
コマンドラインから直接指示するもので、もう一つはパラメータファイルを
参照して間接的に行うものです。この 2 つは初期値の設定で違った方法を取
ります。

調整するパラメータは、{\bf via} キーワードの後ろにコンマで区切られた変数名
のリストを書くことで指定できます。定義されていない変数は初期値 1.0 と
して作られます。しかし当てはめは、変数の初期値があらかじめ適切な値に設
定されている方が多分速く収束するでしょう。

パラメータファイルは個々のパラメータを、個別に 1 行に一つずつ、初期値を
次のような形で指定して書きます。
\preverbatim
\begin{verbatim}
     変数名 = 初期値
\end{verbatim}
\postverbatim

'\#' で始まるコメント行や空行も許されます。特別な形式として
\preverbatim
\begin{verbatim}
     変数名 = 初期値       # FIXED
\end{verbatim}
\postverbatim

は、この変数が固定されたパラメータであることを意味し、それはこのファイ
ルで初期化されますが、調節はされません。これは、{\bf fit} でレポートされる
変数の中で、どれが固定された変数であるかを明示するのに有用でしょう。な
お、{\bf \# FIXED} と言うキーワードは厳密にこの形でなくてはなりません。

\subsection*{Fit の概略 (fit beginners\_guide)}
\addcontentsline{toc}{subsection}{Fit の概略 (fit beginners\_guide)}
\label{commands fit beginners_guide}%
\label{fit beginners_guide}%
\label{fit guide}%
\label{fitting}%
\index{fitting}%
{\bf fit} は、与えられたデータ点を与えられたユーザ定義関数にもっとも良く
当てはめるようなパラメータを見つけるのに使われます。その当てはめは、
同じ場所での入力データ点と関数値との自乗誤差、あるいは残差 (SSR:Sum
of the Squared Residuals) の和を基に判定されます。この量は通常χ(カイ)
自乗と呼ばれます。このアルゴリズムは SSR を 最小化することをしようと
します。もう少し詳しく言うと、データ誤差の重みつき残差の自乗和 (WSSR)
の最小化を行っています。ここで、残差は、二乗する前に入力データ誤差で
重みづけします。詳細は、以下参照: {\bf fit error\_estimates (p.~\pageref{fit error_estimates})\index{error estimates}}。

これが、(非線形) 最小自乗当てはめ法と呼ばれるゆえんです。{\bf 非線形} が
何を意味しているのかを見るための例を紹介しますが、その前にいくつかの
仮定について述べておきます。ここでは簡単のため、1 変数のユーザー定義
関数は z=f(x), 2 変数の関数は z=f(x,y) のようにし、いずれも従属変数と
して z を用いることにします。パラメータとは {\bf fit} が調整して適切な値を
決定するユーザ定義変数で、関数の定義式中の未知数です。ここで言う、線形
性/非線形性とは、従属変数 z と {\bf fit} が調整するパラメータとの関係に対
するものであり、z と独立変数 x (または x と y) との関係のことではあり
ません (数学的に述べると、線形最小自乗問題では、当てはめ関数のパラメー
タによる 2 階 (そして更に高階の) 導関数は 0、ということになります)。

線形最小自乗法では、ユーザ定義関数は単純な関数の和であり、それぞれは一
つのパラメータの定数倍で他のパラメータを含まない項になります。非線形最
小自乗法では、より複雑な関数を扱い、パラメータを色々な使い方をします。
フーリエ級数は線形と非線形の最小自乗法の違いを表す一つの例です。フーリ
エ級数では一つの項は
\preverbatim
\begin{verbatim}
    z=a*sin(c*x) + b*cos(c*x).
\end{verbatim}
\postverbatim
のように表されます。もし、a と b が未知なパラメータで c は定数だとすれば
パラメータの評価は線形最小自乗問題になります。しかし、c が未知なパラメー
タならばそれは非線形問題になります。

線形の場合、パラメータの値は比較的簡単な線形代数の直接法によって決定で
きます。しかし、'gnuplot' が使用する反復法は、その特別な線形の場も含め
て、より一般的な非線形の問題を解くことができます。{\bf fit} は検索を行うこ
とで最小値を探そうとします。反復の各ステップは、パラメータの新しい値の
組に対して WSSR を計算します。Marquardt-Levenberg のアルゴリズムは次の
ステップのパラメータの値を選択します。そしてそれはあらかじめ与えた基準、
すなわち、(1) 当てはめが {\tt"}収束した{\tt"} (WSSR の相対誤差がある限界値より小
さくなった場合。以下参照: {\bf set fit limit (p.~\pageref{set fit limit})\index{limit}})、または (2) あらかじめ設定
された反復数の限界に達した場合 (以下参照: {\bf set fit maxiter (p.~\pageref{set fit maxiter})\index{maxiter}})、のいずれ
かを満たすまで続けられます。キーボードからその当てはめの反復は中断でき
ますし、それに続いて中止することもできます (以下参照: {\bf fit (p.~\pageref{fit})\index{fit}})。ユーザ変
数 FIT\_CONVERGED は、 直前の fit コマンドが収束により終了した場合は 1
を持ち、それ以外の理由で中断した場合は 0 を持ちます。FIT\_NITER は、直
前の当てはめで行われた繰り返しの回数を持ちます。

当てはめに使われる関数はしばしばあるモデル (またはある理論) を元にして
いて、それはデータの振舞を記述したり、あるいは予測しようとします。よっ
て {\bf fit} は、データがそのモデルにどれくらいうまく当てはまっているのかを
決定するため、そして個々のパラメータの誤差の範囲を評価するために、モデ
ルの自由なパラメータの値を求めるのに使われます。以下参照:
{\bf fit error\_estimates (p.~\pageref{fit error_estimates})\index{error estimates}}。

そうでなければ、曲線による当てはめにおける関数は、モデルとは無関係に選
ばれています (それは十分な表現力と最も少ない数のパラメータを持ち、デー
タの傾向を記述しそうな関数として経験に基づいて選ばれるでしょう)。

しかし、もしあなたが全てのデータ点を通るような滑らかな曲線を欲しいなら
{\bf fit} ではなく、むしろ {\bf plot} の {\bf smooth} オプションでそれを行うべきで
しょう。
\subsection*{誤差評価 (error estimates)}
\addcontentsline{toc}{subsection}{誤差評価 (error estimates)}
\label{commands fit error_estimates}%
\label{fit error_estimates}%
\label{fit errors}%
{\bf fit} において {\tt"}誤差{\tt"} という用語は 2 つの異なった文脈で用いられます。
一つはデータ誤差、もう一つはパラメータ誤差です。

データ誤差は、平方残差の重み付きの和 WSSR、すなわちχ自乗を決定する際
個々のデータ点の相対的な重みを計算するのに用いられます。それらはパラメ
ータの評価に影響を与えます。それは、それらが、当てはめられた関数からの
個々のデータ点の偏差が最終的な値に与える影響の大きさを決定することによ
ります。正確なデータ誤差評価が与えられている場合には、パラメータの誤差
評価等の {\bf fit} が出力する情報はより役に立つでしょう。

{\bf statistical overview} では {\bf fit} の出力のいくつかを説明し、
'practical guidelines' に対する背景を述べています。
\subsubsection*{統計的な概要 (statistical overview)}
\addcontentsline{toc}{subsubsection}{統計的な概要 (statistical overview)}
\label{commands fit error statistical_overview}%
\label{statistical_overview}%
\index{statistical overview}%
非線形最小自乗法 (Non-Linear Least-Squares) の理論は、誤差の正規分布の
点から一般的に記述されています。すなわち、入力データは与えられた平均と
その平均に対する与えられた標準偏差を持つガウス (正規) 分布に従う母集団
からの標本と仮定されます。十分大きい標本、そして母集団の標準偏差を知る
ことに対しては、χ自乗分布統計を用いて、通常「χ自乗」と呼ばれる値を調
べることにより「当てはめの良さ」を述べることができます。減らされた自由
度のχ自乗 (χ自乗の自由度は、データ点の数から当てはめられるパラメータ
の個数だけ引いた数) が 1.0 である場合は、データ点と当てはめられた関数
との偏差の重みつき自乗和が、現在のパラメータ値に対する関数と与えられた
標準偏差によって特徴付けられた母集団の、ランダムなサンプルに対する自乗
和とが全く同じであることを意味します。

分散 = 総計である数え上げ統計学同様、母集団の標準偏差が定数でない場合、
各点は観測される偏差の和と期待される偏差の和を比較するときに個別に重み
づけされるべきです。

最終段階で {\bf fit} は 'stdfit'、すなわち残差の RMS (自乗平均平方根) で求
められる当てはめの標準偏差と、データ点が重みづけられている場合に '減ら
されたχ自乗' とも呼ばれる残差の分散をレポートします。自由度 (データ点
の数から当てはめパラメータの数を引いたもの) はこれらの評価で使用されま
す。なぜなら、データ点の残差の計算で使われるパラメータは同じデータから
得られるものだからです。データ点が重みを持つ場合、{\bf gnuplot} はいわゆる
p-値を計算します。それはその自由度と結果のχ自乗値に対するχ自乗分布の
累積分布関数値を 1 から引いた値です。以下参照:
{\bf fit practical\_guidelines (p.~\pageref{fit practical_guidelines})\index{practical guidelines}}。
これらの値は以下の変数に代入されます:
\preverbatim
\begin{verbatim}
     FIT_NDF = 自由度の数
     FIT_WSSR = 重みつき残差の自乗和
     FIT_STDFIT = sqrt(WSSR/NDF)
     FIT_P = p-値
\end{verbatim}
\postverbatim

パラメータに関する信頼レベルを評価することで、当てはめから得られる最小
のχ自乗と、要求する信頼レベルのχ自乗の値を決定するためのχ自乗の統計
を用いることが出来ます。しかし、そのような値を生成するパラメータの組を
決定するには、相当のさらなる計算が必要となるでしょう。

{\bf fit} は信頼区間の決定よりむしろ、最後の反復後の分散-共分散行列から直
ちに得られるパラメータの誤差評価を報告します。これらの評価は、標準偏差
として計算される量の指定に関する統計上の条件が、一般には非線形最小自乗
問題では保証されないのですが、線形最小自乗問題での標準誤差 (各パラメー
タの標準偏差) と同じ方法で計算されます。そしてそのため慣例により、これ
らは {\tt"}標準誤差{\tt"} とか {\tt"}漸近標準誤差{\tt"} と呼ばれています。漸近標準誤差は一
般に楽観過ぎ、信頼レベルの決定には使うべきではありませんが、定性的な指
標としては役に立つでしょう。

最終的な解は、解の範囲におけるパラメータの相関を示す相関行列も生成しま
す: その主対角要素、すなわち自己相関は常に 1 で、全てのパラメータが独
立ならば非対角要素はすべて 0 に近い値になります。完全に他を補いあう 2
つの変数は、大きさが 1 で、関係が正の相関か負の相関かによって正か負に
なる符号を持つ非対角要素を持ちます。非対角要素の大きさが小さいほど、各
パラメータの標準偏差の評価は、漸近標準誤差に近くなります。
\subsubsection*{実用的なガイドライン (practical guidelines)}
\addcontentsline{toc}{subsubsection}{実用的なガイドライン (practical guidelines)}
\label{commands fit error practical_guidelines}%
\label{fit practical_guidelines}%
\label{fit guidelines}%
個々のデータ点への重みづけの割り当ての基礎を知っているなら、それが測定
結果に対するより詳しい情報を使用させようとするでしょう。例えば、幾つか
の点は他の点より当てになるということを考慮に入れることが可能です。そし
て、それらは最終的なパラメータの値に影響します。

データの重み付けは、最後の反復後の {\bf fit} の追加出力に対する解釈の基礎
を与えます。各点に同等に重み付けを行なうにしても、重み 1 を使うことよ
りもむしろ平均標準偏差を評価することが、χ自乗が定義によりそうであるよ
うに、WSSR を 無次元変数とすることになります。

当てはめ反復の各段階で、当てはめの進行の評価に使うことが出来る情報が表
示されます ('*' はより小さい WSSR を見つけられなかったこと、そして再試
行していることを意味します)。'sum of squares of residuals' (残差の自乗
和) は、'chisquare' (χ自乗) とも呼ばれますが、これはデータと当てはめ
関数との間の WSSR を意味していて、{\bf fit} はこれを最小化しようとします。
この段階で、重み付けされたデータによって、χ自乗の値は自由度 (= データ
点の数 - パラメータの数) に近付くことが期待されます。WSSR は補正された
χ自乗値 (WSSR/ndf; ndf = 自由度)、または当てはめ標準偏差 (stdfit =
sqrt(WSSR/ndf)) を計算するのに使われます。それらは最終的な WSSR に対し
てレポートされます。

データが重み付けされていなければ、stdfit は、ユーザの単位での、データ
と当てはめ関数の偏差の RMS (自乗平均平方根) になります。

もし妥当なデータ誤差を与え、データ点が十分多く、モデルが正しければ、
補正χ自乗値はほぼ 1 になります (詳細は、適当な統計学の本の 'χ自乗分
布' の項を参照してください)。この場合、この概要に書かれていること以外
に、モデルがデータにどれくらい良く当てまっているかを決定するための追加
の試験方法がいくつかあります。

補正χ自乗が 1 よりはるかに大きくなったら、それは不正なデータ誤差評価、
正規分布しないデータ誤差、システム上の測定誤差、外れ値 (outliers)、ま
たは良くないモデル関数などのためでしょう。例えば
{\bf plot 'datafile' using 1:(\$2-f(\$1))} などとして残差を描画することは、
それらのシステム的な傾向を知るための手がかりとなります。データ点と関数
の両者を描画することは、他のモデルを考えための手がかりとなるでしょう。

同様に、1.0 より小さい補正χ自乗は、WSSR が、正規分布する誤差を持つラ
ンダムなサンプルと関数に対して期待されるものよりも小さいことを意味しま
す。データ誤差評価が大きすぎるのか、統計的な仮定が正しくないのか、また
はモデル関数が一般的すぎて、内在的傾向に加えて特殊なサンプルによる変動
の当てはめになっているのでしょう。最後の場合は、よりシンプルな関数にす
ればうまく行くでしょう。

当てはめの p-値は、自由度と結果のχ自乗値に対するχ自乗分布の累積分布
関数値を 1 から引いた値です。これは、当てはめの良さのものさしを提供し
ます。p-値の範囲は 0 から 1 までで、p-値がとても小さい、あるいはとても
大きい場合は、モデルがデータとその誤差をちゃんと記述していないことを意
味します。上で述べたように、これはデータに問題があるか、誤差かモデルに
問題がある、またはそれらの組み合わせなのだろうと思います。p-値が小さい
ことは、誤差が過小評価されているので、よって最終的なパラメータ誤差をス
ケール変換すべきだろうということを意味するでしょう。以下も参照:
{\bf set fit errorscaling (p.~\pageref{set fit errorscaling})\index{errorscaling}}。

標準的なエラーを、パラメータの不確定性に関する、あるより現実的な評価に
関係付けること、および相関行列の重要性を評価することができるようになる
前に、あなたは {\bf fit} と、それを適用しようとするある種の問題に慣れてお
く必要があるでしょう。

{\bf fit} は、大抵の非線形最小自乗法の実装では共通して、距離の自乗
(y-f(x))**2 の重み付きの和を最小化しようとすることに注意してください。
それは、x の値の {\tt"}誤差{\tt"} を計算に関してはどんな方法も与えてはおらず、単
に y に関する評価のみです。また、{\tt"}外れ値{\tt"} (正規分布のモデルから外れて
いるデータ点) は常に解を悪化させる可能性があります。
\subsection*{制御 (control)}
\addcontentsline{toc}{subsection}{制御 (control)}
\label{commands fit control}%
\label{fit control}%
\index{FIT LOG}%
\index{FIT SCRIPT}%
{\bf fit} に影響を与えるように定義できる環境変数が 2 つあります。これらの
環境変数は {\bf gnuplot} が立ち上がる前に定義しなければなりません。その設
定方法はオペレーティングシステムに依存します。

\preverbatim
\begin{verbatim}
     FIT_LOG
\end{verbatim}
\postverbatim
は、当てはめのログが書かれるファイル名 (およびパス) を変更します。デフ
ォルトでは、作業ディレクトリ上の {\tt"}fit.log{\tt"} となっています。これは、実
行時にコマンド {\bf set fit logfile} を使って上書きできます。

\preverbatim
\begin{verbatim}
     FIT_SCRIPT
\end{verbatim}
\postverbatim
は、ユーザが中断した後に実行するコマンドを指定します。デフォルトでは
{\bf replot} ですが、{\bf plot} や {\bf load} コマンドとすれば、当てはめの進行状
況の表示をカスタマイズするのに便利でしょう。これは、実行時にコマンド
{\bf set fit script} を使って上書きできます。

fit の動作におけるその他多くの実行時の調整については、以下参照:
{\bf set fit (p.~\pageref{set fit})\index{fit}}。
\subsection*{エラー処理 (error recovery)}
\addcontentsline{toc}{subsection}{エラー処理 (error recovery)}
\label{commands fit error_recovery}%
\label{fit error_recovery}%
gnuplot バージョン 6 より、コマンド {\bf fit} は、フィッティング処理の成功
失敗に関わらず、常にコマンド入力行の次に戻るようになりました。これは、
fit のエラーから復帰するスクリプトを可能にします。変数 FIT\_ERROR は、
成功すれば 0 に、エラーの場合は 0 以外の値になります。以下の例は、5 つ
のデータ集合のうちどれだけ多くのものが正常に fit できても描画します。
例えば 2 番目のデータ集合で失敗しても、それが 3 番目から 5 番目のデー
タ集合に対する fit を妨げることはありません。

\preverbatim
\begin{verbatim}
    do for [i=1:5] {
        DATA = sprintf("Data_%05d.dat", i)
        fit f(x) DATA via a,b,c
        if (FIT_ERROR || !FIT_CONVERGED) {
            print "Fit failed for ", DATA
            continue
        }
        set output sprintf("dataset_%05.png", i)
        plot DATA, f(x)
        unset output
    }
\end{verbatim}
\postverbatim

\subsection*{複数の当てはめ (multi-branch)}
\addcontentsline{toc}{subsection}{複数の当てはめ (multi-branch)}
\label{commands fit multi-branch}%
\label{fit multi-branch}%
\label{multi-branch}%
\index{multi branch}%
\label{branch}%
\index{branch}%
複数当てはめ法 (multi-branch fitting) では、複数のデータ集合を、共通の
パラメータを持つ複数の 1 変数の関数に、WSSR の総和を最小化することによ
って同時に当てはめることが出来ます。各データ集合に対する関数とパラメー
タ (枝) は '疑似変数' を使うことで選択できます。例えば、データ行番号
(-1; 'データ列' の番号) またはデータファイル番号 (-2) を 2 つ目の独立
変数とします。

例: 2 つの指数減衰形 z=f(x) が与えられていて、それぞれ異なるデータ集合
を記述しているが、共通した減衰時間を持ち、そのパラメータの値を評価する。
データファイルが x:z:s の形式であったとすると、この場合以下のようにす
ればよい。
\preverbatim
\begin{verbatim}
    f(x,y) = (y==0) ? a*exp(-x/tau) : b*exp(-x/tau)
    fit f(x,y) 'datafile' using  1:-2:2:3  via a, b, tau
\end{verbatim}
\postverbatim

より複雑な例については、デモファイル {\tt"}fit.dem{\tt"} で使われる {\tt"}hexa.fnc{\tt"}
を参照してください。

もし従属変数のスケールに差がある場合、単位の重み付けでは 1 つの枝が支
配してしまう可能性があるので、適当な重み付けが必要になります。各枝をバ
ラバラに当てはめるのに複数当てはめ法の解を初期値として用いるのは、全体
を合わせた解の各枝に対する相対的な影響に関する表示を与えることになるで
しょう。
\subsection*{初期値 (starting values)}
\addcontentsline{toc}{subsection}{初期値 (starting values)}
\label{commands fit starting_values}%
\label{fit starting_values}%
\label{starting_values}%
\index{starting values}%
非線形当てはめは、大域的な最適値 (残差の自乗和 (SSR) の最小値を持つ解)
への収束は保証はしませんが、局所的な極小値を与えることはできます。その
サブルーチンはそれを決定する方法を何も持ち合わせていないので、これが起
こったかどうかを判断するのはあなたの責任となります。

{\bf fit} は、解から遠くから始めると失敗するかも知れませんし、しばしばそれ
は起こり得ます。遠くというのは、SSR が大きく、パラメータの変化に対して
その変化が小さい、あるいは数値的に不安定な領域 (例えば数値が大きすぎて
浮動小数の桁あふれを起こす) に到達してしまって、その結果 {\tt"}未定義値
(undefined value){\tt"} のメッセージか {\bf gnuplot} の停止を引き起こしてしまう
ような場合を意味します。

大域的な最適値を見つける可能性を改善するには、最初の値をその解に少なく
ともほぼ近くに取るべきでしょう。例えば、もし可能ならば一桁分の大きさの
範囲内で。最初の値が解に近いほど不正な解で終了してしまう可能性は低くな
ります。最初の値を見つける一つの方法は、データと当てはめ関数を同じグラ
フの上に描画して適当な近さに達するまで、パラメータの値を変更して
{\bf replot} することを繰り返すことです。その描画は、不正な極小値を見つけ
たことで当てはめが終了したかどうかをチェックするのにも有用です。

もちろん、見た目が良い当てはめが見つかっても、それは {\tt"}それよりよい{\tt"} 当
てはめ (ある改良された当てはめの良さの基準によって特徴付けられた統計学
的な意味で、あるいはそのモデルのより適切な解である、という物理的な意味
で) が存在しないことの証明にはなりません。問題によっては、各パラメータ
の意味のある範囲をカバーするような様々な初期値の集合に対して {\bf fit} す
ることが望ましいかも知れません。
\subsection*{時刻データ (time data)}
\addcontentsline{toc}{subsection}{時刻データ (time data)}
\label{commands fit time_data}%
\label{fit time_data}%
時刻データの当てはめでは、gnuplot は 1970 1 月 1 日からの秒数として時
刻を表現していることを思い出すことが重要です。例えば、2023 年のある 1
日の間に計測したなんらかの時間に依存したデータに対して、2 次関数モデル
での当てはめをしたい場合、以下のようにそれができると期待するでしょう:
\preverbatim
\begin{verbatim}
    T(x) = a + b*x + c*x*x
    set xdata time
    fit T(x) 'hits.dat' using 1:3 via a,b,c
\end{verbatim}
\postverbatim

しかしそれは多分失敗します。なぜならそのある日に対応する内部での x の
の値は [1.67746e+09 : 1.67754e+09] のような範囲になってしまうからです。
計測データの x の小さな変更はわずかに 1.e-05 程度なので、収束を保証す
るためには、初期パラメータ評価で多分ずっと先の小数第何位の精度が必要に
なってしまうでしょう。

一つの解決策は、時間を測定の開始時間からの時間に変更して問題を作り変え
てしまうことです。
\preverbatim
\begin{verbatim}
    set xdata time       # データ書式は "27-02-2023 12:00:00 計測値"
    timefmt  = "%d-%m-%Y %H:%M:%S"
    set timefmt timefmt
    t0 = strptime( timefmt, "27-02-2023 00:00:00" )
    fit T(x) 'temperature.dat' using ($1-t0):3 via a,b,c
\end{verbatim}
\postverbatim

これはデータの範囲を [0 : 86400] に変え、より扱いやすくなります。
この場合の他の方法としては、1 列目の日付を無視し、2 列目に相対時刻形式
(tH/tM/tS) を使用することです。
\preverbatim
\begin{verbatim}
    set timefmt "%tH:%tM:%tS"
    fit T(x) 'temperature.dat' using 2:3 via a,b,c
\end{verbatim}
\postverbatim

\subsection*{ヒント (tips)}
\addcontentsline{toc}{subsection}{ヒント (tips)}
\label{commands fit tips}%
\label{fit tips}%
\label{tips}%
\index{tips}%
ここでは、{\bf fit} を最大限に利用するためにいくつか覚えておくべきヒントを
紹介します。それらは組織的ではないので、その本質がしみ込むまで何回もよ
く読んでください。

{\bf fit} の引数の {\bf via} には、2 つの大きく異なる目的のための 2 つの形式が
あります。{\bf via {\tt"}file{\tt"}} の形式は、バッチ処理 (非対話型での実行が可能)
で最も良く使われ、そのファイルの中で初期値を与えることができます。

{\bf via var1, var2, ...} の形式は対話型の実行で良く使われ、コマンドヒスト
リの機構が使ってパラメータリストの編集を行い、当てはめを実行したり、あ
るいは新しい初期値を与えて次の実行を行なったりします。これは難しい問題
に対しては特に有用で、全てのパラメータに対して 1 度だけ当てはめを直接
実行しても、良い初期値でなければうまくいかないことが起こり得るからです。
それを見つけるには、いくつかのパラメータのみに対して何回か反復を行ない、
最終的には全てのパラメータに対する 1 度の当てはめがうまくいくところに
十分近くなるまでそれを繰り返すことです。

当てはめを行なう関数のパラメータ間に共通の依存関係がないことは確認して
おいてください。例えば、a*exp(x+b) を当てはめに使ってはいけません。そ
れは a*exp(x+b)=a*exp(b)*exp(x) だからです。よってこの場合は a*exp(x)
または exp(x+b) を使ってください。

技術的なお話: 絶対値が最も大きいパラメータと最も小さいパラメータの比が
大きい程当てはめの収束は遅くなります。その比が、マシンの浮動小数の精度
の逆数に近いか、またはそれ以上ならば、ほぼずっと収束しないか収束する前
に実行が中断するでしょう。よってそのような場合は、その関数の定義で例え
ば 'parameter' を '1e9*parameter' にするとか、最初の値を 1e9 で割ると
かしてこれを避けるように改良するか、または {\bf set fit prescale} でパラメ
ータの初期値に従ってそのスケール変換を内部でやらせる機能を用いるか、の
いずれかが必要でしょう。

もし、関数を、当てはめるパラメータを係数とする、単純な関数の線形結合で
書けるなら、それはとてもいいので是非そうしてください。何故なら、問題が
もはや非線形ではないので、反復は少ない回数で収束するでしょう。もしかし
たらたった一回ですむかもしれません。

実際の実験の講義ではデータ解析に対するいくつかの指示が与えられ、それで
データへの最初の関数の当てはめが行なわれます。もしかすると、基礎理論の
複数の側面にひとつずつ対応する複数回のプロセスが必要かも知れませんが、
そしてそれらの関数の当てはめのパラメータから本当に欲しかった情報を取り
出すでしょう。しかし、{\bf fit} を使えば、求めるパラメータの視点から直接モ
デル関数を書くことにより、それはしばしば 1 回で済むのです。時々はより
難しい当てはめ問題の計算コストがかかりますが、データ変換もかなりの割合
で避けることが出来ます。もしこれが、当てはめ関数の単純化に関して、前の
段落と矛盾してると思うなら、それは正解です。

{\tt"}singular matrix{\tt"} のメッセージは、この Marquardt-Levenberg アルゴリズ
ムのルーチンが、次の反復に対するパラメータの値の計算が出来ないことを意
味します。この場合、別な初期値から始めるか、関数を別な形で書き直すか、
より簡単な関数にしてみてください。

最後に、他の当てはめパッケージ (fudgit) のマニュアルから、これらの文書
を要約するようないい引用を上げます: {\tt"}Nonlinear fitting is an art! (非
線形当てはめ法は芸術だ !){\tt"}
\newpage
 \section*{関数ブロック (function blocks)}
\addcontentsline{toc}{section}{関数ブロック (function blocks)}
\label{commands function}%
\label{function blocks}%
\label{functionblocks}%
\index{functionblocks}%
コマンド {\bf function} は、gnuplot コードからなる名前付きブロックのヒアド
キュメント形式による定義を意味する符号で、それは関数として呼び出すこと
が可能です。
データブロックと同様、関数 (function) ブロックの名前は '\$' で始まる必
要があります。その定義には、最大 9 つの名前付きの引数を指定できます。
それらの名前は、その関数ブロック内で局所変数として扱われます。以下参照:
{\bf local (p.~\pageref{local})\index{local}}, {\bf scope (p.~\pageref{scope})\index{scope}}。

一度関数ブロックを定義すると、それを通常の関数を呼び出すのと同じように
どこでもその名前で呼び出すことができます。返り値が適切でない場合、関数
ブロックを、数式の一部としてでなく、コマンド {\tt"}evaluate{\tt"} で呼び出すこと
ができます。

例:
\preverbatim
\begin{verbatim}
    function $sinc(arg) << EOF
        if (arg == 0) { return 1.0 }
        return sin(arg) / arg
    EOF
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
    gnuplot> plot $sinc(x) with lines title "sinc(x) as a function block"
\end{verbatim}
\postverbatim

名前付き引数の一覧は、関数ブロックの宣言時に指定する必要はありません。
コマンドラインで指定した関数の引数の個数とその値は、関数ブロックの内部
から、整数変数 ARGC とそれに対応する配列 ARGV[ARGC] でアクセスできます。
以下参照: {\bf ARGV (p.~\pageref{ARGV})\index{ARGV}}。これにより、可変な個数の引数を操作できる関数ブロック
を定義することができます。{\bf call} 文によるファイルの読み込みとは違い、
引数は文字列変数化 (例えば ARG1) はされません。

例:
\preverbatim
\begin{verbatim}
    function $max << EOF
        local max = real("-Inf")
        if (ARGC == 0) { return NaN }
        do for [i=1:ARGC] {
            if (max < ARGV[i]) {
                max = ARGV[i]
            }
        }
        return max
    EOF
    gnuplot> foo = $max( f(A), 2.0, C, Array[3] )
    gnuplot> baz = $max( foo, 100. )
\end{verbatim}
\postverbatim

関数ブロックをサポートする一番の目的は、複雑な関数を gnuplot 内部で直
接定義できるようにすることです。もちろん、同じ関数を C や Fortran でコ
ードした場合よりも実行速度は遅くなりますが、これは色々な目的に答えるこ
とを可能にします。実行速度が重要な場合は、代わりにその関数を別にプラグ
インとして実装すればいいでしょう (以下参照: {\bf plugins (p.~\pageref{plugins})\index{plugins}})。

関数ブロックを使う 2 つ目の目的は、gnuplot コマンドが、これを使う以外
には存在できないような状況でその実行を可能にすることです。例えばあなた
が 2 つの CSV ファイルからのデータを描画したいが、一つのファイルはフィ
ールドがカンマ区切りで、もう一方はセミコロン区切りであるとします。通常
この属性に対しては、事前にコマンド {\bf set datafile} をセットしますが、そ
れは plot コマンドが使用するすべてのファイルに適用されてしまいます。し
かし我々は、各ファイルが plot コマンドで参照される直前にそれを設定する
ように呼びだすような関数ブロックを定義できます。

\preverbatim
\begin{verbatim}
    function $set_csv(char) << EOF
        set datafile separator char
    EOF
    plot tmp=$set_csv(",") FILE1, tmp=$set_csv(";") FILE2
\end{verbatim}
\postverbatim

制限:
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 関数ブロック内で、データブロックや関数ブロックを定義することはできま
 せん。
\item
 疑似ファイル '-' は、関数ブロック内でのデータの読み込みには使用でき
 ません。
\item
 以下のコマンドは関数ブロック内で実行できません。
   {\bf reset}, {\bf shell}, {\bf !$<$shell command$>$}。
\item
 コマンド {\bf plot}, {\bf replot}, {\bf splot}, {\bf refresh}, {\bf stats}, {\bf vfill},
 {\bf fit} は、そのいずれもが実行中でない場合のみ、関数ブロック内でも使用
 できます。例えば、コマンド {\bf plot} が呼び出す関数ブロック内で {\bf stats}
 を使うことはできませんし、コマンド {\bf fit} の中から {\bf plot} を呼び出す
 ことはできない等々。
\end{itemize}

関数ブロックを使う自明でない例として、複素対数ガンマ関数 lngamma に対
する 15 項 Lanczos 近似の実装とグラフがデモコレクション内にあります。
\href{http://www.gnuplot.info/demo_6.0/function_block.html}{\tt      function\_block.dem
}

この関数ブロックによる実装は、同じアルゴリズムで C で直接コードされて
いる組み込み関数の lnGamma と比べて、だいたい 25 倍位遅いですが、それ
でも対話型での 3 次元グラフの回転には十分な位の速さです。
デモにある関数定義は以下の通り。
 \newline
 \begin{center}
 \begin{minipage}{5in}
 {
 15 項 Lanczos 近似を用いた $log\Gamma(z)$ の関数ブロックによる実装
 \hrule
 ~\newline
 \small
 \begin{verbatim}
 array coef[15] = [ ... ]
  function $Lanczos(z) << EOD
     local Sum = coef[1] + sum [k=2:15] coef[k] / (z + k - 1)
     local temp = z + 671./128.
     temp = (z + 0.5) * log(temp) - temp
     temp = temp + log( sqrt(2*pi) * Sum/z )
     return temp
 EOD
  function $Reflect(z) << EOD
     local w = $Lanczos(1.0 - z)
     local temp = log( sin(pi * z) )
     return log(pi) - (w + temp)
 EOD
  my_lngamma(z) = (z == 0) ? NaN : (real(z) < 0.5) ? $Reflect(z) : $Lanczos(z)
 \end{verbatim}
 \hrule
 }
 \end{minipage}
 \end{center}
 
関数ブロックの使用は試験段階です。
詳細は、リリース版に含まれる前に変更される可能性があります。
\newpage
 \section*{Help}
\addcontentsline{toc}{section}{Help}
\label{commands help}%
\label{help}%
\index{help}%
{\bf help}コマンドは、組み込みヘルプを表示します。ある項についての説明を指
定したいときには、次の書式を使って下さい:

\preverbatim
\begin{verbatim}
     help {<項目名>}
\end{verbatim}
\postverbatim

もし $<$項目名$>$ が指定されなかった場合は、{\bf gnuplot} についての簡単な説明
が表示されます。指定した項目についての説明が表示された後、それに対する
細目のメニューが表示され、その細目名を入力することで細目に対するヘルプ
を続けることができます。そして、その細目の説明が表示された後に、さらな
る細目名の入力を要求されるか、または 1 つ前の項目のレベルへ戻ります。
これを繰り返すとやがて、{\bf gnuplot} のコマンドラインへと戻ります。

また、疑問符 (?) を項目として指定すると、現在のレベルの項目のリストが
表示されます。
\section*{History}
\addcontentsline{toc}{section}{History}
\label{commands history}%
\label{history}%
\index{history}%
コマンド {\bf history} は、コマンド履歴の一覧を表示したり、保存したり、一
覧の中のコマンドを再実行したりします。このコマンドの挙動、および履歴フ
ァイルの保存場所を変えるには、以下参照: {\bf set history (p.~\pageref{set history})\index{history}}。

{\bf history} コマンドで始まる入力行は、コマンド履歴には保存しません。

例:

\preverbatim
\begin{verbatim}
     history               # 履歴全体を表示
     history 5             # 履歴内の直前の 5 つを表示
     history quiet 5       # エントリ番号なしで直前の 5 つを表示
     history "hist.gp"     # 履歴全体をファイル hist.gp に書き出す
     history "hist.gp" append # 履歴全体をファイル hist.gp に追加する
     history 10 "hist.gp"  # 直前の 10 個をファイル hist.gp に出力
     history 10 "|head -5 >>diary.gp" # パイプで履歴を 5 つ書き出す
     history ?load         # 履歴内の "load" で始まるものすべてを表示
     history ?"set c"      # 上と同様 (複数の語は引用符で囲む)
     hist !"set xr"        # 上と同様 (複数の語は引用符で囲む)
     hist !55              # 55 番目の履歴項目のコマンドを再実行
\end{verbatim}
\postverbatim
\section*{If}
\addcontentsline{toc}{section}{If}
\label{commands if}%
\label{if}%
\index{if}%
書式:
\preverbatim
\begin{verbatim}
     if (<condition>) { <commands>;
            <commands>
            <commands>
     } else if (<condition>) {
            <commands>
     } else {
            <commands>
     }
\end{verbatim}
\postverbatim

このバージョンの gnuplot は、if/else のブロック形式をサポートしていま
す。キーワード {\bf if}, {\bf else} の後ろに開始カッコ {\tt"}\{{\tt"} が続く場合、{\tt"}\}{\tt"} で
終了するブロックまでのすべての文 (複数の入力行も可) に条件的な実行が適
用されます。if コマンドは入れ子にすることもできます。

バージョン 5 より前の gnuplot では、if/else コマンドの通用範囲は 1 行
内に留まっていましたが、現在は複数行を中カッコ \{ \} で囲んで書くことが
できます。古い形式も一応残されていますが、それは中カッコのブロック内で
使うことはできません。

以前の書式:
\preverbatim
\begin{verbatim}
     if (<条件>) <コマンド行> [; else if (<条件>) ...; else ...]
\end{verbatim}
\postverbatim
キーワード {\bf if} が {\tt"}\{{\tt"} をともなわない場合は、$<$条件$>$ が真 (ゼロでない)
ならば $<$コマンド行$>$ のコマンド (複数も可) が実行され、偽 (ゼロ) ならば
スキップされます。いずれの場合も入力行の最後になるか、{\bf else} が現れる
ところまでそれが行われます。{\bf ;} を使うと同じ行に複数のコマンド置くこと
が可能ですが、条件付きのコマンド ({\bf if} の構文自体) はそこでは終らない
ことに注意してください。

\section*{For}
\addcontentsline{toc}{section}{For}
\label{for}%
\index{for}%
{\bf plot}, {\bf splot}, {\bf set}, {\bf unset} コマンドでは、繰り返しの節を使うことも
できます。これは、基本的なコマンドを複数回実行する効果を持ち、そのおの
おのの実行では繰り返し制御変数によって数式は再評価されます。{\bf do} コマ
ンドでは、どんなコマンド列でも繰り返し実行させることができます。繰り返
し節は現在は 3 種類の形式をサポートしています:

\preverbatim
\begin{verbatim}
     for [intvar = start:end{:increment}]
     for [stringvar in "A B C D"]
     for [element in Array]
\end{verbatim}
\postverbatim

例:

\preverbatim
\begin{verbatim}
     plot for [filename in "A.dat B.dat C.dat"] filename using 1:2 with lines
     plot for [basename in "A B C"] basename.".dat" using 1:2 with lines
     set for [i = 1:10] style line i lc rgb "blue"
     unset for [tag = 100:200] label tag
     Array animals = ["dog", "cat", "mouse", "llama"]
     do for [creature in animals] {
            INFILE = creature.".dat"
            OUTFILE = creature.".pdf"
            plot INFILE with boxes title creature
     }
\end{verbatim}
\postverbatim

繰り返しの入れ子もサポートしています:

\preverbatim
\begin{verbatim}
     set for [i=1:9] for [j=1:9] label i*10+j sprintf("%d",i*10+j) at i,j
\end{verbatim}
\postverbatim

さらなる説明については、以下参照: {\bf iteration (p.~\pageref{iteration})\index{iteration}}, {\bf do (p.~\pageref{do})\index{do}}。
\section*{Import}
\addcontentsline{toc}{section}{Import}
\label{commands import}%
\label{import}%
\index{import}%
\index{plugins}%
コマンド {\bf import} は、ユーザ定期関数名を外部共有オブジェクトから取り込
まれる関数に結びつけます。これは、gnuplot で利用可能な関数の設定を拡張
するプラグイン機構を構成します。

書式:
\preverbatim
\begin{verbatim}
     import func(x[,y,z,...]) from "sharedobj[:symbol]"
\end{verbatim}
\postverbatim

例:
\preverbatim
\begin{verbatim}
     # 関数 myfun を "mylib.so" か "mylib.dll" から取り込んで作成する
     # gnuplot では描画、または数値計算で利用可能
     import myfun(x) from "mylib"
     import myfun(x) from "mylib:myfun"    # 上と同様
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # "theirlib.so" か "theirlib.dll" で定義済の関数 theirfun を作成
     # 異なる名前で利用可能
     import myfun(x,y,z) from "theirlib:theirfun"
\end{verbatim}
\postverbatim

プログラムは共有オブジェクトとして与えられた名前に、オペレーティングシ
ステムに従って {\tt"}.so{\tt"} か {\tt"}.dll{\tt"} を追加し、まずそれをフルパス名として検
索し、次にカレントディレクトリからの相対パス名として検索します。オペレ
ーティングシステム自体も LD\_LIBRARY\_PATH か DYLD\_LIBRARY\_PATH の任意の
ディレクトリを検索します。以下参照: {\bf plugins (p.~\pageref{plugins})\index{plugins}}。

\section*{Load}
\addcontentsline{toc}{section}{Load}
\label{commands load}%
\label{load}%
\index{load}%
{\bf load} コマンドは、指定された入力ファイルの各行を、それが対話的に入力
されたかのように実行します。{\bf save} コマンドでつくられたファイルは、
{\bf load} することができます。有効な gnuplot コマンドの書かれたテキストフ
ァイルは、{\bf load}コマンドによって、実行することができます。{\bf load} 中の
ファイルの中にさらに {\bf load} または {\bf call} コマンドがあっても構いません。
{\bf load} するファイルに引数を与えるには、以下参照: {\bf call (p.~\pageref{call})\index{call}}。

書式:
\preverbatim
\begin{verbatim}
     load "<入力ファイル名>"
     load $datablock
\end{verbatim}
\postverbatim

入力ファイル名は引用符で囲まなければなりません。

{\bf load} コマンドは、標準入力からのコマンドの入力のために、特別なファイ
ル名 {\tt"}-{\tt"} を用意しています。これは、{\bf gnuplot} のコマンドファイルが、い
くつかのコマンドを標準入力から受け付けることを意味します。詳細について
は、以下参照: {\bf batch/interactive (p.~\pageref{batch/interactive})\index{batch/interactive}}。

popen 関数をサポートするようなシステムでは、'$<$' で始まるファイル名にす
ることで、入力ファイルをパイプから読み込むことができます。

例:
\preverbatim
\begin{verbatim}
     load 'work.gnu'
     load "func.dat"
     load "< loadfile_generator.sh"
\end{verbatim}
\postverbatim

{\bf gnuplot} への引数として与えられたファイル名は、暗黙のうちに {\bf load} コ
マンドによって実行されます。これらは、指定された順にロードされ、その後
{\bf gnuplot} は終了します。

試験段階: 内部で保存したテキストの行からコマンドを実行することも可能で
す。以下参照: {\bf function blocks (p.~\pageref{function blocks})\index{blocks}}。関数ブロックは、コマンドラインで、あ
るいは外部ファイルで定義できます。一度関数ブロックを定義されば、そのコ
マンドは、あらためてファイルから読み込むのでなく内部のコピーに対して
{\bf evaluate} を使うことで繰り返し実行できます。

\section*{Local}
\addcontentsline{toc}{section}{Local}
\label{local}%
\index{local}%
\label{commands local}%
書式:
\preverbatim
\begin{verbatim}
    local foo = <expression>
    local array foo[size]
\end{verbatim}
\postverbatim

キーワード {\bf local} は、変数の宣言を導入し、その変数の有効範囲 (scope)
を、その宣言が含まれるコードブロック内の実行のみに制限します。変数宣言
は必須ではありませんが、それがなければすべての変数は大域 (global) 変数
となります。局所 (local) 変数の名前が大域変数と重なった場合は、局所変
数の有効範囲から抜けるまでは、大域変数は隠します。以下参照: {\bf scope (p.~\pageref{scope})\index{scope}}。

local の宣言は、{\bf call} や {\bf load} 文によって大域変数の値が意識せずに上
書きされてしまうことを避けるために使います。これは特に関数ブロック内で
有用です。コマンド {\bf local} は、{\bf if}, {\bf else}, {\bf do for}, {\bf while} に続く
中括弧のコードブロック内でも有効です。

例: データ集合の一群を描画するコマンドからなる以下のようなスクリプト
{\tt"}plot\_all\_data.gp{\tt"} を書くとします。この便利なスクリプトは、{\tt"}file{\tt"} や
{\tt"}files{\tt"} や {\tt"}dataset{\tt"} や {\tt"}outfile{\tt"} の名前の任意の変数が破壊される心配を
せずにコマンドライン、あるいは他のスクリプトから呼び出せます。
変数 {\tt"}file{\tt"} は本質的に局所的で、それはそれが繰り返し変数だからです
(以下参照: {\bf scope (p.~\pageref{scope})\index{scope}}) が、他の 3 つは、それらを保護するにはキーワード
{\bf local} が必要です。

plot\_all\_data.gp:
\preverbatim
\begin{verbatim}
    local files = system("ls -1 *.dat")
    do for [file in files] {
       local dataset = file[1:strstrt(file,".dat")-1]
       local outfile = dataset . ".png"
       set output outfile
       plot file with lines title dataset
    }
    unset output
\end{verbatim}
\postverbatim

\section*{Lower}
\addcontentsline{toc}{section}{Lower}
以下参照: {\bf raise (p.~\pageref{raise})\index{raise}}。
\section*{Pause}
\addcontentsline{toc}{section}{Pause}
\label{commands pause}%
\label{pause}%
\index{pause}%
\label{pause mouse}%
{\bf pause} コマンドは、コマンドに続く任意の文字列を表示した後、指定され
た時間または、改行キーが押されるまで待ちます。{\bf pause} コマンドは、
{\bf load} 用のファイルと共に使用すると、便利になるでしょう。

書式:
\preverbatim
\begin{verbatim}
     pause <time> {"<string>"}
     pause mouse {<endcondition>}{, <endcondition>} {"<string>"}
     pause mouse close
\end{verbatim}
\postverbatim

$<$time$>$ は、任意の定数または実数値の式です。{\bf pause -1} は改行キーが押さ
されるまで待ち、0 を指定すると一切待たず、正の数を指定するとその秒数だ
け待ちます。

使用している出力形式が {\bf mousing} (マウス機能) をサポートしている場合、
{\bf pause mouse} は、マウスクリックがあるか ctrl-C が押されるまで待つよう
になります。そうでない出力形式、またはマウス機能が有効になってない場合
{\bf pause mouse} は {\bf pause -1} と同じです。

一つ、あるいは複数の終了条件 (endcondition) が {\bf pause mouse} の後に与
えられた場合、そのうちのどの一つでも pause は終了します。指定できる終
了条件は、{\bf keypress}, {\bf button1}, {\bf button2}, {\bf button3}, {\bf close}, {\bf any}
のいずれかです。pause がキー入力によって終了した場合、押されたキーの
ASCII コードは MOUSE\_KEY に保存され、文字それ自身は、1 文字の文字列値
として MOUSE\_CHAR に返されます。{\bf keypress} が終了条件の一つであれば、
ホットキー (キー割り当てコマンド) は無効になります。{\bf buttons3} が終了
条件の一つであれば、拡大機能は無効になります。

どの場合でもマウスの座標は変数 MOUSE\_X, MOUSE\_Y, MOUSE\_X2, MOUSE\_Y2 に
保存されます。以下参照: {\bf mouse variables (p.~\pageref{mouse variables})\index{variables}}。

注意: {\bf pause} コマンドは OS へのコマンドであり描画の一部ではないので、
異なる出力装置では異なる動作をする可能性があります。(これは、テキスト
とグラフィックスが、どのように混在するかによります。)

例:
\preverbatim
\begin{verbatim}
     pause -1    # 改行キーが押されるまで待つ
     pause 3     # 3 秒待つ
     pause -1  "続けるには return を打ってください"
     pause 10  "これは美しくないですか ? 3 次の spline です"
     pause mouse "選択したデータ点上で任意のボタンをクリックしてください"
     pause mouse keypress "有効なウィンドウ内で A-F の文字を入力してください"
     pause mouse button1,keypress
     pause mouse any "任意のキー、ボタンで終了します"
\end{verbatim}
\postverbatim

亜種である {\tt"}pause mouse key{\tt"} は、有効な描画ウィンドウ内での任意のキー
入力によって再開されます。特別なキー入力まで待つようにしたい場合は、以
下のようなループを使うことができます:

\preverbatim
\begin{verbatim}
     print "描画ウィンドウ内で Tab キーを打つと復帰します。"
     plot <something>
     pause mouse key
     while (MOUSE_KEY != 9) {
         pause mouse key
     }
\end{verbatim}
\postverbatim
\subsection*{Pause mouse close}
\addcontentsline{toc}{subsection}{Pause mouse close}
\label{commands pause mouse close}%
\label{pause mouse close}%
\label{pause close}%
コマンド {\bf pause mouse close} は、外部イベントを待つために中断する特徴
的な例の一つです。この場合、gnuplot は描画ウィンドウから {\tt"}close{\tt"} イベ
ントが来るのを待ちます。デスクトップ環境、構成毎に正確にそのイベントを
生成する方法は異なりますが、通常は、ウィンドウの境界にあるなんらかの部
品をマウスクリックするか、$<$alt$>$$<$F4$>$ や $<$ctrl$>$q のようなホットキー列を
タイプすることで描画ウィンドウを close できます。それに適切な枠の部品
や、ホットキーを利用可能であるかわからない場合、gnuplot 自身の仕組みで
ホットキー列を定義することもできます。以下参照: {\bf bind (p.~\pageref{bind})\index{bind}}。

以下のコマンド列は、gnuplot をコマンドラインからでなくスクリプトから実
行している場合に有用です。

\preverbatim
\begin{verbatim}
    plot <...whatever...>
    bind all "alt-End" "exit gnuplot"
    pause mouse close
\end{verbatim}
\postverbatim

\subsection*{Pause 中の疑似マウス操作 (pseudo-mousing during pause)}
\addcontentsline{toc}{subsection}{Pause 中の疑似マウス操作 (pseudo-mousing during pause)}
\label{commands pause pseudo-mousing}%
\label{pseudo-mousing}%
\index{pseudo mousing}%
{\bf dumb}, {\bf sixel}, {\bf kitty}, {\bf domterm} 出力形式のように、文字列出力とグラ
フィック表示を同じウィンドウで行う出力形式があります。これらの出力形式
では、今のところ実質的にマウス動作をサポートしていませんが、コマンド
{\bf pause mouse} の間は、マウス動作が可能な出力形式の場合と同じ仕組みでキ
ー操作を解釈します。すなわち、{\bf l} は対数軸のトグル、{\bf a} は現在のグラフ
を自動縮尺に、左/右/上/下の矢印キーは、3 次元グラフでは視方向を変化さ
せ、2 次元グラフでは視点移動/拡大の増分ステップを実行します。{\bf h} はキ
ー割り当ての一覧を表示し、改行キーは {\bf pause} を終了させ、通常のコマン
ドライン操作に復帰します。

\section*{Plot}
\addcontentsline{toc}{section}{Plot}
\label{commands plot}%
\label{plot}%
\index{plot}%
{\bf plot} と {\bf splot} は {\bf gnuplot} で図を描くための基本的なコマンドです。
それらは関数やデータの、多くの種類のグラフ表現を提供します。{\bf plot} は
2 次元の関数やデータを描き、{\bf splot} は 3 次元の曲面やデータの 2 次元投
影を描きます。

書式:
\preverbatim
\begin{verbatim}
     plot {<axis-ranges>} <描画要素> {, <描画要素>, <描画要素>}
\end{verbatim}
\postverbatim

各描画要素は、定義 (definition) か関数 (function) かデータ (data
source) のいずれか 1 つに、オプションの属性、修正子などがついたもので
す:
\preverbatim
\begin{verbatim}
     描画要素:
          {<iteration>}
          <definition> | {sampling-range} <function> | <data source>
                       | keyentry
          {axes <axes>} {<title-spec>}
          {with <style>}
\end{verbatim}
\postverbatim

各描画要素のグラフ表現形式は、例えば {\bf with lines} や {\bf with boxplot} な
どのようにキーワード {\bf with} で決定します。以下参照: {\bf plotting styles (p.~\pageref{plotting styles})\index{styles}}。

描画するデータは、1 つの関数から生成されるもの (媒介変数モード
(parametric) では 2 つの関数から)、または一つのデータファイルから読み
込まれるもの、または事前に定義された名前付きデータブロックから読み込ま
れるもの、または配列から抜き出したもの、のいずれかです。コンマで区切る
ことで、複数のデータファイル、データブロック、配列、関数などを 1 つの
plot コマンドで描画できます。

データ描画に特有の多くの追加キーワードがあります。以下参照:
{\bf plot datafie (p.~\pageref{plot datafie})\index{datafie}}。以下も参照: {\bf data (p.~\pageref{data})\index{data}}, {\bf inline data (p.~\pageref{inline data})\index{data}}, {\bf functions (p.~\pageref{functions})\index{functions}}。

関数、変数の定義の描画要素は、画像出力を生成しません。下の 3 つ目の例
を参照してください。

例:
\preverbatim
\begin{verbatim}
     plot sin(x)
     plot sin(x), cos(x)
     plot f(x) = sin(x*a), a = .2, f(x), a = .4, f(x)
     plot "datafile.1" with lines, "datafile.2" with points
     plot [t=1:10] [-pi:pi*2] tan(t), \
          "data.1" using (tan($2)):($3/$4) smooth csplines \
                   axes x1y2 notitle with lines 5
     plot for [datafile in "spinach.dat broccoli.dat"] datafile
\end{verbatim}
\postverbatim

以下参照: {\bf show plot (p.~\pageref{show plot})\index{plot}}。
\subsection*{軸 (axes)}
\addcontentsline{toc}{subsection}{軸 (axes)}
\label{commands plot axes}%
\label{plot axes}%
\label{axes}%
\index{axes}%
軸 (axes) は、4 種類の組が利用できます; キーワード $<$axes$>$ は、特定の直
線をどの軸に尺度を合わせるか、ということを選択するのに使われます。
{\bf x1y1} は下の軸と左の軸を指定; {\bf x2y2} は上と右の軸の指定; {\bf x1y2} は下
と右の軸の指定; {\bf x2y1} は上と左の軸の指定です。{\bf plot} コマンドで指定さ
れた範囲は、この最初の軸の組 (下と左) にのみ適用されます。
\subsection*{Binary}
\addcontentsline{toc}{subsection}{Binary}
\label{binary}%
\index{binary}%
\label{data binary}%
\label{datafile binary}%
\label{plot datafile binary}%
バイナリデータファイル:

ファイル名の後ろに {\bf binary} のキーワードを与えなければいけません。ファ
イル形式に関する十分詳細な情報は、ユーザがコマンドラインから与えるか、
またはサポートしている {\bf filetype} のバイナリ形式のファイルそれ自身から
抜き出されるかする必要があります。バイナリファイルには、大きく 2 つの
形式、binary matrix 形式と binary general 形式があります。

{\bf binary matrix} 形式は、32 ビット IEEE 規格の浮動小数値 (float) が 2
次元配列の形で並び、それらの座標値を表す行と列が追加されています。plot
コマンドの {\bf using} 指定において、1 番目 (column(1)) は行列の行の座標を
参照し、2 番目 (column(2)) は列の座標を参照し、3 番目 (column(3)) は、
配列のそれらの座標の場所に保存されている値を参照します。

{\bf binary general} 形式は、任意個の列のデータを含み、それらの情報はコマ
ンドラインで指定する必要があります。例えば {\bf array}, {\bf record}, {\bf format},
{\bf using} などでサイズや形式、データの次元を指定できます。他にも、ファイ
ルヘッダ読み飛ばしたり、エンディアン (endian) を変更するための有用なコ
マンドがありますし、配置、データの変換を行なうコマンドの組があります。
それは、一様に標本化されたデータの場合、その座標がファイルには含まれな
いことが良くあるからです。matrix バイナリファイルやテキストデータから
の入力と違うところですが、general バイナリは 1,2,3 といった {\bf using} リ
ストで生成される列番号を使わず、代わりに 1 列目はファイルの 1 列目、あ
るいは {\bf format} リストで指定されたもの、になります。

さまざまな binary オプションに対する大域的なデフォルトの設定も可能で、
それは {\bf (s)plot $<$filename$>$ binary ...} コマンドに与えるオプションと全
く同じ書式で指定できます。その書式は {\bf set datafile binary ...} です。
一般的な規則として、デフォルトのパラメータはファイルから抜き出されたパ
ラメータで上書きされ、それはコマンドラインで指定された共通なパラメータ
で上書きされます。

例えば {\bf array}, {\bf record}, {\bf format}, {\bf filetype} の {\bf binary general} 形
式を特定するようなキーワードが何もついていなければ、デフォルトのバイナ
リ形式は {\bf binary matrix} です。

general バイナリデータは、特別なファイル名 '-' を使ってコマンドライン
から入力することもできます。しかし、これはキーボードからの入力を意図し
たものではなく、パイプを使ってプログラムにバイナリ形式を変換させるため
のものです。バイナリデータには最後を表す記号がありませんので、gnuplot
はパイプからデータを読み込む場合、{\bf array} 指定子で指定した数の点数にな
るまでデータを読み込み続けます。詳細に関しては、以下参照:
{\bf binary matrix (p.~\pageref{binary matrix})\index{matrix}}, {\bf binary general (p.~\pageref{binary general})\index{general}}。

{\bf index} キーワードは、ファイルフォーマットが 1 つのファイルにつき 1 つ
の曲面しか許さないため、サポートされません。{\bf every} や {\bf using} 指定は
サポートされます。{\bf using} は、データがあたかも上の 3 つ組の形で読まれ
たかのように働きます。
\href{http://www.gnuplot.info/demo/binary.html}{\tt バイナリファイルの splot のデモ。
}

\subsubsection*{General}
\addcontentsline{toc}{subsubsection}{General}
\label{commands plot binary general}%
\label{commands splot binary general}%
\label{plot binary general}%
\label{splot binary general}%
\label{datafile binary general}%
\label{data binary general}%
\label{binary general}%
キーワード {\bf binary} を単独で指定した場合は、非一様な格子を形成する座標
情報と、各格子点での値の両方を持つバイナリデータであることを意味し (以
下参照: {\bf binary matrix (p.~\pageref{binary matrix})\index{matrix}})、他の形式のバイナリデータの場合は、そのデータ
の形式を意味する追加キーワードを指定する必要があります。残念ながら、こ
れらの追加キーワードの書式は単純ではありませんが、それでも general バ
イナリモードは、特に多量のデータを gnuplot に送るようなアプリケーショ
ンに取っては有用です。

書式:
\preverbatim
\begin{verbatim}
     plot '<file_name>' {binary <binary list>} ...
     splot '<file_name>' {binary <binary list>} ...
\end{verbatim}
\postverbatim

general バイナリ形式は、ファイル構造に関する情報に関連するキーワード、
すなわち {\bf array}, {\bf record}, {\bf format}, {\bf filetype} などを $<$binary list$>$
内に与えることで有効になります。それ以外の場合は、非一様な matrix バイ
ナリ形式と見なします。(詳細に関しては、以下参照: {\bf binary matrix (p.~\pageref{binary matrix})\index{matrix}})

gnuplot は、例えば PNG 画像のように完全に自己記述される標準的なバイナ
リファイル形式の読み込み方法をいくつか知っています。その一覧は、対話画
面で {\bf show datafile binary} と入力することで参照できます。それら以外の
ものについては、概念上はバイナリデータはテキストデータと同様に考えるこ
とができます。各点には、{\bf using} 指定で選択される情報の列があります。
{\bf format} 文字列を指定しなかった場合、gnuplot はバイナリ数値の数を
{\bf $<$using list$>$} で与えられる最大の列番号に等しく取ります。例えば、
{\bf using 1:3} とすると 3 列ずつデータが読み取られ、2 番目のものは無視し
ます。各描画スタイルにはデフォルトの using 指定があります。例えば
{\bf with image} はデフォルトで {\bf using 1} を、{\bf with rgbimage} はデフォルト
で {\bf using 1:2:3} を使います。
\subsubsection*{Array}
\addcontentsline{toc}{subsubsection}{Array}
\label{binary array}%
\label{binary general array}%
バイナリファイルの標本の配列の大きさを設定します。座標は gnuplot が生
成してくれます。各方向の次元を表す数を指定しなければいけません。例えば
{\bf array=(10,20)} は、2 次元で最初の次元方向 (x) には 10 点、2 番目の次
元方向 (y) には 20 点の標本化データがあることを意味します。ファイルの
終了までデータが続くことを示すのに負の値を使えます。データ次元が 1 の
場合は、カッコは省略できます。複数のデータのサイズ指定を分離するのに、
コロンを使うことができます。例えば {\bf array=25:35} は 2 つの 1 次元デー
タがファイルの中にあることを意味します。
\subsubsection*{Record}
\addcontentsline{toc}{subsubsection}{Record}
\label{binary record}%
\label{binary general record}%

キーワード {\bf binary record} は、バイナリファイル内のデータをどのように
配列化すればよいかを示すための配列の次元を与えます。配列の各次元を指定
しなければいけません。例えば、{\bf record=(10,20)} は、データの内部構造が
2 次元で、最初 (x) の次元に 10 点並び、2 つ目 (y) の次元に 20 点並ぶこ
とを意味します。負の数の指定は、データをファイルの最後まで読まなければ
いけないことを指示します。

1 次元のみの場合、かっこは省略できます。複数のレコードの次元を分離する
ために、コロンを使用できます。例えば、{\bf record=25:35} は、2 つの 1 次元
レコードが含まれることを示します。

このキーワードは {\bf array} と同じ書式で、同じ機能を提供します。しかし
{\bf array} は gnuplot に座標情報を自動生成させますが、{\bf record} はそうしま
せん。バイナリデータファイルレコードのある列から座標を読み込むべき場合
は、{\bf record} を使用してください。
\subsubsection*{Skip}
\addcontentsline{toc}{subsubsection}{Skip}
\label{binary skip}%
このキーワードは、バイナリファイルのある区画のスキップを可能にします。
例えば、そのファイルがデータ領域の開始位置の前に 1024 バイトのヘッダを
持つような場合には、以下のようにしたいと思うでしょう:
\preverbatim
\begin{verbatim}
     plot '<file_name>' binary skip=1024 ...
\end{verbatim}
\postverbatim
ファイルに複数のレコードがある場合、そのそれぞれに対する先頭のずらし位
置を指定することができます。例えば、最初のレコードの前の 512 バイトを
スキップし、2 番目、3 番目のレコードの前の 256 バイトをスキップするに
は以下のようにします:
\preverbatim
\begin{verbatim}
     plot '<file_name> binary record=356:356:356 skip=512:256:256 ...
\end{verbatim}
\postverbatim
\subsubsection*{Format}
\addcontentsline{toc}{subsubsection}{Format}
\label{binary format}%
\label{binary general format}%
デフォルトのバイナリ形式は、単精度浮動小数 (float) が一つ、です。それ
をより柔軟に設定するために、この format で変数のサイズに関する詳細な情
報を指定できます。例えば {\bf format={\tt"}\%uchar\%int\%float{\tt"}} は、最初の using
列として符号なし文字型変数 (unsigned char) を、2 番目の列は符号つき整
数 (int) を、3 番目の列は単精度浮動小数 (float) を指定しています。もし
サイズ指定子の数が最大列数より小さい場合は、残りの列の変数サイズは暗黙
のうちに最後に与えた変数サイズに等しく取られます。

さらに {\bf using} 指定同様、{\bf *} 文字がついた読み捨てる列を書式に指定する
こともできますし、繰り返しフィールドへの回数指定によって暗黙の繰り返し
を指定することもできます。例えば、{\bf format={\tt"}\%*2int\%3float{\tt"}} は、3 つの
実数データを読む前に、2 つの整数データを読み捨てます。使用できる変数サ
イズの一覧は、{\bf show datafile binary datasizes} で見ることができます。
それらは、それぞれのコンパイルによってそのバイトサイズとともにマシンに
依存する変数名のグループと、マシンに依存しない変数名のグループに分かれ
ています。
\subsubsection*{Blank}
\addcontentsline{toc}{subsubsection}{Blank}
\label{binary blank}%
\label{binary general blank}%
テキスト入力ファイルから読み込むデータ点群を分離するのに、空行を期待す
る描画スタイルがあります。例えば、一つの入力データ列内の一つの多角形
(polygon) の頂点群は、次の多角形の頂点群とは空行で分離します。バイナリ
ファイルでは、実際の空行は存在しないので、このオプションにより一般のバ
イナリファイル内の特別なレコードを、空行であるかのように解釈できるよう
になります。現在サポートするオプションは {\bf blank=NaN} のみで、これは一
つのレコードの最初のフィールドが NaN の値であるときに、そのレコード全
体を空行であるかのように扱います。

例:
\preverbatim
\begin{verbatim}
    plot DATA binary format="%2float" blank=NAN using 1:2 with polygons
\end{verbatim}
\postverbatim

\subsubsection*{Endian}
\addcontentsline{toc}{subsubsection}{Endian}
\label{binary endian}%
ファイルのバイナリデータのエンディアンは、gnuplot が動作するプラットホ
ームのエンディアンとは異なる場合も良くあります。いくつかの指定で
gnuplot がバイトをどのように扱うかを制御できます。例えば
{\bf endian=little} は、バイナリファイルを、そのバイトの並びが小さい桁から
大きい桁へ並んでいると見なされます。オプションは以下のものが使えます。

\preverbatim
\begin{verbatim}
             little:  小さい桁から大きな桁へ並ぶ
                big:  大きな桁から小さな桁へ並ぶ
            default:  compiler と同じエンディアンと見なす
        swap (swab):  エンディアンを変更する (おかしいようならこれを
                      使ってみてください)
\end{verbatim}
\postverbatim

gnuplot は、コンパイル時にオプションが指定されていれば、{\tt"}middle{\tt"} (や
{\tt"}pdp{\tt"}) エンディアンもサポートできます。
\subsubsection*{Filetype}
\addcontentsline{toc}{subsubsection}{Filetype}
\label{binary filetype}%
\label{filetype}%
\index{filetype}%
gnuplot は、いくつか標準的なバイナリファイル形式については必要な情報を
そのファイルから抜き出すことができます。例えば {\tt"}format=edf{\tt"} は ESRF ヘ
ッダーファイル形式のファイルとして読み込みます。現在サポートしているフ
ァイル形式については、{\bf show datafile binary filetypes} で見てください。

特別なファイル形式として {\bf auto} があり、この場合 gnuplot はバイナリフ
ァイルの拡張子が、サポートされている形式の標準的な拡張子であるかをチェ
ックします。

コマンドラインキーワードはファイルから読み取る設定を上書きするのに使わ
れ、ファイルから読み取る設定はデフォルトの設定を上書きします。以下参照:
{\bf set datafile binary (p.~\pageref{set datafile binary})\index{binary}}。
\paragraph*{Avs}
\addcontentsline{toc}{paragraph}{Avs}
\label{binary filetype avs}%
\label{filetype avs}%
\label{avs}%
\index{avs}%
{\bf avs} は、自動的に認識される画像イメージに対するバイナリファイルの型の
一つです。AVS は非常単純なフォーマットで、アプリケーション間でやりとり
するのに最も適しています。これは、2 つの long (xwidth と ywidth) と、
その後続くピクセルの列から成り、その各ピクセルは alpha/red/green/blue
の 4 バイトから成ります。
\paragraph*{Edf}
\addcontentsline{toc}{paragraph}{Edf}
\label{binary filetype edf}%
\label{filetype edf}%
\label{edf}%
\index{edf}%
\label{filetype ehf}%
\label{ehf}%
\index{ehf}%
{\bf edf} は、自動的に認識される画像イメージに対するバイナリファイルの型の
一つです。EDF は ESRF データフォーマット (ESRF Data Format) を意味して
いて、それは edf と ehf の両方の形式をサポートしています (後者は ESRF
Header Format)。画像の使用に関する詳しい情報は以下で見つかるでしょう:

\preverbatim
\begin{verbatim}
 http://www.edfplus.info/specs
\end{verbatim}
\postverbatim
\paragraph*{Png}
\addcontentsline{toc}{paragraph}{Png}
\label{binary filetype png}%
\label{binary filetype gif}%
\label{binary filetype jpeg}%
\label{filetype png}%
\label{filetype gif}%
\label{filetype jpeg}%
gnuplot が png/gif/jpeg 出力用に libgd ライブラリを使うようにインスト
ールされている場合、それらの画像形式をバイナリファイルとして読み込むこ
ともできます。以下のような明示的なコマンド
\preverbatim
\begin{verbatim}
     plot 'file.png' binary filetype=png
\end{verbatim}
\postverbatim
を使うこともできますし、あらかじめ以下のように設定して、拡張子から自動
的に画像形式を自動的に認識させることもできます。
\preverbatim
\begin{verbatim}
     set datafile binary filetype=auto
\end{verbatim}
\postverbatim
\subsubsection*{Keywords}
\addcontentsline{toc}{subsubsection}{Keywords}
\label{binary keywords}%
以下のキーワード (keyword) は、バイナリファイルから座標を生成するとき
にのみ適用されます。つまり、binary array, matrix, image の個々の要素を
特定の x,y,z の位置への配置の制御のためのものです。
\paragraph*{Scan}
\addcontentsline{toc}{paragraph}{Scan}
\label{binary keywords scan}%
\label{scan}%
\index{scan}%
gnuplot がバイナリファイルをどのように走査するか、ということと実際の描
画で見られる軸の方向との間の関係については多くの混乱が起こり得ます。そ
の混乱を減らすには、gnuplot はバイナリファイルを {\tt"}常に{\tt"} 点/線/面、また
は速い/普通/遅い、と走査すると考えるといいでしょう。このキーワードは
gnuplot に、その走査の方向を描画内のどの座標方向 (x/y/z) に割り当てる
かを指定します。指定は 2 つ、または 3 つの文字の並びで表現し、最初の文
字が点に、次の文字が線に、3 つ目の文字が面に対応します。例えば、
{\bf scan=yx} は、最も速い走査 (点の選択) は y 方向に対応し、普通の速さの
走査 (線の選択) が x 方向に対応することを意味します。

描画モードが {\bf plot} の場合、指定には x と y の 2 つの文字を使うことが
でき、{\bf splot} に対しては x, y, z の 3 つの文字を使うことができます。

割り当てに関しては、点/線/面から直交座標方向へのみに制限する内部事情は
別にありません。この理由で、円柱座標への割り当てのための指定子も用意さ
れていて、それらは直交座標の x, y, z に類似した形で t (角度), r, z と
なっています。
\paragraph*{Transpose}
\addcontentsline{toc}{paragraph}{Transpose}
\label{binary keywords transpose}%
\label{transpose}%
\index{transpose}%
{\bf scan=yx}、または {\bf scan=yxz} と同じです。すなわち、これは入力時の走査
行のピクセルへの割り当てに影響を与えます。表示する際に画像を転置するに
は、以下のようにしてみてください:
\preverbatim
\begin{verbatim}
    plot 'imagefile' binary filetype=auto flipx rotate=90deg with rgbimage
\end{verbatim}
\postverbatim
\paragraph*{Dx, dy, dz}
\addcontentsline{toc}{paragraph}{Dx, dy, dz}
\label{binary keywords dx}%
\label{binary keywords dy}%
\label{dx}%
\index{dx}%
\label{dy}%
\index{dy}%
gnuplot が座標を生成する場合、その間隔はこれらのキーワードで指定された
ものが使用されます。例えば {\bf dx=10 dy=20} は x 方向に 10、y 方向に 20
の間隔で標本化されたことを意味します。{\bf dy} は {\bf dx} がなければ使えませ
ん。同様に {\bf dz} は {\bf dy} がなければ使えません。もしデータの次元が指定し
たキーワードの次元よりも大きい場合、残りの次元方向の間隔は、指定された
最も高い次元のものと同じ値が使用されます。例えば画像がファイルから読み
込まれ、{\bf dx=3.5} のみ指定された場合、gnuplot は x 方向の間隔も y 方向
の間隔も 3.5 を使用します。

以下のキーワードも座標の生成時にのみ適用されます。しかし、以下のものは
matrix バイナリファイルにも使われます。
\paragraph*{Flipx, flipy, flipz}
\addcontentsline{toc}{paragraph}{Flipx, flipy, flipz}
\label{binary keywords flipx}%
\label{flipx}%
\index{flipx}%
\label{flipy}%
\index{flipy}%
\label{flipz}%
\index{flipz}%
バイナリデータファイルの走査方向が gnuplot の走査方向と一致しないこと
がたまにあります。これらのキーワードは、それぞれ x, y, z 方向のデータ
の走査方向を逆向きにします。
\paragraph*{Origin}
\addcontentsline{toc}{paragraph}{Origin}
\label{binary keywords origin}%
\label{binary origin}%
gnuplot は転置 (transpose) や反転 (flip) において座標を生成する場合、
常に配列の左下の点が原点になるようにします。すなわち、データが、転置や
反転の行なわれた後の直交座標系の第 1 象限に来るようにします。

配列をグラフのその他の場所に配置したい場合、{\bf origin} キーワードで指定
した場所に gnuplot は配列の左下の点を合わせます。その指定は、{\bf plot} で
は 2 つの座標の組、{\bf splot} では 3 つの座標の組を指定してください。例え
ば {\bf origin=(100,100):(100,200)} は、一つのファイルに含まれる 2 つのデ
ータに対する指定で、2 次元の描画に対する指定です。2 つ目の例として
{\bf origin=(0,0,3.5)} をあげると、これは 3 次元描画用の指定です。
\paragraph*{Center}
\addcontentsline{toc}{paragraph}{Center}
\label{binary keywords center}%
\label{keywords center}%
\label{center}%
\index{center}%
{\bf origin} と似ていますが、このキーワードは、配列の中心がこのキーワード
で指定した点になるように配置します。例えば {\bf center=(0,0)} のようにしま
す。配列のサイズが {\bf Inf} のときは center は適用されません。
\paragraph*{Rotate}
\addcontentsline{toc}{paragraph}{Rotate}
\label{binary keywords rotate}%
\label{keywords rotate}%
\label{rotate}%
\index{rotate}%
転置 (transpose) と反転 (flip) コマンドは座標の生成と座標軸の方向にあ
る種の柔軟性を与えてくれます。しかし、角度に関する完全な制御は、2 次元
の回転角を記述した回転角ベクトルを与えることにより行なうことが可能にな
ります。

キーワード {\bf rotate} は, {\bf plot}, {\bf splot} の両方で、2 次元面に対して適用
されます。回転は座標平面の正の角度に関して行なわれます。

角度は、ラジアン単位ですが、pi や degrees の倍数としてのラジアンでも表
現できます。例えば、{\bf rotate=1.5708}, {\bf rotate=0.5pi}, {\bf rotate=90deg} は
すべて同じ意味です。

{\bf origin} が指定された場合、回転は平行移動の前に左下の点を中心にして行
なわれます。それ以外では回転は配列の中心 ({\bf center}) に関して行なわれま
す。
\paragraph*{Perpendicular}
\addcontentsline{toc}{paragraph}{Perpendicular}
\label{binary keywords perpendicular}%
\label{perpendicular}%
\index{perpendicular}%
{\bf splot} に関して回転ベクトルの設定が、ベクトルを表現する 3 つの数字の
組を指定することで実装されていて、このベクトルは 2 次元の xy 平面に対
して向き付けられた法線ベクトル (perpendicular) を表しています。もちろ
んそのデフォルトは (0,0,1) です。rotate と perpendicular の両方を指定
することにより、3 次元空間内で無数の方向へデータを向き付けられることに
なります。

まず最初に 2 次元の回転が行なわれ、その次に 3 次元の回転が行なわれます。
つまり、R' をある角による 2 x 2 の回転行列とし、P を (0,0,1) を
(xp,yp,zp) へ子午線方向に回転させる 3 x 3 の行列とし、R' を左上の部分
行列として持ち 3,3 成分が 1 でその他の成分が 0 であるような行列 (つま
り z 軸周りの回転行列) とすれば、この変換を表す行列による関係式は
v' = P R v となります。ここで、v はデータファイルから読み込まれた
3 x 1 の位置ベクトルです。ファイルのデータが 3 次元的なものでない場合
は、論理的なルールが適用されて 3 次元空間内のデータと見なされます (例
えば、通常は z 座標は 0 とされ、xy 平面内の 2 次元データと見なされます)。
\subsection*{データ (data)}
\addcontentsline{toc}{subsection}{データ (data)}
\label{commands plot datafile}%
\label{plot datafile}%
\label{data-file}%
\index{data file}%
\label{datafile}%
\index{datafile}%
\label{data}%
\index{data}%
\label{file}%
\index{file}%
ファイル内にあるデータは、{\bf plot} コマンドライン上で、そのデータファイ
ル名を単一引用符または二重引用符で囲んで指定することで表示できます。
データはファイルではない、入力ストリームから受け取ることもできます。
以下参照: {\bf special-filenames (p.~\pageref{special-filenames})\index{special-filenames}}, {\bf piped-data (p.~\pageref{piped-data})\index{piped-data}}, {\bf datablocks (p.~\pageref{datablocks})\index{datablocks}}。

書式:
\preverbatim
\begin{verbatim}
     plot '<file_name>' {binary <binary list>}
                        {{nonuniform|sparse} matrix}
                        {index <index list> | index "<name>"}
                        {every <every list>}
                        {skip <number-of-lines>}
                        {using <using list>}
                        {convexhull} {concavehull}
                        {smooth <option>}
                        {bins <options>}
                        {mask}
                        {volatile} {zsort} {noautoscale}
                        {if (<expression>)}
\end{verbatim}
\postverbatim

修正子の {\bf binary}, {\bf index}, {\bf every}, {\bf skip}, {\bf using}, {\bf smooth}, {\bf bins},
{\bf mask}, {\bf convexhull}, {\bf concavehull}, {\bf zsort}, {\bf if} をそれぞれに分けて
説明します。簡単に言うと以下の通り:
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 {\bf skip N} は入力ファイルの先頭 N 行を無視するよう gnuplot に指示
\item
 {\bf binary} はファイルがテキストでなくバイナリデータを持つと指示
\item
 {\bf bins} は個々の入力点を x 軸に沿う等幅の区間に仕分け、各区間毎の単
 一の累積値として描画
\item
 {\bf every} は一つのデータ集合からどの点を描画するかを選択
\item
 {\bf if ($<$expression$>$)} は入力データから指定条件を満たす行のみを選択
\item
 {\bf index} は複数のデータ集合からどのデータ集合を描画するかを選択
\item
 {\bf smooth} は描画の前にデータに単純なフィルタリング、補間、曲線補間を
 実行
\item
 {\bf convexhull} と {\bf concavehull} は単独、または with {\bf smooth} との組で
 指定し、入力データ点集合をその境界多角形の頂点を構成する新しい点集合
 に置き換えます。
\item
 {\bf mask} は、事前に定義されたマスクを通して、画像内のピクセルの選択さ
 れた部分集合、または pm3d 曲面の選択された領域のみを描画するようフィ
 ルタします。
\item
 {\bf using} はファイルのどの列をどの順で使うかを指定
\item
 {\bf volatile} はファイルの内容が後で再読み込みすることはできず、よって
 再使用のためには内部に保持しておかなければいけないことを指示
\item
 {\bf zsort} は入力データの各ブロックを z に関してソート
\end{itemize}

{\bf splot} もよく似た書式を使いますが、いくつかのフィルタ、平滑化オプショ
ンしかサポートしていません。

キーワード {\bf noautoscale} は、自動的に軸の範囲が決定される機能が有効で
ある場合に、この描画を構成するデータ点については、それを無視させる (自
動縮尺機能の計算対象から外す) ようにします。

テキストデータファイル:

データファイルの空でない各行は、一つのデータ点を記述しますが、{\bf \#} で始
まる行は例外で、これはコメントとして扱われ無視されます。

描画スタイルと指定したオプションに依存し、各行から 1 つ以上 8 個以下の
値を読み込み、単一のデータ点に関連付けます。以下参照: {\bf using (p.~\pageref{using})\index{using}}。

データファイルの単一行中の個々の値は、ホワイトスペース (一つまたは複数
の空白かタブ) か、またはコマンド {\bf set datafile} で指定した特別なフィー
ルド区切り文字で区切られている必要があります。フィールド全体が二重引用
符で囲まれている場合、またはフィールド区切り文字りがホワイトスペース以
外になっている場合は、そのフィールドがホワイトスペースを含むことが可能
です。二重引用符内のホワイトスペースは列数の勘定の際には無視されるので、
次のデータ行は 3 列と見なされます:
\preverbatim
\begin{verbatim}
     1.0 "second column" 3.0
\end{verbatim}
\postverbatim

データは、指数部に e, E の文字をつけた指数表記で書かれていても構いませ
ん。コマンド {\bf set datafile fortran} が有効な場合は、fortran の指数指定
子 d, D, q, Q も使えます。

データファイルの空行は重要です。
1 行のブランク行は、{\bf plot} に不連続を指示します; ブランク行によって区
切られた点は線で結ばれることはありません (line style で書かれている場
合には)。
2 行のブランク行は、別々のデータ集合間の区切りを示します。以下参照:
{\bf index (p.~\pageref{index})\index{index}}。

もし autoscale の状態であれば (以下参照: {\bf set autoscale (p.~\pageref{set autoscale})\index{autoscale}})、軸は全ての
データポイントを含むように自動的に引き伸ばされて、目盛りが書かれる状態
ならば全ての目盛りがマークされます。これは、2 つの結果を引き起こします:
i) {\bf splot} では、曲面の角は底面の角に一致していないことがあります。こ
の場合、縦の線は書かれることはありません。ii) 2 種類の軸での、同じ x
の範囲のデータの表示の際、もし x2 の軸に対する目盛りが書かれていない場
合は、x 座標があっていないことがあります。これは x 軸 (x1) は全ての目
盛りにまで自動的に引き延ばされるのに対し、x2 軸はそうではないからです。
次の例でその問題を見ることができます:

\preverbatim
\begin{verbatim}
     reset; plot '-', '-' axes x2y1
     1 1
     19 19
     e
     1 1
     19 19
     e
\end{verbatim}
\postverbatim

これを避けるには、{\bf set autoscale} コマンドか {\bf set [axis]range} コマン
ドの {\bf noextend} オプションを使うことができます。これは、次の目盛りの刻
みを入れるような軸の範囲の拡張機能を無効にします。

ラベルの座標と文字列もデータファイルから読み込むことができます (以下
参照: {\bf labels (p.~\pageref{labels})\index{labels}})。
\subsubsection*{Columnheaders}
\addcontentsline{toc}{subsubsection}{Columnheaders}
\label{commands plot datafile columnheaders}%
\label{data-file columnheaders}%
\label{datafile columnheaders}%
\label{columnheaders}%
\index{columnheaders}%
コマンド plot のキーワード {\bf skip} を使うことで、データファイルの先頭の
追加行 (複数行も可) を、明示的に無視させることができます。データファイ
ルには、文字列の列ヘッダを含む追加の単一行がある場合もあります。コマン
ド plot が列ヘッダ (column header) を、例えばタイトルとして使用するな
どのように明示的に参照する場合は、その行を自動的にスキップします。そう
でなければ、スキップ数に 1 を追加するか、{\bf set datafile columnheaders}
の属性を設定することで明示的にその行をスキップする必要があるでしょう。
以下参照: {\bf skip (p.~\pageref{skip})\index{skip}}, {\bf columnhead (p.~\pageref{columnhead})\index{columnhead}}, {\bf autotitle columnheader (p.~\pageref{autotitle columnheader})\index{columnheader}}。
\subsubsection*{カンマ区切りファイル (csv files)}
\addcontentsline{toc}{subsubsection}{カンマ区切りファイル (csv files)}
\label{csv files}%
\label{datafile csv}%
書式:
\preverbatim
\begin{verbatim}
    set datafile separator {whitespace | tab | comma | "chars"}
\end{verbatim}
\postverbatim

{\tt"}csv{\tt"} は、本来はカンマ区切り ({\tt"}comma-separated values{\tt"}) の略語ですが、
ここでの「csv ファイル」 ({\tt"}csv file{\tt"}) という言葉は、その中のデータフィ
ールドが、必ずしもカンマである必要はない特定の文字で区切られているよう
なファイルとします。csv ファイルからデータを読むためには、gnuplot にフ
ィールド区切り文字がなんであるかを示す必要があります。例えば、フィール
ド区切り文字としてセミコロンを使うファイルから読む場合は:

\preverbatim
\begin{verbatim}
    set datafile separator ";"
\end{verbatim}
\postverbatim

以下参照: {\bf set datafile separator (p.~\pageref{set datafile separator})\index{separator}}。これは、入力用のファイルにのみ適用
されます。出力として CSV ファイルを生成するには、{\bf set table} にオプシ
ョン {\bf separator} を使用してください。
\subsubsection*{Every}
\addcontentsline{toc}{subsubsection}{Every}
\label{commands plot datafile every}%
\label{plot datafile every}%
\label{plot every}%
\label{data-file every}%
\label{datafile every}%
\label{every}%
\index{every}%
キーワード {\bf every} は、描画するデータをデータ集合から周期的にサンプリ
ングすることを可能にします。

通常のファイルに対しては、「ポイント」は 1 つの行、データの「ブロック」
は、前後のブロックと空行で区切られる連続した行のまとまりを意味すること
とします。

matrix データに対しては、「ブロック」と「ポイント」は、それぞれ「行」
と「列」に対応します。以下参照: {\bf matrix every (p.~\pageref{matrix every})\index{every}}。

書式:
\preverbatim
\begin{verbatim}
     plot 'file' every {<ポイント増分>}
                         {:{<ブロック増分>}
                           {:{<開始ポイント>}
                             {:{<開始ブロック>}
                               {:{<終了ポイント>}
                                 {:<終了ブロック>}}}}}
\end{verbatim}
\postverbatim

描画するデータポイントは、$<$開始ポイント$>$ から $<$終了ポイント$>$ まで $<$ポ
イント増分$>$ の増加で選び、ブロックは $<$開始ブロック$>$ から $<$終了ブロック$>$
まで $<$ブロック増分$>$ の増加で選びます。

各ブロックの最初のデータは、ファイル中の最初のブロックと同じように、
「0 番」と数えます。

プロットできない情報を含む行もカウントすることに注意して下さい。

いくつかの数字は省略できます; 増分のデフォルトは 1 、開始の値は最初の
ポイントか最初のブロック、そして終了の値は最後のポイントか最後のブロッ
クに設定します。{\bf every} のオプションが ':' で終わるのは許されていませ
ん。{\bf every} を指定しなければ、全ての行の全てのポイントをプロットします。

例:
\preverbatim
\begin{verbatim}
     every :::3::3    # 4 番目のブロックだけ選びます (0 番が最初)
     every :::::9     # 最初の 10 ブロックを選びます
     every 2:2        # 1 つおきのブロックで 1 つおきのポイントを選び
                      # ます
     every ::5::15    # それぞれのブロックでポイント 5 から 15 までを
                      # 選びます
\end{verbatim}
\postverbatim

以下も参照
\href{http://www.gnuplot.info/demo/simple.html}{\tt 単純な plot デモ (simple.dem)
}

,
\href{http://www.gnuplot.info/demo/surface1.html}{\tt 非媒介変数モードでの splot デモ
}

,
\href{http://www.gnuplot.info/demo/surface2.html}{\tt 媒介変数モードでの splot デモ
}

。
\subsubsection*{データファイルの例 (example)}
\addcontentsline{toc}{subsubsection}{データファイルの例 (example)}
\label{commands plot datafile example}%
\label{plot datafile example}%
\label{plot example}%
\label{datafile example}%
\label{data-file example}%
\label{example}%
\index{example}%
次の例は、ファイル {\tt"}population.dat{\tt"} 中のデータと理論曲線を図にするもの
です。

\preverbatim
\begin{verbatim}
     pop(x) = 103*exp((1965-x)/10)
     set xrange [1960:1990]
     plot 'population.dat', pop(x)
\end{verbatim}
\postverbatim

ファイル {\tt"}population.dat{\tt"} は次のようなファイルです。

\preverbatim
\begin{verbatim}
     # Gnu population in Antarctica since 1965
        1965   103
        1970   55
        1975   34
        1980   24
        1985   10
\end{verbatim}
\postverbatim

\index{skip}%
binary の例:

\preverbatim
\begin{verbatim}
     # 2 つの float の値を選択し (2 つ目の値は無意味)、一方を読み捨て、
     # 一つおきの float 値を無限に長く続く 1 次元データとして使用
     plot '<file_name>' binary format="%float%*float" using 1:2 with lines
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # データファイルから座標を生成するのに必要な情報をすべてそのヘッ
     # ダに含んでいる EDF ファイルの場合
     plot '<file_name>' binary filetype=edf with image
     plot '<file_name>.edf' binary filetype=auto with image
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # 3 つの符号なし文字型整数値 (unsigned char) を生の RGB 画像の色
     # 成分として選択し、y 方向は反転させ画像の方向を座標平面上で変更
     # する (左上が原点になるように)。ピクセルの間隔も指定し、ファイ
     # ルには 2 つの画像が含まれていて、そのうち一つは origin で平行
     # 移動する。
     plot '<file_name>' binary array=(512,1024):(1024,512) format='%uchar' \
          dx=2:1 dy=1:2 origin=(0,0):(1024,1024) flipy u 1:2:3 w rgbimage
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # 4 つの別のデータからなり、座標情報もデータファイルに含まれてい
     # る。ファイルは gnuplot が実行されているシステムとは異なるエン
     # ディアンで生成されている。
     splot '<file_name>' binary record=30:30:29:26 endian=swap u 1:2:3
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # 同じ入力ファイルで、今回は 1 番目と 3 番目のレコードをスキップ
     splot '<file_name>' binary record=30:26 skip=360:348 endian=swap u 1:2:3
\end{verbatim}
\postverbatim


以下参照: {\bf binary matrix (p.~\pageref{binary matrix})\index{matrix}}。
\subsubsection*{フィルター (filters)}
\addcontentsline{toc}{subsubsection}{フィルター (filters)}
\label{commands plot datafile filters}%
\label{plot datafile filters}%
\label{plot filters}%
\label{data-file filters}%
\label{datafile filters}%
\label{filters}%
\index{filters}%
入力データを読み込んだ直後、他の smooth 処理やスタイル固有の処理オプシ
ョンを適用する前に、フィルター (filters) 操作を直ちに適用します。一般
にフィルターの目的は、元々の入力点集合全体を、多分変形や再グループ化、
再整列化を行い、そこから抜き出した部分集合に置き換えます。
現在サポートしているフィルターは {\bf bins}, {\bf convexhull}, {\bf concavehull},
{\bf delaunay}, {\bf if}, {\bf mask}, {\bf sharpen}, {\bf zsort} です。
\paragraph*{度数分布 (bins)}
\addcontentsline{toc}{paragraph}{度数分布 (bins)}
\label{commands plot datafile filters bins}%
\label{plot datafile filters bins}%
\label{plot filters bins}%
\label{data-file filters bins}%
\label{datafile filters bins}%
\label{filters bins}%
\label{bins}%
\index{bins}%
書式:
\preverbatim
\begin{verbatim}
    plot 'DATA' using <XCOL> {:<YCOL>} bins{=<NBINS>}
         {binrange [<LOW>:<HIGH>]} {binwidth=<width>}
         {binvalue={sum|avg}}
\end{verbatim}
\postverbatim

{\bf plot} コマンドに対するオプション {\bf bins} は、最初に元のデータを、x 軸
上で等しい幅を持ついくつかの階級 (ビン) に割り当て、そして階級毎に一つ
の値のみを描画します。階級の数のデフォルト値は、{\bf set samples} で決定し
ますが、これは plot コマンドでビンの数を明示的に指定することで変更でき
ます。

binrange を指定しないと、範囲は 'DATA' 内の値の両端を取ります。

階級幅は、指定した範囲と階級の数から自動的に計算し、各点を 0 から
NBINS-1 までの階級に割り当てます:
\preverbatim
\begin{verbatim}
    BINWIDTH = (HIGH - LOW) / (NBINS-1)
    xmin = LOW - BINWIDTH/2
    xmax = HIGH + BINWIDTH/2
    first bin holds points with (xmin <= x < xmin + BINWIDTH)
    最初の階級は (xmin <= x < xmin + BINWIDTH) の範囲の点を保持
    最後の階級は (xmax-BINWIDTH <= x < xman) の範囲の点を保持
    各点は i = floor(NBINS * (x-xmin)/(xmax-xmin)) 番の階級に割り当て
\end{verbatim}
\postverbatim

それとは別に、固定幅の階級を指定することも可能です。その場合、階級の数
(nbins) は、点の範囲全体にわたる最小の階級の数となります。

階級の出力は、その中点で描画、または表にされます。例えば gnuplot が上
のように階級の幅を計算する場合、最初の階級の x 座標の出力は x=LOW であ
り、x=xmin ではありません。

using 命令で一つの列のみを指定した場合、各データ点は、その x 座標値に
対する階級の合計値に 1 だけ寄与します。2 列目を指定すると、その階級の
合計値には 2 列目の値が追加されます。よって、以下の 2 つの plot コマン
ドは同じになります:
\preverbatim
\begin{verbatim}
    plot 'DATA" using N bins=20
    set samples 20
    plot 'DATA' using (column(N)):(1)
\end{verbatim}
\postverbatim

デフォルトでは、各階級に対して描画される y の値は、その階級内のすべて
の点に関する y の値の和になります。これは、オプション {\bf binvalue=sum}
に対応します。これに対して、{\bf binvalue=avg} ではその階級内のすべての点
に対する y の値の平均を描画します。

関連する処理オプションに関しては、以下参照: {\bf smooth frequency (p.~\pageref{smooth frequency})\index{frequency}},
{\bf smooth kdensity (p.~\pageref{smooth kdensity})\index{kdensity}}。
\paragraph*{凸包 (convexhull)}
\addcontentsline{toc}{paragraph}{凸包 (convexhull)}
\label{commands plot datafile filters convexhull}%
\label{commands plot datafile convexhull}%
\label{plot datafile filters convexhull}%
\label{datafile filters convexhull}%
\label{plot filters convexhull}%
\label{filters convexhull}%
\label{plot convexhull}%
\label{convexhull}%
\index{convexhull}%

convexhull は描画スタイルではありません。これは、フィルターキーワード
として単独で、または {\bf smooth path} や {\bf expand $<$increment$>$} との組み合
わせとして使います。

\preverbatim
\begin{verbatim}
    plot FOO using x:y convexhull
    plot FOO using x:y convexhull smooth path
    plot FOO using x:y convexhull expand <increment> {smooth path}
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_convex_hull}
これは、FOO 内の点を、それを包含する凸多角形を構成する一意的な部分集合、
すなわち凸包 (convex hull) で置き換えます。この多角形の頂点集合は、時
計回りの閉曲線となるように出力します。よってその曲線の始点と終点は一致
し、{\bf lines} や {\bf polygons}, {\bf filledcurves} の描画スタイルで適切に描画で
きるようにしています。凸包は、画像や元々のデータ点すべてを含む pm3d 曲
面のある領域を選択的に描画するマスクとしても便利に使えます。以下参照:
{\bf masking (p.~\pageref{masking})\index{masking}}。

キーワード {\bf smooth} をつけると、その頂点は滑らかな曲線を生成するための
ガイド点として使います (以下参照: {\bf smooth path (p.~\pageref{smooth path})\index{path}})。デフォルトでは、その
平滑化曲線はガイド点を通ります。

オプションのキーワード {\bf expand} と増分値 ($<$increment$>$) は、凸包の辺の
線分を増分値の距離だけ内部から遠ざけます。そして移動した線分を留め継ぎ
(mitered) でつなぎます。これは、元々の凸包の各頂点を 2 つの頂点で置き
変えることを意味しますが、それは隣接する辺との間に隙間ができてしまうか
らです。

\paragraph*{凹包 (concavehull)}
\addcontentsline{toc}{paragraph}{凹包 (concavehull)}
\label{commands plot datafile filters concavehull}%
\label{commands plot datafile concavehull}%
\label{plot datafile filters concavehull}%
\label{datafile filters concavehull}%
\label{plot filters concavehull}%
\label{filters concavehull}%
\label{concavehull}%
\index{concavehull}%

試験段階 (実装の詳細は将来のリリースで変更するかもしれません)。あなた
の gnuplot が --enable-chi-shapes 付きでビルドされた場合のみ利用可能。

凹包 (concavehull) は、描画スタイルではありません。これは、入力データ
点の境界多角形「閉包」(hull) を見つけるフィルタの一つで、これは、元の
点集合を、この多角形の周上の順序づけられた部分集合で置き換えます。凸包
は任意の点集合に対して一意に決定しますが、これはそれとは違い、複数の凹
包がありえます。そこから一つの凹包を選択する仕組みはさまざまありますが、
gnuplot は Duckham ら (2008; Patttern Recognition 41:3224-3236) によっ
て定義されたχ-形状の閉包を生成します。

\gpinsetfigure{figure_concave_hull_1}
与えられた点集合に対し、ドロネー三角形分割から三角形を反復削除すること
でχ-形状を生成します。各反復では、以下の基準に従って三角形を一つ削除
します: (1) 一点で接触する境界形状の連結度を減らさない場合は削除に望ま
しい、(2) 三角形の一つの辺が現在の周囲の最も長い線分である場合、(3) こ
の辺が事前に選択した、χ-形状を完全に決定する特性長パラメータより長い
場合。gnuplot では、この特性長パラメータは、ユーザー変数 {\bf chi\_length}
から取ります。反復は、取り除ける三角形がなくなったら停止します。
{\bf chi\_length} が大きい場合、三角形は一つも取り除けず、χ-形状は元の周で
ある凸包になります。{\bf chi\_length} を小さくするとその分多くの三角形が削
除され、最終的な形状は凸性がより低くなります。小さすぎる {\bf chi\_length}
は望ましくありません。

\gpinsetfigure{figure_concave_hull_2}
{\bf chi\_length} の適切な選択は、入力データ点の分布と密度に強く依存します。
ユーザが {\bf chi\_length} を設定しなければ、gnuplot はそれを自動的に選択し
ますが、それがあなたのデータに対し適切である保証はありません。この図に
示されてるデータに対しては、gnuplot は chi\_length=22.6 をデフォルトで
選択し、これは凸包の最長辺の 0.6 倍の長さです。デフォルトで使用される
この最長辺に対する比率は、コマンド {\bf set chi\_shape fraction $<$value$>$} で
変更できます。

現在のグラフで使った、ユーザ定義か gnuplot が選択した {\bf chi\_length} の
値は、変数 GPVAL\_CHI\_LENGTH に保存します。

オプションキーワード {\bf expand} と増分値 ($<$increment$>$) は、閉包の各辺を
固定した距離だけ内部から遠ざけます。これは、元のすべての点の外側にある
閉曲線を構成する、新たな点集合を生成します。それは、{\bf smooth path} と組
み合わせることが可能です。

\paragraph*{ドロネー図 (delaunay)}
\addcontentsline{toc}{paragraph}{ドロネー図 (delaunay)}
\label{commands plot datafile filters delaunay}%
\label{plot datafile filters delaunay}%
\label{plot filters delaunay}%
\label{data-file filters delaunay}%
\label{datafile filters delaunay}%
\label{filters delaunay}%
\label{delaunay}%
\index{delaunay}%

ドロネー (delaunay) 三角形は、2 次元の点集合を 3 点ずつの組に再分し、
その 3 点が作る三角形の外接円内には元の集合の点が入らないようにします。
gnuplot では、フィルタ動作として実装していて、点集合の入力を、描画スタ
イル {\tt"}with polygons{\tt"} の形式の 3 角形のリストに置き換えます。
このフィルタは、χ-形状を用いた凹包を見つける最初の段階で使用されます
(以下参照: {\bf concavehull (p.~\pageref{concavehull})\index{concavehull}})。これは、モザイク状の曲面を生成する目的で、
3 次元点集合を xy 平面へ射影したものにも明示的に適用できます。
\href{http://www.gnuplot.info/demo_6.1/delaunay.html}{\tt delaunay.dem
}

も参照。

これは試験段階 です (実装の詳細は将来の版で変更の可能性あり)。あなたの
gnuplot が --enable-chi-shapes で configure した場合のみ利用できます。

2 次元の例
\preverbatim
\begin{verbatim}
    plot POINTS using 1:2 delaunay with polygons fillstyle empty
\end{verbatim}
\postverbatim

3 次元の例
\preverbatim
\begin{verbatim}
    set pm3d border lc "black" lw 2
    splot 'hemisphere.dat' using 1:2:3 delaunay with polygons
\end{verbatim}
\postverbatim

\paragraph*{マスキング (mask)}
\addcontentsline{toc}{paragraph}{マスキング (mask)}
\label{commands plot datafile filters mask}%
\label{plot datafile filters mask}%
\label{plot filters mask}%
\label{data-file filters mask}%
\label{datafile filters mask}%
\label{filters mask}%
\label{mask}%
\index{mask}%
\preverbatim
\begin{verbatim}
    plot FOO using 1:2:3 mask with {pm3d|image}
\end{verbatim}
\postverbatim

マスクを一度定義すると、image 描画や pm3d 描画や contourfill 描画から
その領域のみを選択するフィルタとしてそれを利用できます。
以下参照: {\bf masking (p.~\pageref{masking})\index{masking}}。

\paragraph*{先鋭化 (shapen)}
\addcontentsline{toc}{paragraph}{先鋭化 (shapen)}
\label{plot filters sharpen}%
\label{filters sharpen}%
\label{sharpen}%
\index{sharpen}%

フィルタ {\bf sharpen} は、関数描画にのみ適用します。それは描画する関数の
極を探しますが、それは、そのグラフを構成する線分要素を作る標本点のいず
れかの x 値の上に正しく乗っているとは限りません。これは、本当の極を二
分法によって、見つけそしてそれを標本点の集合に追加します。これは、ピー
クの鋭い先端の切り捨てを減らしますが、粗い標本化ではそれを完全には取り
除けません。

例:
\preverbatim
\begin{verbatim}
    set samples 150
    set xrange [-8:8]
    plot abs(sqrt(sin(x))) sharpen
\end{verbatim}
\postverbatim

キーワード {\tt"}sharpen{\tt"} なしでは、結果のグラフは連続曲線で、π毎に極小と
なり、その極小値は 0 に達するべきものですが、人為的に切り捨てられ、そ
の y の極小値は見た目には 0.02 から 0.20 の間になります。
キーワード {\tt"}sharpen{\tt"} をつけることで、その関数の正しい見た目である、周
期的で鋭く y=0 に達する極小値を持つグラフを生成します。

\paragraph*{条件フィルタ (if)}
\addcontentsline{toc}{paragraph}{条件フィルタ (if)}
\label{commands plot datafile filters if}%
\label{plot datafile filters if}%
\label{plot filters if}%
\label{data-file if}%
\label{datafile if}%
\label{filters if}%
\preverbatim
\begin{verbatim}
    plot ... if (<expression>)
    splot ... if (<expression>)
\end{verbatim}
\postverbatim
入力データの各行に対し、filter {\bf if} 内の式 (expression) が評価され、そ
の値が真 (0 以外) の場合にのみ、その行を受け付けます。{\bf using} 指定子内
で有効な任意の関数、変数はこのフィルタの式内でも有効で、描画には使用し
ない入力データ列も利用できます。

式 (expression) が偽 (0) と評価したデータ列は、それがファイル内に存在
しなかったものとして扱います (以下参照: {\bf missing (p.~\pageref{missing})\index{missing}})。これは、以前サポー
トしていた、{\bf using} 指定の中で行う論理テストによる手法より、可読性の高
い同等の方法を提供します。

古い書式 (まだ使えます):
\preverbatim
\begin{verbatim}
    set datafile missing NaN
    plot FOO using (strcol(1) eq "ABC" ? $2 : NaN):3 with linespoints
    plot $DATA using 1:($2 < 999. ? $2 : NaN)
\end{verbatim}
\postverbatim
新しい書式:
\preverbatim
\begin{verbatim}
    plot FOO using 2:3 with linespoints if (strcol(1) eq "ABC")
    plot $DATA using 1:2 if ($2 < 999.)
\end{verbatim}
\postverbatim
古い例と新しい例の両方とも、入力ファイル FOO の行で最初の列が {\bf ABC} で
ある行、\$DATA の 2 列目が 999 より小さい行のみを選択します。

このフィルタは splot コマンドでも利用可能ですが、そちらはフィルタの式
が 0 (偽) を返す場合、その点を欠損データ (missing) ではなく未定義
(undefined) として扱う、というわずかな違いがあります。

\paragraph*{Z ソート (zsort)}
\addcontentsline{toc}{paragraph}{Z ソート (zsort)}
\label{commands plot datafile filters zsort}%
\label{plot datafile filters zsort}%
\label{plot filters zsort}%
\label{data-file zsort}%
\label{datafile zsort}%
\label{filters zsort}%
\label{zsort}%
\index{zsort}%
\preverbatim
\begin{verbatim}
    plot FOO using x:y:z:color zsort with points lc palette
\end{verbatim}
\postverbatim

入力データを、他の smooth オプションを適用する前に入力後直ちにソートし
ます。他の smooth オプションがデータを再ソートして、{\bf zsort} の効果がグ
ラフには全く現れない場合もあることに注意してください。
z 軸が自動縮尺でない場合、範囲外の z の値の点はフラグ付けされますが、
削除はされません。

この機能は、とても膨大な点数データの 2 次元の散布図の表示を、高得点の
分布がわかる形であり続けるようにフィルタするような使い方を意図していま
す。z 保証値によるソートにより、高い z 値を持つような点が、低い z 値の
点で覆い隠されることはなくなります。

\subsubsection*{Index}
\addcontentsline{toc}{subsubsection}{Index}
\label{commands plot datafile index}%
\label{plot datafile index}%
\label{plot index}%
\label{data-file index}%
\label{datafile index}%
\label{index}%
\index{index}%
キーワード {\bf index} は、描画用に複数のデータ集合を持つファイルから、特
定のデータ集合を選択することを可能にします。配列の添字としての index
については、以下参照: {\bf arrays (p.~\pageref{arrays})\index{arrays}}。

書式:
\preverbatim
\begin{verbatim}
     plot 'file' index { <m>{:<n>{:<p>}} | "<name>" }
\end{verbatim}
\postverbatim

データ集合は 2 行の空白で分離されています。{\bf index $<$m$>$} は $<$m$>$ 番目の集
合だけを選択します; {\bf index $<$m$>$:$<$n$>$} は $<$m$>$ から $<$n$>$ までのデータ集合の
選択; {\bf index $<$m$>$:$<$n$>$:$<$p$>$} は、$<$m$>$, $<$m$>$+$<$p$>$, $<$m$>$+2$<$p$>$, など、$<$p$>$ おきの
集合を選択し、集合 $<$n$>$ で終了します。C 言語の添字 (index) の付け方に従
い、index 0 はそのファイルの最初のデータ集合を意味します。大きすぎる
index の指定にはエラーメッセージが返されます。$<$p$>$ を指定し、$<$n$>$ を空欄
にした場合、$<$p$>$ 毎のデータをファイルの最後まで読み込みます。{\bf index} を
指定しない場合は、ファイルのデータ全体を単一のデータ集合として描画しま
す。

例:
\preverbatim
\begin{verbatim}
     plot 'file' index 4:5
\end{verbatim}
\postverbatim

ファイルの各点に対して、それが含まれるデータ集合の index 値は、疑似列
{\bf column(-2)} で利用できます。これは、以下に見るように、そのファイル内
の個々のデータ集合を区別する別の方法を提供します。これは、描画用に 1
つのデータ集合の選択しかしない場合は {\bf index} コマンドよりも不恰好です
が、個々のデータ集合に異なる属性を割り当てたい場合にはとても便利です。
以下参照: {\bf pseudocolumns (p.~\pageref{pseudocolumns})\index{pseudocolumns}}, {\bf lc variable (p.~\pageref{lc variable})\index{variable}}。

例:
\preverbatim
\begin{verbatim}
     plot 'file' using 1:(column(-2)==4 ? $2 : NaN)        # とても不恰好
     plot 'file' using 1:2:(column(-2)) linecolor variable # とても便利 !
\end{verbatim}
\postverbatim

{\bf index '$<$name$>$'} は、データ集合を名前 '$<$name$>$' で選択します。名前はコ
メント行に書いてデータ集合に割り当てます。コメント文字とそれに続く空白
をそのコメント行から取り除いて、その結果が $<$name$>$ から始まっていれば、
それに続くデータ集合に $<$name$>$ という名前がつけられて、それを指定できま
す。

例:
\preverbatim
\begin{verbatim}
     plot 'file' index 'Population'
\end{verbatim}
\postverbatim

$<$name$>$ で始まるすべてのコメントがそれに続くデータ集合の名前になること
に注意してください。問題を避けるために、例えば '== Popolation ==' や
'[Population]' などの命名法を選択すると便利でしょう。

\href{http://www.gnuplot.info/demo/multimsh.html}{\tt }

\subsubsection*{Skip}
\addcontentsline{toc}{subsubsection}{Skip}
\label{plot datafile skip}%
\label{data-file skip}%
\label{datafile skip}%
\label{skip}%
\index{skip}%
キーワード {\bf skip} は、プログラムにテキストデータファイル (バイナリデー
タは不可) の先頭の数行をスキップさせます。スキップする行は、{\bf every} キ
ーワード処理での行数にはカウントしません。{\bf every ::N} はそのファイル内
のデータのすべてのブロックの先頭をスキップしますが、{\bf skip N} はそのフ
ァイルの先頭部分の行のみをスキップすることに注意してください。バイナリ
データファイルに適用される同様のオプションについては、以下参照:
{\bf binary skip (p.~\pageref{binary skip})\index{skip}}。
\subsubsection*{Smooth}
\addcontentsline{toc}{subsubsection}{Smooth}
\label{commands plot datafile smooth}%
\label{plot datafile smooth}%
\label{plot smooth}%
\label{data-file smooth}%
\label{datafile smooth}%
\label{smooth}%
\index{smooth}%
\label{splines}%
\index{splines}%
{\bf gnuplot} は、元々の入力データがそうであったかのように補間や他の操作を
データに適用するルーチンをいくつか持っています。これらは {\bf smooth} オプ
ション内にグループ化されています。さらに洗練されたデータ処理をしたけれ
ば、gnuplot の外でデータの前処理をするか、または適切なモデルでの {\bf fit}
を使うのがいいでしょう。以下も参照: {\bf plot filters (p.~\pageref{plot filters})\index{filters}}。

書式:
\preverbatim
\begin{verbatim}
     smooth {unique | frequency | fnormal | cumulative | cnormal
            | csplines | acsplines | mcsplines  bezier | sbezier
            | path
            | kdensity {bandwidth} {period}
            | unwrap}
\end{verbatim}
\postverbatim

オプション {\bf unique}, {\bf frequency}, {\bf fnormal}, {\bf cumulatie}, {\bf cnormal} は、
x 座標に関してデータをソートし、そしてその x の値に対する分布のある種
の様子を描画します。

spline 系、Bezeir 系のオプションは、データの端と端を結ぶ連続曲線の係数
を決定します。この曲線は関数グラフと同じ方法、すなわちその値を x 座標
に沿う同じ幅の区間ごとに選び (以下参照: {\bf set samples (p.~\pageref{set samples})\index{samples}})、それらの点を
線分でつなぐことで描画します。データ集合が空行や未定義値で切られてい
る場合、切られていないそれぞれの部分を別々の連続曲線としてつなぎます。
これらの別々につないだ部分同士は、曲線として切れたり、不連続になった
りするかもしれません。

{\bf unwrap} は、データがπより大きなジャンプをしないように、2πの整数倍を
加える操作をします。

もし {\bf autoscale} の状態であれば、軸の範囲は元のデータからではなく、そ
こから作られる最終的な曲線に対して計算されます。

もし {\bf autoscale} の状態でなく、かつスプライン曲線を生成する場合、その
スプライン曲線の標本化は、入力データを含むような x の範囲と、
{\bf set xrange} で定義される固定した横座標の範囲の共通部分の上で行なわれ
ます。

要求する平滑化オプションを適用するにはデータの点数が少なすぎる場合は、
エラーメッセージが表示されます。

{\bf smooth} オプションは、関数の描画のときには無視されます。極座標モード
では、{\bf smooth path} のみ有効です。

3 次元 plot (splot) での平滑化は、現在は 3 次元の点の集合を通る自然 3
次スプライン曲線の生成に限定されています。一般的には、軌道
({\bf smooth path}) にスプラインを沿って生成します。3 次元データの 2 次元
射影に対しては、{\bf smooth csplines} はそれが 2 次元データであるかのよう
に作用します。一つの {\bf splot} コマンドでは、いずれか一つのキーワードの
みが許されています。

\preverbatim
\begin{verbatim}
    splot $DATA using 1:2:3 smooth path with lines
\end{verbatim}
\postverbatim

\paragraph*{Acsplines}
\addcontentsline{toc}{paragraph}{Acsplines}
\label{commands plot datafile smooth acsplines}%
\label{plot datafile smooth acsplines}%
\label{data-file smooth acsplines}%
\label{datafile smooth acsplines}%
\label{plot smooth acsplines}%
\label{plot acsplines}%
\label{splot smooth acsplines}%
\label{splot acsplines}%
\label{smooth acsplines}%
\label{acsplines}%
\index{acsplines}%
オプション {\bf smooth acsplines} は自然な滑らかなスプラインでデータを近似
します。データが x に関して単調にされた後 (以下参照: {\bf smooth unique (p.~\pageref{smooth unique})\index{unique}})、
1 つの曲線が、いくつかの 3 次多項式の一部分により区分的に構成されます。
それらの 3 次式の係数は、個々のデータ点に合うように求められますが、
using 指定によって 3 列目の値が与えられた場合は、その値で個々の点に重
みをつけます。デフォルトは、以下と同じです:
\preverbatim
\begin{verbatim}
     plot 'data-file' using 1:2:(1.0) smooth acsplines
\end{verbatim}
\postverbatim

性質上、重みの絶対的な大きさは、曲線を構成するのに使われる区分の数を決
定します。もし重みが大きければ、個々のデータの影響は大きくなり、そして
その曲線は、隣り合う点同志を自然 3 次スプラインでつないで得られるもの
に近づきます。もし重みが小さければ、その曲線はより少ない区分で構成され、
それによってより平滑的になります。その最も極端な場合はただ 1 つの区分
からなる場合であり、それは全てのデータに重みの付き線形最小 2 乗近似に
よって作られます。誤差の立場から言えば、平滑さの重みは、その曲線に対す
る「平滑化因子」によって分割された各点への、統計的な重みと見ることがで
きます。それにより、そのファイル中の (標準的な) 誤差は平滑さの重みとし
て使うことができます。

例:
\preverbatim
\begin{verbatim}
     sw(x,S)=1/(x*x*S)
     plot 'data_file' using 1:2:(sw($3,100)) smooth acsplines
     splot 'data_file' using 1:2:3:(sw($4,100)) smooth acsplines
\end{verbatim}
\postverbatim

{\bf splot ... smooth acsplines with lines} は、連続するデータ点の x, y, z
座標にスプライン曲線を当てはめます。2 次元の場合とは違い、点を最初にソ
ートしませんので、当てはめるスプラインの軌道はループを持つ可能性があり
ます。
警告: 一般の 3 次元の場合、たくさんのスプライン曲線が当てはまるので、
似たような効果を得るには、重み値をかなり大きくしなければいけません。
また、実数の経路長が暗黙の制御値として使われるので、重みづけされるその
区間は、一つの軸への射影とは一致しないことに注意してください。

\paragraph*{Bezier}
\addcontentsline{toc}{paragraph}{Bezier}
\label{commands plot datafile smooth bezier}%
\label{plot datafile smooth bezier}%
\label{plot smooth bezier}%
\label{data-file smooth bezier}%
\label{datafile smooth bezier}%
\label{plot bezier}%
\label{smooth bezier}%
\label{bezier}%
\index{bezier}%
オプション {\bf smooth bezier} は、n 次 (データ点の個数) のベジェ曲線でデ
ータを近似します。この曲線は両端の点をつなぎます。
\paragraph*{Bins}
\addcontentsline{toc}{paragraph}{Bins}
\label{data-file smooth bins}%
\label{datafile smooth bins}%
\label{smooth bins}%
{\bf smooth bins} は {\bf bins} と同じです。以下参照: {\bf bins (p.~\pageref{bins})\index{bins}}。
\paragraph*{Csplines}
\addcontentsline{toc}{paragraph}{Csplines}
\label{commands plot datafile smooth csplines}%
\label{plot datafile smooth csplines}%
\label{plot smooth csplines}%
\label{data-file smooth csplines}%
\label{datafile smooth csplines}%
\label{plot csplines}%
\label{smooth csplines}%
\label{csplines}%
\index{csplines}%
\label{splot smooth csplines}%
オプション {\bf smooth csplines} はデータを x 上で単調に揃えた後で (以下
参照: {\bf smooth unique (p.~\pageref{smooth unique})\index{unique}}) 自然 3 次スプライン曲線で引き続く点をつなぎます。
その平滑化曲線は常にデータ点を通るので、よって点同士の間隔が近い場合、
その滑らかな曲線に所々がたつきや遠回りができてしまうかもしれません。

{\bf splot ... smooth csplines with lines} は、連続するデータ点の x, y, z
座標にスプライン曲線を当てはめます。2 次元の cspline とは違い、点を最
初にソートしませんので、当てはめるスプラインの軌道はループを持つ可能性
があります。一般に、スプライン係数の別々な 3 つの集合を生成し、それぞ
れが一つの座標 x, y, z を、共通の明示的でない軌道パラメータの関数値と
して扱います。これは、2 次元の {\bf plot ... smooth path} オプションと同等
です。

その曲線が xy, yz, xy のいずれかの平面上にあるような特別な場合は、単一
の係数集合のみを生成します。これにより、3 次元空間内の平滑化曲線を、座
標を射影した 2 次元グラフのスプライン曲線の当てはめのコピーの積み重ね
で生成できるようになります。
\paragraph*{Mcsplines}
\addcontentsline{toc}{paragraph}{Mcsplines}
\label{commands plot datafile smooth mcsplines}%
\label{plot datafile smooth mcsplines}%
\label{plot smooth mcsplines}%
\label{data-file smooth mcsplines}%
\label{datafile smooth mcsplines}%
\label{plot mcsplines}%
\label{smooth mcsplines}%
\label{mcsplines}%
\index{mcsplines}%
オプション {\bf smooth mcsplines} は、平滑化された関数が元の点の単調性と凸
性を保存するような 3 次スプライン曲線で引き続く点をつなぎます。これは、
外れ値の影響を低減します。
FN Fritsch \& RE Carlson (1980) {\tt"}Monotone Piecewise Cubic Interpolation{\tt"},
SIAM Journal on Numerical Analysis 17: 238-246.

\paragraph*{Path}
\addcontentsline{toc}{paragraph}{Path}
\label{plot datafile smooth path}%
\label{plot smooth path}%
\label{smooth path}%
\label{datafile smooth path}%
\label{path}%
\index{path}%
~
 \gpinsetfigure{figure_smooth_path}
オプション {\bf smooth path} は、入力データ内で現れる順、すなわち最初に x
でソートしたりせずに、3 次元スプライン曲線で引き続く点をつなぎます。
これは、閉曲線や、ループを含む軌道向きの滑らかなスプラインを生成します。
この平滑モードは、2 次元, 3 次元の両方の描画コマンドでサポートしていま
す。入力ファイルの空行で区切られた各点集合に対して別々の曲線を作ります。
{\bf smooth path with filledcurves closed} による描画は、各点集合から閉曲
線を描くことを保証し、{\bf smooth path with lines} による描画は、始点と終
点が同じであれば閉曲線を、そうでなければ開いた曲線を描くことを保証しま
す。以下も参照してください。
\href{http://www.gnuplot.info/demo_6.0/smooth_path.html}{\tt smooth\_path.dem
}

\paragraph*{Sbezier}
\addcontentsline{toc}{paragraph}{Sbezier}
\label{commands plot datafile smooth sbezier}%
\label{plot datafile smooth sbezier}%
\label{plot smooth sbezier}%
\label{data-file smooth sbezier}%
\label{datafile smooth sbezier}%
\label{plot sbezier}%
\label{smooth sbezier}%
\label{sbezier}%
\index{sbezier}%
オプション {\bf smooth sbezier} は、最初にデータを単調に揃え (以下参照:
{\bf unique (p.~\pageref{unique})\index{unique}}) そして {\bf bezier} アルゴリズムを適用します。
\paragraph*{Unique}
\addcontentsline{toc}{paragraph}{Unique}
\label{commands plot datafile smooth unique}%
\label{plot datafile smooth unique}%
\label{plot smooth unique}%
\label{data-file smooth unique}%
\label{datafile smooth unique}%
\label{plot unique}%
\label{smooth unique}%
\label{unique}%
\index{unique}%
オプション {\bf smooth unique} は、データを x 方向に単調にします。同じ x
を持つデータ点は y の値を平均して一つの点で置き換えます。そしてその結
果として得られる点を線分で結びます。
\paragraph*{Unwrap}
\addcontentsline{toc}{paragraph}{Unwrap}
\label{commands plot datafile smooth unwrap}%
\label{plot datafile smooth unwrap}%
\label{plot smooth unwrap}%
\label{data-file smooth unwrap}%
\label{datafile smooth unwrap}%
\label{plot unwrap}%
\label{smooth unwrap}%
\label{unwrap}%
\index{unwrap}%
オプション {\bf smooth unwrap} は、2 つの続く点がπを越える違いが出ないよ
うにデータを修正します: y の値がその範囲を越えるような点に対しては、前
の点との差がπの範囲に収まるように 2πの整数倍を加えます。この操作は、
巻き戻しを持つ系の値を時間的に連続にさせるのに有用です。
\paragraph*{Frequency}
\addcontentsline{toc}{paragraph}{Frequency}
\label{commands plot datafile smooth frequency}%
\label{plot datafile smooth frequency}%
\label{plot smooth frequency}%
\label{data-file smooth frequency}%
\label{datafile smooth frequency}%
\label{plot frequency}%
\label{smooth frequency}%
\label{frequency}%
\index{frequency}%
\index{histogram}%
オプション {\bf smooth frequency} は、データを x に関して単調にします。x
座標が同じ点は、それらの y の値の合計を y の値として持つ一つの点に置き
換えます。多くの値のデータのヒストグラムを一定の階級幅 (bin) で描くに
は、それらの y の値を 1.0 にして、それでその和が同じ階級幅内の点の個数
を表すようにします。これは、データ 1 列だけを指定した場合は、暗黙のう
ちに行なわれます。
例:
\preverbatim
\begin{verbatim}
    binwidth = <適当な値>  # x の値の各階級幅
    bin(val) = binwidth * floor(val/binwidth)
    plot "datafile" using (bin(column(1))):(1.0) smooth frequency
    plot "datafile" using (bin(column(1))) smooth frequency  # 同上
\end{verbatim}
\postverbatim
以下も参照
\href{http://www.gnuplot.info/demo/smooth.html}{\tt smooth.dem
}

\paragraph*{Fnormal}
\addcontentsline{toc}{paragraph}{Fnormal}
\label{commands plot datafile smooth fnormal}%
\label{plot datafile smooth fnormal}%
\label{plot smooth fnormal}%
\label{data-file smooth fnormal}%
\label{datafile smooth fnormal}%
\label{plot fnormal}%
\label{smooth fnormal}%
\label{fnormal}%
\index{fnormal}%
オプション {\bf smooth fnormal} は、オプション {\bf frequency} と同様の動作を
しますが、正規化したヒストグラムを生成します。すなわち、データを x に
関して単調にして、y の値はそのすべての和が 1 になるように正規化します。
x 座標が同じ点は、それらの y の値の合計を y の値として持つ一つの点に置
き換えます。多くの値のデータのヒストグラムを一定の階級幅 (bin) で描く
には、それらの y の値を 1.0 にして、それでその和が同じ階級幅内の点の個
数を表すようにします。これは、データ 1 列だけを指定した場合は、暗黙の
うちに行なわれます。
以下も参照
\href{http://www.gnuplot.info/demo/smooth.html}{\tt smooth.dem
}

\paragraph*{Cumulative}
\addcontentsline{toc}{paragraph}{Cumulative}
\label{commands plot datafile smooth cumulative}%
\label{plot datafile smooth cumulative}%
\label{plot smooth cumulative}%
\label{data-file smooth cumulative}%
\label{datafile smooth cumulative}%
\label{plot cumulative}%
\label{smooth cumulative}%
\label{cumulative}%
\index{cumulative}%
オプション {\bf smooth cumulative} は、データを x に関して単調にします。x
座標が同じ点は、それ以下の x の値を持つすべての点 (すなわち現在のデー
タ点の左側の点) に対する y の値の累積的な合計を y の値として持つ一つの
点に置き換えられます。これは、データから累積分布関数を得るのに利用でき
ます。
以下も参照
\href{http://www.gnuplot.info/demo/smooth.html}{\tt smooth.dem
}

\paragraph*{Cnormal}
\addcontentsline{toc}{paragraph}{Cnormal}
\label{commands plot datafile smooth cnormal}%
\label{plot datafile smooth cnormal}%
\label{plot smooth cnormal}%
\label{data-file smooth cnormal}%
\label{datafile smooth cnormal}%
\label{plot cnormal}%
\label{smooth cnormal}%
\label{cnormal}%
\index{cnormal}%
オプション {\bf smooth cnormal} は、x に関して単調で、y の値は [0:1] に正
規化されたデータを生成します。同じ x の値を持つ点が複数ある場合は、そ
れより小さい x の値を持つすべてのデータ点 (すなわち現在のデータ点より
も左にある点) の累積和を、すべての y の値の和で割った値を y の値として
持つような一点のデータに置き変えられます。これは、データから正規化され
た累積分布関数を得るのに使えます (特に標本点数の異なるデータ集合を比較
するのに有用です)。
以下も参照
\href{http://www.gnuplot.info/demo/smooth.html}{\tt smooth.dem
}


\paragraph*{Kdensity}
\addcontentsline{toc}{paragraph}{Kdensity}
\label{commands plot datafile smooth kdensity}%
\label{plot datafile smooth kdensity}%
\label{plot smooth kdensity}%
\label{data-file smooth kdensity}%
\label{datafile smooth kdensity}%
\label{plot kdensity}%
\label{smooth kdensity period}%
\label{smooth kdensity}%
\label{kdensity}%
\index{kdensity}%
オプション {\bf smooth kdensity} は、描画された値集合の分布に対するガウス
核による核密度評価を生成し描画します。値は最初のデータ列から取り、オプ
ションとして重みを第 2 列から取ります。ガウス核は、各点の位置に置かれ、
これらのガウス核すべての和が関数として描画されます。正規化されたヒスト
グラムを得るには、各重みを 1/(点の個数) とすべきです。

バンド幅:
デフォルトでは、gnuplot は正規分布のデータ値に対して最適となるようなバ
ンド幅を計算し使用します。
\preverbatim
\begin{verbatim}
    default_bandwidth = sigma * (4/3N) ** (0.2)
\end{verbatim}
\postverbatim
これは通常はとても保守的で、すなわち幅広いバンド幅です。バンド幅は、明
示的に指定することもできます。
\preverbatim
\begin{verbatim}
    plot $DATA smooth kdensity bandwidth <value> with boxes
\end{verbatim}
\postverbatim
前の描画で使用したバンド幅は、GPVAL\_KDENSITY\_BANDWIDTH に保存します。

周期:
周期的なデータに対しては、個々のガウス核成分は、1 周期の区間を繰り返す
ように扱う必要があります。その一例は、角の関数として測定されたデータで、
これは周期が 2πです。他の例は、複数年に渡って、各年の日付毎に取られた
データで、この周期は 365 です。
このような場合、その周期を描画コマンドで渡す必要があります。
\preverbatim
\begin{verbatim}
    plot $ANGULAR_DAT smooth kdensity period 2*pi with lines
\end{verbatim}
\postverbatim

\subsubsection*{特別なファイル名 (special-filenames)}
\addcontentsline{toc}{subsubsection}{特別なファイル名 (special-filenames)}
\label{special-filenames}%
\index{special filenames}%
\label{special_filenames}%
\index{special filenames}%
\label{pseudofiles}%
\index{pseudofiles}%
\label{commands plot datafile special-filenames}%
\label{plot datafile special-filenames}%
\label{plot special-filenames}%
\label{datafile special-filenames}%
\label{data special-filenames}%
\label{special-filenames ++}%
\label{special-filenames +}%
\label{'-'}%
\index{' '}%
\label{'+'}%
\index{'+'}%
\label{'++'}%
\index{'++'}%
特別な意味を持つファイル名として、次のものがあります: {'\,'}, '-', '+',
'++'

空のファイル名 {'\,'} は、同じ plot コマンド上で、直前の入力ファイルを再び
使用することを gnuplot に指示します。よって、同じ入力ファイルの 2 つの
データ列を描画するには以下のようにします:

\preverbatim
\begin{verbatim}
     plot 'filename' using 1:2, '' using 1:3
\end{verbatim}
\postverbatim

この filename は、この後の plot コマンドでも {'\,'} で再利用できますが、
その場合に {\bf save} すると、コメントとしてその名前を記録するのみです。

'+' と '++' という特別なファイル名は、{\bf using} 指定の全体と描画スタイル
にインライン関数を使えるようにするための仕組みです。通常、関数描画はサ
ンプル点毎に単一の y (または z) の値しか持てません。しかし疑似ファイル
'+' はそれがあたかも実際の入力ファイルであるように、{\bf using} 指定による
1 列目の値を標本点として扱い、さらに追加の列の値を指定することも可能で
す。標本点数は {\bf set samples} かまたは明示的に標本間隔を範囲指定部分に
指定することで制御できます。標本点は、{\bf set trange} で設定されていれば
それで設定した範囲全体に渡りますが、そうでなければ {\bf set xrange} の範囲
全体に渡ります。

注意: trange の使用は、以前のある版の gnuplot の仕様とは異なりますが、
これにより x 軸の範囲とは異なる標本範囲が使用できることになります。

\preverbatim
\begin{verbatim}
     plot '+' using ($1):(sin($1)):(sin($1)**2) with filledcurves
\end{verbatim}
\postverbatim

'+' の直前に、独立な標本範囲を指定することもできます。通常の関数描画の
と同様、独立変数に名前を割り当てることもできます。
以下は、標本間隔 (1.5) を標本範囲内に指定した例です。標本点は、-3, 1.5,
0, 1.5, ... 24 の位置で取ります。

\preverbatim
\begin{verbatim}
     plot $MYDATA, [t=-3:25:1.5] '+' using (t):(f(t))
\end{verbatim}
\postverbatim

さらに、{\bf +} の範囲指定には、標本増分を与えることもできます。
{\bf plot} か {\bf splot} コマンドのすぐ後に標本範囲を書くと, 間違って x 軸の
範囲との解釈されてしまうかもしれません。そのあいまいさを避けるために、
キーワード {\bf sample} を前置するか、または標本範囲の 3 番目のフィールド
として標本間隔を与えるかすればいいでしょう。その標本間隔は空でもよく、
その場合はデフォルトを使用します。そのようなあいまいさの例については、
以下参照: {\bf plot sampling (p.~\pageref{plot sampling})\index{sampling}}。

\preverbatim
\begin{verbatim}
     plot sample [beta=0:2*pi] '+' using (sin(beta)):(cos(beta)) with lines
     plot        [beta=0:2*pi:] '+' using (sin(beta)):(cos(beta)) with lines
\end{verbatim}
\postverbatim

疑似ファイル '++' は、u 方向は {\bf set samples} で制御される点の数、v 方
向は {\bf set isosamples} で制御される点の数の、標準的な [u,v] 座標の格子
を生成する 2 列のデータを返します。よって、'++' の描画の前に、urange
と vrange を設定する必要がありますが、x と y の範囲は自動的に設定され
るか、または明示的に urange, vrange とは違う値に設定できます。
例:

\preverbatim
\begin{verbatim}
     splot '++' using 1:2:(sin($1)*sin($2)) with pm3d
     plot '++' using 1:2:(sin($1)*sin($2)) with image
\end{verbatim}
\postverbatim

{\bf '-'} という特別なファイル名は、データがインラインであることを指示し
ます。すなわち、データをコマンドの後に続けて指定します。このときはデ
ータのみがコマンドに続き得ます。よって、{\bf plot} コマンドに対するフィル
ター、タイトル、ラインスタイルといったオプションは、{\bf plot} のコマンド
ラインの方に書かないといけません。これは、unix シェルスクリプトにおけ
る $<$$<$ (ヒアドキュメント) と同様です。そのデータは、それらがファイルか
ら読み込まれたかのように、1 行につき 1 つのデータ点を入力します。そし
てデータの終りは、1 列目の始めに文字 {\tt"}e{\tt"} を置くことで指示します。

{\bf '-'} は、データとコマンドを一緒に持つことが有用である場合のためにあり
ます。例えば、別々のアプリケーションから {\bf gnuplot} にその両方がパイプ
入力される場合です。例えば、デモファイルの中にはこの機能を使うものがあ
るでしょう。{\bf index} や {\bf every} のような {\bf plot} のオプションが与えられ
ていると、それらは使われることのないデータの入力を要求してきます。ごく
単純な場合を除くすべての場合で、{\bf '-'} からデータを読み込むよりも、最初
にデータブロックを定義してそれを読み込む方が多分簡単です。以下参照:
{\bf datablocks (p.~\pageref{datablocks})\index{datablocks}}。

もし、{\bf replot} コマンドで {\bf '-'} を使うなら、あなたは 1 度以上データを
入力する必要があるでしょう。以下参照: {\bf replot (p.~\pageref{replot})\index{replot}}, {\bf refresh (p.~\pageref{refresh})\index{refresh}}。繰り返しま
すが、データブロックを使う方がいいです。

空のファイル名 ({'\,'}) は、直前のファイル名が再び使われることを指示しま
す。これは、

\preverbatim
\begin{verbatim}
     plot 'ある/とても/長い/ファイル名' using 1:2, '' using 1:3, '' using 1:4
\end{verbatim}
\postverbatim

のようなときに便利です。もし同じ plot コマンド上で、{\bf '-'} と {\bf {'\,'}} の両
方を使用すると、インラインデータの 2 つの集合を与える必要があり、一つ
目のものを再利用することはできません。

\subsubsection*{パイプによる入力データ (piped-data)}
\addcontentsline{toc}{subsubsection}{パイプによる入力データ (piped-data)}
\label{commands plot datafile piped-data}%
\label{plot datafile piped-data}%
\label{datafile piped-data}%
\label{data piped-data}%
\label{plot piped-data}%
\label{piped-data}%
\index{piped data}%
\label{pipes}%
\index{pipes}%
\index{pipes}%
popen 関数を持っているシステム上では、データファイルは、'$<$' で始まるフ
ァイル名によって、シェルコマンドからパイプ入力することができます。例え
ば

\preverbatim
\begin{verbatim}
     pop(x) = 103*exp(-x/10)
     plot "< awk '{print $1-1965, $2}' population.dat", pop(x)
\end{verbatim}
\postverbatim

は、最初の人口の例と同じ情報を描画します。ただし、x 座標は 1965 年か
らの経過年を表すようになります。この例を実行するときは、上のデータフ
ァイルのコメント行をすべて削除しなければなりませんが、または上のコマ
ンドの最初の部分を次のように変えることもできます (コンマに続く部分):

\preverbatim
\begin{verbatim}
     plot "< awk '$0 !~ /^#/ {print $1-1965, $2}' population.dat"
\end{verbatim}
\postverbatim

このアプローチは最も柔軟性がありますが、{\bf using} キーワードを用いた単純
なフィルタリングで行うことも可能です。

fdopen() 関数を持つシステムでは、データを、ファイルかパイプに結びつけ
られた任意のファイルデスクリプタから読み込むことができます。{\bf n} 番のフ
ァイルデスクリプタから読み込むには、{\bf '$<$\&n'} としてください。これにより、
1 回の POSIX shell からの呼び出しの中で、複数のデータファイルからのパ
イプ入力が容易に行えるようになります:

\preverbatim
\begin{verbatim}
     $ gnuplot -p -e "plot '<&3', '<&4'" 3<data-3 4<data-4
     $ ./gnuplot 5< <(myprogram -with -options)
     gnuplot> plot '<&5'
\end{verbatim}
\postverbatim

\subsubsection*{Using}
\addcontentsline{toc}{subsubsection}{Using}
\label{commands plot datafile using}%
\label{plot datafile using}%
\label{plot using}%
\label{data-file using}%
\label{datafile using}%
\label{using}%
\index{using}%
最もよく使われるデータファイルの修飾子は {\bf using} で、これは入力ファイ
ルのどの行を描画するのかを指示します。

書式:
\preverbatim
\begin{verbatim}
     plot 'file' using <entry> {:<entry> {:<entry> ...}} {'format'}
\end{verbatim}
\postverbatim

各 $<$entry$>$ は、入力ファイルの一つのフィールドを選択するための単なる列
の番号か、一つのデータ集合の最初の行の列のラベルに一致する文字列、カッ
コで囲まれた数式、xticlabels(2) のようにカッコで囲まない特別な関数、の
いずれかです。

そのエントリがカッコで囲まれた数式の場合、N 列目の値を指定するのに関数
column(N) を使用できます。つまり、column(1) は読み込まれた最初の項目を
参照し、column(2) は次の項目、といった具合です。column(1), column(2),
... の略記として、特別な記号 \$1, \$2, ... を使用できます。

特別な記号 \$\# は、現在の入力行の全列数と評価しますので、column(\$\#) や
stringcolumn(\$\#) は、列数が不明な場合、あるいは行によって異なる個数の
列を含むファイルからの入力の場合でも、必ず最終列の内容を返します。

関数 {\bf valid(N)} で、N 番目の列が有効な数字であるかどうかテストできます。
その列の値が欠けていたり、解釈できなかったり、NaN の場合は 0 を返しま
す。
\index{column}%
\index{columnheader}%
入力ファイルの最初の行の各列に、データの値ではなくラベルを持っている場
合、このラベルを入力列の特定や plot タイトルに使用できます。関数
column() は、列番号以外にラベルで入力列を選択できます。例えば、データ
ファイルが以下のような場合:
\preverbatim
\begin{verbatim}
     Height    Weight    Age
     val1      val1      val1
     ...       ...       ...
\end{verbatim}
\postverbatim
以下の plot コマンドは同じ意味になります:
\preverbatim
\begin{verbatim}
     plot 'datafile' using 3:1, '' using 3:2
     plot 'datafile' using (column("Age")):(column(1)), \
                  '' using (column("Age")):(column(2))
     plot 'datafile' using "Age":"Height", '' using "Age":"Weight"
\end{verbatim}
\postverbatim

指定文字列が完全に一致する必要がありますし、大文字小文字も区別します。
列のラベルを plot タイトルに使うには、{\bf set key autotitle columnhead}
とするか、または個別にタイトルを指定する場合は関数 {\bf columnhead(N)} を
使ってください。

入力データファイルの 1...N という実際の列に加えて、gnuplot は管理情報
を持ついくつかの {\tt"}疑似列{\tt"} を提供します。例えば、\$0 または column(0) は、
データ集合内のそのデータ行の行番号を返します。以下参照:
{\bf pseudocolumns (p.~\pageref{pseudocolumns})\index{pseudocolumns}}。

$<$entry$>$ に何も書かなければ、そのエントリのリストの順にデフォルトの値が
使われます。例えば {\bf using ::4} は、{\bf using 1:2:4} と解釈されます。

{\bf using} にただ一つのエントリを指定した場合は、その $<$entry$>$ は y の値と
して使われ、データ点の番号 (疑似列 \$0) が x として使われます。例えば
{\tt"}{\bf plot 'file' using 1}{\tt"} は {\tt"}{\bf plot 'file' using 0:1}{\tt"} と同じ意味です。
{\bf using} に 2 つのエントリを与えた場合、それらは x, y として使われます。
さらにエントリを追加して、入力からのデータを利用するような描画スタイル
の詳細については、以下参照: {\bf set style (p.~\pageref{set style})\index{style}}, {\bf fit (p.~\pageref{fit})\index{fit}}。
\paragraph*{Format}
\addcontentsline{toc}{paragraph}{Format}
\label{using format}%
\label{plot using format}%
format を指定すると、それを C ライブラリ関数 'scanf' に適用してデータ
ファイルの各行を読みます。そうでなければ、各行はホワイトスペース (スペ
ースやタブ) で区切られたデータの列 (フィールド) からなるとみなしますが
以下も参照: {\bf datafile separator (p.~\pageref{datafile separator})\index{separator}}。

'scanf' 関数では色々なデータ形式の数値入力が使えますが、{\bf gnuplot} は全
ての入力データを倍精度浮動小数とみなしますから、{\bf gnuplot} では {\bf \%lf}
が本質的に唯一の数値入力指定、ということになります。その書式文字列には
少なくとも一つ、そして 7 つ以下の、そのような入力指定子を入れる必要が
あります。
'scanf' は数と数の間にホワイトスペース、すなわち空白、タブ ({\tt"}$\backslash$t{\tt"})、改行
({\tt"}$\backslash$n{\tt"})、または改ページ ({\tt"}$\backslash$f{\tt"}) があると期待します。それ以外の入力は明ら
かにスキップしなければいけません。

{\tt"}$\backslash$t{\tt"}, {\tt"}$\backslash$n{\tt"}, {\tt"}$\backslash$f{\tt"} を使うときは単一引用符よりむしろ二重引用符を使うべき
であることに注意してください。
\paragraph*{Using の例 (using\_examples)}
\addcontentsline{toc}{paragraph}{Using の例 (using\_examples)}
\label{commands plot datafile using examples}%
\label{plot datafile using examples}%
\label{datafile using examples}%
\label{using examples}%
次の例は、1 番目のデータに対する 2 番目と 3 番目の和の値を plot します。
書式文字列は、各列データがスペース区切りでなく、コンマ区切りであること
を指示していますが、同じことが {\bf set datafile separator comma} を指定す
ることでも可能です。
\preverbatim
\begin{verbatim}
     plot 'file' using 1:($2+$3) '%lf,%lf,%lf'
\end{verbatim}
\postverbatim

次の例は、より複雑な書式指定でデータをファイル {\tt"}MyData{\tt"} から読み込み
ます。
\preverbatim
\begin{verbatim}
     plot 'MyData' using "%*lf%lf%*20[^\n]%lf"
\end{verbatim}
\postverbatim

この書式指定の意味は以下の通りです:

\preverbatim
\begin{verbatim}
     %*lf        数値を無視
     %lf         倍精度浮動小数を読み込む (デフォルトでは x の値)
     %*20[^\n]   20 個の改行以外の文字を無視
     %lf         倍精度浮動小数を読み込む (デフォルトでは y の値)
\end{verbatim}
\postverbatim

\index{filter}%
\index{NaN}%
3 項演算子 {\bf ?:} を使ってデータをフィルタする一つの芸当を紹介します。

\preverbatim
\begin{verbatim}
     plot 'file' using 1:($3>10 ? $2 : 1/0)
\end{verbatim}
\postverbatim

これは、1 列目のデータに対して、3 列目のデータが 10 以上であるような
2 列目のデータを plot します。{\bf 1/0} は未定義値であり、{\bf gnuplot} は未定
義の点を無視するので、よって適切でない点は隠されることになります。
または、あらかじめ定義されている値 NaN を使っても同じことになります。

カッコで始まっていない限りは定数式を列番号として使うことができます。
例えば {\bf using 0+(複雑な式)} の様なことができます。そして、その数式は、
カッコでスタートしていなければ数式の値が一度評価され、カッコでスタート
していれば個々のデータ点を読み込むためにその値が一度評価される、という
点が重要です。

時系列フォーマットデータを使っている場合、その時間のデータは複数の列に
渡らせることができます。その場合、他のデータの開始位置を計算するとき、
時間のデータに空白が含まれていることに注意してください。例えば、データ
行の最初の要素がスペースが埋め込まれた時間データであるならば、y の値は
3 列目の値として指定されるべきです。

(a) {\bf plot 'file'} と、(b) {\bf plot 'file' using 1:2}、そして
(c) {\bf plot 'file' using (\$1):(\$2)} には微妙な違いがあることに注意してく
ださい。以下参照: {\bf missing (p.~\pageref{missing})\index{missing}}。

最初に単に

\preverbatim
\begin{verbatim}
     plot 'file' using 1:2
\end{verbatim}
\postverbatim

と指定することで、大抵の場合どんなにゴミのデータを含む行を持つファイル
をも plot することが可能になります。しかし、どうしてもデータファイルに
文字列を残しておきたいならば、そのテキスト行の第一列にコメント文字 (\#)
を置く方がより安全でしょう。
\paragraph*{疑似列 (pseudocolumns)}
\addcontentsline{toc}{paragraph}{疑似列 (pseudocolumns)}
\label{pseudocolumns}%
\index{pseudocolumns}%
\label{commands plot datafile using pseudocolumns}%
\label{plot datafile using pseudocolumns}%
\label{datafile using pseudocolumns}%
\label{using pseudocolumns}%
plot 文の {\bf using} 項目内の式では、入力ファイルに含まれる実際のデータ値
に加えて管理情報も参照でき、これらは {\tt"}疑似列{\tt"} (pseudocolumns) に含まれ
ています。
\preverbatim
\begin{verbatim}
     column(0)   データ集合内での各点の順番。順番は 0 から始まり、空
                 行やコメント行でない行で増え、2 行の連続する空行でリ
                 セットされます。非一様な matrix データ形式では、
                 column(0) は各 matrix 要素の線形順序になります。
                 略記 $0 も使用可。
     column(-1)  この番号は 0 から始まり、1 行の空行で増え、2 行の連
                 続する空行でリセットされます。これは、行列、または格
                 子状データ内のデータ行に対応します。また、データ集合
                 内の別々の線分や多角形を区別するのにも使えます。
     column(-2)  0 から始まり、2 行の連続する空行で増えます。これは、
                 複数のデータ集合を持つファイル内の、現在のデータ集合
                 の index 番号です。以下参照: `index`。
     column($#)  特別な記号 $# は、存在する全列数と評価されますので、
                 よって column($#) は、現在の入力行の最終列 (最右列)
                 を参照します。同様に column($# - 1) は、最終列の一つ
                 手前の列、などとなります。
\end{verbatim}
\postverbatim
\paragraph*{配列 (arrays)}
\addcontentsline{toc}{paragraph}{配列 (arrays)}
\label{using arrays}%
\label{plot using arrays}%
描画するデータが配列か、または配列値関数である場合、{\bf using} 指定の中の
{\tt"}列 (column){\tt"} は以下のように解釈します。詳細については以下参照:
{\bf arrays (p.~\pageref{arrays})\index{arrays}}。
\preverbatim
\begin{verbatim}
      1 列目    配列の添字
      2 列目    配列の数値要素の実数部分、または文字列配列の文字列値
      3 列目    配列の数値要素の虚数部分
\end{verbatim}
\postverbatim
\paragraph*{Key}
\addcontentsline{toc}{paragraph}{Key}
\label{using key}%
\label{plot using key}%
ある描画スタイル (列積み上げ型ヒストグラムやクモの巣グラフ) では、デー
タ列の先頭から描画タイトルを生成することが無意味なレイアウトになってい
ます。({\bf using 2:3:xticlabels(1)} のように) データ列の内容から軸目盛り
ラベルを生成することも無意味になっています。それらの描画スタイルでは、
代わりに {\bf using 2:3:key(1)} の形式を使ってデータ列に含まれる文字列から
凡例 (key) の描画タイトルを生成します。通常は、行の先頭の第 1 列目を取
ります。{\bf spiderplot} で提示されている例を参照してください。
\paragraph*{Xticlabels}
\addcontentsline{toc}{paragraph}{Xticlabels}
\label{xticlabels}%
\index{xticlabels}%
\label{using xticlabels}%
\label{plot using xticlabels}%
軸の刻みの見出し (ticlabel) は文字列関数によって作ることもでき、それは
通常は引数としてデータ列から取得します。最も単純な形式は、データ列自身
の文字列としての利用で、xticlabels(N) は xticlabels(stringcolumn(N))
の省略形として使えます。以下の例は 3 列目の要素を x 軸の刻みの見出しと
して使用します。

\preverbatim
\begin{verbatim}
     plot 'datafile' using <xcol>:<ycol>:xticlabels(3) with <plotstyle>
\end{verbatim}
\postverbatim

軸の目盛りの見出しは、任意の描画軸 x,x2,y,y2,z 用に生成できます。
{\bf ticlabels($<$labelcol$>$)} 指定は、{\bf using} 指定の中で、そのデータの座標指
定が全て済んだ後に行う必要があります。有効な X,Y[,Z] 座標の組を持つ各
データ点に対して、xticlabels() に与える文字列値は、それに対応する点の
x 座標と同じ場所の x 軸の見出しのリストに追加されます。{\bf xticlabels()}
は {\bf xtic()} と省略することもでき、他の軸に関しても同様です。

例:

\preverbatim
\begin{verbatim}
     splot "data" using 2:4:6:xtic(1):ytic(3):ztic(6)
\end{verbatim}
\postverbatim

この例では、x 軸、y 軸の見出しは x,y 座標値とは別の列から取り出されま
すが、z 軸の見出しは、対応する点の z 座標値から生成されます。

例:

\preverbatim
\begin{verbatim}
     plot "data" using 1:2:xtic( $3 > 10. ? "A" : "B" )
\end{verbatim}
\postverbatim

この例は、x 軸の見出しの生成に文字列値関数を使用したもので、データファ
イルの各点の x 軸の刻みの見出しは、3 列目の値によって {\tt"}A{\tt"} か {\tt"}B{\tt"} かの
いずれかとなります。
\paragraph*{X2ticlabels}
\addcontentsline{toc}{paragraph}{X2ticlabels}
\label{using x2ticlabels}%
\label{plot using x2ticlabels}%
以下参照: {\bf plot using xticlabels (p.~\pageref{plot using xticlabels})\index{xticlabels}}。
\paragraph*{Yticlabels}
\addcontentsline{toc}{paragraph}{Yticlabels}
\label{using yticlabels}%
\label{plot using yticlabels}%
以下参照: {\bf plot using xticlabels (p.~\pageref{plot using xticlabels})\index{xticlabels}}。
\paragraph*{Y2ticlabels}
\addcontentsline{toc}{paragraph}{Y2ticlabels}
\label{using y2ticlabels}%
\label{plot using y2ticlabels}%
以下参照: {\bf plot using xticlabels (p.~\pageref{plot using xticlabels})\index{xticlabels}}。
\paragraph*{Zticlabels}
\addcontentsline{toc}{paragraph}{Zticlabels}
\label{using zticlabels}%
\label{plot using zticlabels}%
以下参照: {\bf plot using xticlabels (p.~\pageref{plot using xticlabels})\index{xticlabels}}。
\subsubsection*{Volatile}
\addcontentsline{toc}{subsubsection}{Volatile}
\label{datafile volatile}%
\label{data volatile}%
\label{plot datafile volatile}%
\label{plot volatile}%
\label{volatile}%
\index{volatile}%
plot コマンドのキーワード {\bf volatile} は、入力ストリームかファイルから
以前に読み込んだデータが、再読み込み時には有効ではないことを意味します。
これは、{\bf replot} コマンドの代わりに、可能な限り {\bf refresh} コマンド
を使うよう gnuplot に指示します。以下参照: {\bf refresh (p.~\pageref{refresh})\index{refresh}}。
\subsection*{関数描画 (functions)}
\addcontentsline{toc}{subsection}{関数描画 (functions)}
\label{commands plot functions}%
\label{plot functions}%
\label{functions}%
\index{functions}%
コマンド {\bf plot}, {\bf splot} では、ファイルから読み込んだデータの描画だけ
でなく、組み込み関数やユーザ定義関数を描画することもできます。関数の値
は、独立な軸の通常の範囲に渡ってデータサンプルを取ることで評価します。
以下参照: {\bf set samples (p.~\pageref{set samples})\index{samples}}, {\bf set isosamples (p.~\pageref{set isosamples})\index{isosamples}}。
例:
\preverbatim
\begin{verbatim}
     approx(ang) = ang - ang**3 / (3*2)
     plot sin(x) title "sin(x)", approx(x) title "approximation"
\end{verbatim}
\postverbatim

関数のデフォルトの描画スタイルを設定する方法については、以下参照:
{\bf set style function (p.~\pageref{set style function})\index{function}}。組み込み関数の情報については、以下参照:
{\bf expressions functions (p.~\pageref{expressions functions})\index{functions}}。自前で関数を定義する方法については、以下参照:
{\bf user-defined (p.~\pageref{user-defined})\index{user-defined}}。
\subsection*{媒介変数モード描画 (parametric)}
\addcontentsline{toc}{subsection}{媒介変数モード描画 (parametric)}
\label{commands plot parametric}%
\label{commands splot parametric}%
\label{plot parametric}%
\label{splot parametric}%
媒介変数モード ({\bf set parametric}) では、{\bf plot} では 2 つの数式の組を、
{\bf splot} では 3 つの数式の組を与える必要があります。

例:
\preverbatim
\begin{verbatim}
     plot sin(t),t**2
     splot cos(u)*cos(v),cos(u)*sin(v),sin(u)
\end{verbatim}
\postverbatim

データファイルは前と同じように描画されます。ただし、データファイルが
描画のために与えられる前に、任意の媒介変数関数が先に完全に指定された
場合を除いてです。言い換えると、x の媒介変数関数 (上の例では {\bf sin(t)})
と y の媒介変数関数 (上の例では {\bf t**2}) との間に、他の修飾子やデータ
関数をはさみこんではいけません。そのようなことをすると、構文エラーにな
り、媒介変数関数が完全には指定されていない、と表示されます。

{\bf with} や {\bf title} のような他の修飾子は、媒介変数関数の指定が完了した
後に指定しなければいけません。

\preverbatim
\begin{verbatim}
     plot sin(t),t**2 title 'Parametric example' with linespoints
\end{verbatim}
\postverbatim

以下も参照
\href{http://www.gnuplot.info/demo/param.html}{\tt 媒介変数モードのデモ。
}

\subsection*{範囲 (ranges)}
\addcontentsline{toc}{subsection}{範囲 (ranges)}
\label{commands plot ranges}%
\label{commands splot ranges}%
\label{plot ranges}%
\label{splot ranges}%
\label{ranges}%
\index{ranges}%
このセクションでは、コマンド {\bf plot}, {\bf splot} の一番最初の項目として書
く、軸の範囲のオプションについてのみ説明します。これを指定すると、その
範囲は、それ以前のどの {\bf set range} による範囲の制限よりも優先して扱わ
れます。コマンド {\bf plot} の別な場所に指定する、個々の描画要素の範囲の制
限ためのオプションについては以下参照: {\bf sampling (p.~\pageref{sampling})\index{sampling}}。

書式:
\preverbatim
\begin{verbatim}
     [{<dummy-var>=}{{<min>}:{<max>}}]
     [{{<min>}:{<max>}}]
\end{verbatim}
\postverbatim

1 つ目の形式の範囲指定は独立変数の範囲 ({\bf xrange}、または媒介変数モード
での {\bf trange}) 用で、2 つ目の形式は従属変数の範囲用です。オプションの
$<$dummy-var$>$ で独立変数の新しい名前を利用できます (デフォルトの変数名は
{\bf set dummy} で変更できます)。

媒介変数モード (parametric) でなければ、範囲指定は以下の順に与えなけれ
ばいけません:
\preverbatim
\begin{verbatim}
     plot [<xrange>][<yrange>][<x2range>][<y2range>] ...
\end{verbatim}
\postverbatim

媒介変数モード (parametric) では、範囲指定は以下の順に与えなければいけ
ません:
\preverbatim
\begin{verbatim}
     plot [<trange>][<xrange>][<yrange>][<x2range>][<y2range>] ...
\end{verbatim}
\postverbatim
以下の {\bf plot} コマンドは、{\bf trange} を [-pi:pi], {\bf xrange} を [-1.3:1.3],
{\bf yrange} を [-1:1] に設定する例です:

\preverbatim
\begin{verbatim}
     plot [-pi:pi] [-1.3:1.3] [-1:1] sin(t),t**2
\end{verbatim}
\postverbatim

{\bf *} は、min (最小値) や max (最大値) に自動範囲指定 (autoscale) の機能
を使うことを可能にします。指定順番のためだけに必要な範囲指定には、空の
範囲 {\bf []} を使ってください。

{\bf plot} や {\bf splot} のコマンド行で指定された範囲はそのグラフ一つにのみ影
響を及ぼします。よって、その後のグラフのデフォルトの範囲を変更するには
{\bf set xrange} や {\bf set yrange} を使用してください。

リンクされた軸に対しては、plot コマンドでの一時的な範囲指定の使用は、
期待する結果を生まないかもしれません (以下参照: {\bf set link (p.~\pageref{set link})\index{link}})。

時間データに対しては、範囲は、データファイルから読み込むのに使用するの
と同じ書式で、引用符で囲んで指定する必要があります。以下参照:
{\bf set timefmt (p.~\pageref{set timefmt})\index{timefmt}}。

例:

以下は現在の範囲を使用します:
\preverbatim
\begin{verbatim}
     plot cos(x)
\end{verbatim}
\postverbatim

以下は x の範囲のみの指定です:
\preverbatim
\begin{verbatim}
     plot [-10:30] sin(pi*x)/(pi*x)
\end{verbatim}
\postverbatim

以下は上と同じですが、仮変数として t を使います:
\preverbatim
\begin{verbatim}
     plot [t = -10 :30]  sin(pi*t)/(pi*t)
\end{verbatim}
\postverbatim

以下は x と y の両方の範囲の指定です:
\preverbatim
\begin{verbatim}
     plot [-pi:pi] [-3:3]  tan(x), 1/x
\end{verbatim}
\postverbatim

以下は、y の範囲のみの指定です:
\preverbatim
\begin{verbatim}
     plot [ ] [-2:sin(5)*-8] sin(x)**besj0(x)
\end{verbatim}
\postverbatim

以下は x の最大値と y の最小値のみの指定です。
\preverbatim
\begin{verbatim}
     plot [:200] [-pi:]  $mydata using 1:2
\end{verbatim}
\postverbatim

以下は x の範囲を時系列データとして指定しています:
\preverbatim
\begin{verbatim}
     set timefmt "%d/%m/%y %H:%M"
     plot ["1/6/93 12:00":"5/6/93 12:00"] 'timedata.dat'
\end{verbatim}
\postverbatim

\subsection*{サンプリング (sampling)}
\addcontentsline{toc}{subsection}{サンプリング (sampling)}
\label{sampling}%
\index{sampling}%
\label{commands plot sample}%
\label{plot sample}%
\label{plot sampling}%
\index{sample}%
\subsubsection*{1 次元のサンプリング (x または t 軸) (1D sampling)}
\addcontentsline{toc}{subsubsection}{1 次元のサンプリング (x または t 軸) (1D sampling)}
\label{sampling 1D}%
\label{plot sampling 1D}%
デフォルトでは、計算対象の関数に対して、描画範囲全体にわたって標本 (サ
ンプル) を取ります。この範囲は、事前にコマンド {\bf set xrange} で設定する
か、plot コマンドの一番最初の場所で x 軸の範囲指定をするか、またはその
グラフのすべての要素を含む範囲内にデータ全体が入るように自動縮尺
(autoscaling) された x の範囲です。疑似ファイル {\tt"}+{\tt"} が生成する標本点は、
t 軸の現在の範囲全体に渡りますが、それは x 軸の範囲と同じでも同じでな
くても構いません。

個々の描画要素毎に対し、標本範囲をさらに制限して割り当てることもできま
す。

例:

以下は、x 全体の範囲を 0 から 1000 としてファイルのデータを描画し、2
つの関数を全体の範囲の一部分だけそれぞれ描画します:
\preverbatim
\begin{verbatim}
     set xrange [0:1000]
     plot 'datafile', [0:200] func1(x), [200:500] func2(x)
\end{verbatim}
\postverbatim

以下は、上とほぼ同様ですが、全体の範囲はデータファイルの内容によって決
定します。この場合、標本化される関数は、全体がグラフ内に収まるかもしれ
ませんし、収まらないかもしれません:
\preverbatim
\begin{verbatim}
     set autoscale x
     plot 'datafile', [0:200] func1(x), [200:500] func2(x)
\end{verbatim}
\postverbatim

以下のコマンドはあいまいです。先頭の範囲 [0:10] は、多分最初の関数の標
本化のみに向けたのだと思いますが、実際には、グラフ全体に適用され、事前
の xrange の定義も無視されてしまいます:
\preverbatim
\begin{verbatim}
     set xrange [0:50]
     plot [0:10] f(x), [10:20] g(x), [20:30] h(x)
\end{verbatim}
\postverbatim

上の例のあいまいさを除くためには、キーワード {\bf sample} を挿入することで
[0:10] が軸の範囲ではなく標本範囲であることを指示するか、または範囲指
定内に 2 番目のコロンに続く標本増分フィールドを追加することです。後者
は、軸範囲としては完全な範囲指定 [min:max:increment] は解釈されないた
めに機能します。増分フィールドが空の場合は、増分はデフォルトの
(max-min) を標本点数で割った値となり、よって以下の 3 つの変種は同じ結
果を生じます。
\preverbatim
\begin{verbatim}
     set samples 100
     plot sample [0:10]     f(x), [10:20] g(x), [20:30] h(x)
     plot        [0:10:0.1] f(x), [10:20] g(x), [20:30] h(x)
     plot        [0:10:]    f(x), [10:20] g(x), [20:30] h(x)
\end{verbatim}
\postverbatim

以下の例は、3 次元グラフにらせんの曲線を描く一つの方法を提示します:
\preverbatim
\begin{verbatim}
     set xrange [-2:2]; set yrange [-2:2]
     set angle degrees
     splot [phi=1:720:2] '+' using (cos(phi)):(sin(phi)):(phi)
\end{verbatim}
\postverbatim

\subsubsection*{2 次元のサンプリング (u と v 軸) (2D sampling)}
\addcontentsline{toc}{subsubsection}{2 次元のサンプリング (u と v 軸) (2D sampling)}
\label{sampling 2D}%
\label{plot sampling 2D}%
計算する関数や疑似ファイル '++' に対して生成するデータは、u, v 軸に沿
って標本化 (サンプリング) を行います。以下参照: {\bf special-filenames ++ (p.~\pageref{special-filenames ++})\index{++}}。
2 次元のサンプリングは {\bf plot}, {\bf splot} コマンドで使用できます。

以下は、2 次元の {\bf plot} コマンドに対する 2 次元サンプリングの例です。
これは、描画スタイル {\bf with vectors} で表示されるグラフを生成します。
以下参照: {\bf vectors (p.~\pageref{vectors})\index{vectors}}。
\preverbatim
\begin{verbatim}
    set urange [ -2.0 : 2.0 ]
    set vrange [ -2.0 : 2.0 ]
    plot '++' using ($1):($2):($2*0.4):(-$1*0.4) with vectors
\end{verbatim}
\postverbatim

以下は 3 次元の {\bf splot} コマンドに対する 2 次元サンプリングの例です。
これは、{\bf sampling.dem} で使用されているものに似たコマンド列です。この
2 つの曲面は、生成されるグラフの範囲全体よりも狭い u, v の範囲で標本
化を行うことに注意してください。
\preverbatim
\begin{verbatim}
    set title "3D sampling range distinct from plot x/y range"
    set xrange [1:100]
    set yrange [1:100]
    splot sample [u=30:70][v=0:50] '++' using 1:2:(u*v) lt 3, \
          [u=40:80][v=30:60] '++' using (u):(v):(u*sqrt(v)) lt 4
\end{verbatim}
\postverbatim

u, v のサンプリングの範囲指定には、サンプリングデータの数とスペースを
制御する、明示的なサンプリング間隔を入れることもできます:
\preverbatim
\begin{verbatim}
    splot [u=30:70:1][v=0:50:5] '++' using 1:2:(func($1,$2))
\end{verbatim}
\postverbatim

\subsection*{Plot コマンドの for ループ (for loops in plot command)}
\addcontentsline{toc}{subsection}{Plot コマンドの for ループ (for loops in plot command)}
\label{commands plot for}%
\label{commands splot for}%
\label{plot for}%
\label{splot for}%
\label{for loops}%
\index{iteration}%
多くの同等のファイルや関数を同時に描画する場合は、それぞれの plot コマ
ンドの繰り返し (iteration) でそれを行うのが便利です。

書式:
\preverbatim
\begin{verbatim}
     plot for [<variable> = <start> : <end> {:<increment>}]
     plot for [<variable> in "string of words"]
     plot for [<variable> in Array]
\end{verbatim}
\postverbatim

繰り返しの適用範囲 (scope) は、次のコンマ (,) かコマンドの終わり、のい
ずれか先に現れたところまでです。ただし、描画する項目の前に定義式 (複数
も可) が並んでいる場合は、コンマが間に入っていてもその例外となります。
繰り返しは媒介変数モード (parametric) では機能しないことに注意してくだ
さい。

例:
\preverbatim
\begin{verbatim}
     plot for [j=1:3] sin(j*x)
\end{verbatim}
\postverbatim

例:
\preverbatim
\begin{verbatim}
     plot for [dataset in "apples bananas"] dataset."dat" title dataset
\end{verbatim}
\postverbatim

この例では、繰り返しはファイル名と対応するタイトルの生成の両方で使われ
ています。

例:
\preverbatim
\begin{verbatim}
     file(n) = sprintf("dataset_%d.dat",n)
     splot for [i=1:10] file(i) title sprintf("dataset %d",i)
\end{verbatim}
\postverbatim

この例は、ファイル名で生成される文字列値関数を定義し、そのような 10 個
のファイルを同時に描画します。繰り返しの変数 (この例では 'i') は一つの
整数として扱われ、それを 2 度以上使用できます。

例:
\preverbatim
\begin{verbatim}
     set key left
     plot for [n=1:4] x**n sprintf("%d",n)
\end{verbatim}
\postverbatim

この例は、関数の組を描画します。

例:
\preverbatim
\begin{verbatim}
     list = "apple banana cabbage daikon eggplant"
     item(n) = word(list,n)
     plot for [i=1:words(list)] item(i).".dat" title item(i)
     list = "new stuff"
     replot
\end{verbatim}
\postverbatim

この例では、リストに従って各ステップが進行し、その各項目に対して一つの
描画が行われます。この各項目は動的に取得されますので、そのリストを変更
し、そのまま replot することができます。

例:
\preverbatim
\begin{verbatim}
     list = "apple banana cabbage daikon eggplant"
     plot for [i in list] i.".dat" title i
     list = "new stuff"
     replot
\end{verbatim}
\postverbatim

この例は、整数の繰り返し変数ではなく、文字列の繰り返し変数形式を用いて
いること以外は前の例と全く同じです。

$<$end$>$ の整数の代わりに記号 * を使用すれば、繰り返しはすべての有効なデ
ータがなくなるまでの繰り返しとなります。これは、各行に含まれるすべての
列の処理、あるいはファイル内のすべてのデータセット (2 行の空行で区切ら
れる) の処理、指定に当てはまるすべてのファイルなどを一度に処理するのに
便利です。

例:
\preverbatim
\begin{verbatim}
     plot for [file in "A.dat B.dat"] for [column=2:*] file using 1:column
     splot for [i=0:*] 'datafile' index i using 1:2:3 with lines
     plot for [i=1:*] file=sprintf("File_%03d.dat",i) file using 2 title file
\end{verbatim}
\postverbatim

警告:
この最初の例のように、繰り返しはかっこなしの形でも入れ子にできます。し
かしかっこのない繰り返しを他のかっこのない繰り返しの中に入れ子にするの
多分有益ではありません。それは、データが見つからなかった場合に両者が同
時に終了してしまうからです。gnuplot はこれが起きると警告を発します。

\subsection*{Title}
\addcontentsline{toc}{subsection}{Title}
\label{commands plot title}%
\label{commands splot title}%
\label{plot title}%
\label{splot title}%
\label{columnheader}%
\index{columnheader}%
デフォルトでは各曲線は、対応する関数やファイル名でキーの中に一覧表示さ
れますが、plot のオプション {\bf title} を使うことで、明示的なタイトルを与
えることもできます。

書式:
\preverbatim
\begin{verbatim}
     title <text> | notitle [<ignored text>]
     title columnheader | title columnheader(N)
           {at {beginning|end}} {{no}enhanced}
\end{verbatim}
\postverbatim

ここで $<$text$>$ は、引用符で囲まれた文字列か、文字列と評価される式のいず
れかです。引用符はキーには表示されません。

入力データの列の最初の項目 (すなわち列の先頭) を文字列フィールドと解釈
し、それをキータイトルとして利用するオプションもあります。以下参照:
{\bf datastrings (p.~\pageref{datastrings})\index{datastrings}}。これは、{\bf set key autotitle columnhead} を指定すればデフ
ォルトの挙動となります。

曲線タイトルとサンプルは予約語 {\bf notitle} を使うことでキーから削除でき
ます。何もないタイトル ({\bf title {'\,'}}) は {\bf notitle} と同じ意味を持ちます。
サンプルだけが欲しいときは、一つ以上の空白をタイトルの後ろに入れてく
ださい ({\bf tilte ' '})。{\bf notilte} の後ろに文字列をつけた場合、その文字列
は無視されます。

{\bf key autotitles} が設定されて (デフォルト)、かつ {\bf title} も {\bf notitle}
も指定されなかった場合、曲線のタイトルは {\bf plot} コマンド上にある関数名
かデータファイル名になります。ファイル名の場合は、指定される任意のデー
タファイル修飾子もそのデフォルトタイトルに含まれます。

位置やタイトルの位置揃えなどの凡例のレイアウトは、{\bf set key} で制御でき
ます。

キーワード {\bf at} により、曲線のタイトルを、自動的に作られる key の箱の
外にでも置くことができるようになります。{\bf at \{beginning$|$end\}} を使用し
た場合は、曲線のタイトルをグラフの曲線自身の直前、あるいは直後に置きま
す。このオプションは、{\bf with lines} で描画する場合は有用ですが、他の描
画スタイルでは無意味です。

{\bf at $<$x-position$>$,$<$y-position$>$} の形式を使用すれば、曲線のタイトルをペ
ージ内の任意の位置に置くことができます。デフォルトでは、その位置指定は
スクリーン座標と解釈します。例えば {\bf at 0.5, 0.5} は、グラフの軸に縮尺
や境界には関係なく、常にスクリーンのど真ん中を意味します。この方法で配
置するタイトルの書式は、key のオプション指定の影響を受けます。以下参照:
{\bf set key (p.~\pageref{set key})\index{key}}。

例:

以下は y=x をタイトル 'x' で表示します:
\preverbatim
\begin{verbatim}
     plot x
\end{verbatim}
\postverbatim

以下は、x の 2 乗をタイトル {\tt"}x\verb+^+2{\tt"} で、ファイル {\tt"}data.1{\tt"} をタイトル
{\tt"}measured data{\tt"} で表示します:
\preverbatim
\begin{verbatim}
     plot x**2 title "x^2", 'data.1' t "measured data"
\end{verbatim}
\postverbatim

以下は、ファイルの先頭行の各列にタイトルを含む複数列のデータを描画しま
す。各タイトルは、独立した凡例ではなく、対応する曲線の後ろに置きます:
\preverbatim
\begin{verbatim}
     unset key
     set offset 0, graph 0.1
     plot for [i=1:4] 'data' using i with lines title columnhead at end
\end{verbatim}
\postverbatim

以下は、2 つの別々のグラフの key の場所を 1 箇所にします:
\preverbatim
\begin{verbatim}
     set key Left reverse
     set multiplot layout 2,2
     plot sin(x) with points pt 6 title "Left plot is sin(x)" at 0.5, 0.30
     plot cos(x) with points pt 7 title "Right plot is cos(x)" at 0.5, 0.27
     unset multiplot
\end{verbatim}
\postverbatim

\subsection*{With}
\addcontentsline{toc}{subsection}{With}
\label{commands plot with}%
\label{commands splot with}%
\label{commands plot style}%
\label{commands splot style}%
\label{plot with}%
\label{plot style}%
\label{splot with}%
\label{splot style}%
\label{style}%
\index{style}%
\label{with}%
\index{with}%
関数やデータの表示にはたくさんのスタイルのうちの一つを使うことができます。
キーワード {\bf with} がその選択のために用意されています。

書式:
\preverbatim
\begin{verbatim}
     with <style> { {linestyle | ls <line_style>}
                    | {{linetype  | lt <line_type>}
                       {linewidth | lw <line_width>}
                       {linecolor | lc <colorspec>}
                       {pointtype | pt <point_type>}
                       {pointsize | ps <point_size>}
                       {arrowstyle | as <arrowstyle_index>}
                       {fill | fs <fillstyle>} {fillcolor | fc <colorspec>}
                       {nohidden3d} {nocontours} {nosurface}
                       {palette}}
                  }
\end{verbatim}
\postverbatim


ここで、$<$style$>$ は以下のいずれか:
\preverbatim
\begin{verbatim}
    lines        dots       steps     vectors      yerrorlines
    points       impulses   fsteps    xerrorbar    xyerrorbars
    linespoints  labels     histeps   xerrorlines  xyerrorlines
    financebars  surface    arrows    yerrorbar    parallelaxes
\end{verbatim}
\postverbatim
または、
\preverbatim
\begin{verbatim}
    boxes         boxplot        ellipses       histograms  rgbalpha
    boxerrorbars  candlesticks   filledcurves   image       rgbimage
    boxxyerror    circles        fillsteps      pm3d        polygons
    isosurface    zerrorfill
\end{verbatim}
\postverbatim
または
\preverbatim
\begin{verbatim}
    table         mask
\end{verbatim}
\postverbatim

最初のグループのスタイルは、線、点、文字の属性を持ち、第 2 のグループ
のスタイルは、さらに塗り潰し属性も持っています。以下参照: {\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}}。
さらにサブスタイルを持つスタイルもあります。個々のスタイルの詳細につい
ては、以下参照: {\bf plotting styles (p.~\pageref{plotting styles})\index{styles}}。
最後の特別なスタイル 2 つは、すぐに描画するものではありません。以下
参照: {\bf set table (p.~\pageref{set table})\index{table}}, {\bf with mask (p.~\pageref{with mask})\index{mask}}。スタイル {\bf table} は、表形式の出力をテ
キストファイルかデータブロックの形で生成します。スタイルが {\bf with mask}
である plot コマンドの要素は、多角形領域の集合を定義し、それはその
plot コマンドのその後に続く要素をマスクするのに使えます。

デフォルトのスタイルは、{\bf set style function} と {\bf set style data} で選
択できます。

デフォルトでは、それぞれの関数やデータファイルは、使うことができる型の
最大数に達するまで異なる線種、点種を使います。すべての端末用ドライバは
最低 6 つの異なる点種をサポートしていて、もしたくさん要求された場合、
それらを順に再利用していきます。使用中の出力形式での線種、点種の集合全
体を見たければ、{\bf test} としてください。

一つの描画で線種や点種を選びたいならば、$<$line\_type$>$ や $<$point\_type$>$ を
指定してください。これらの値は、その描画で使われる線種や点種を指定する
正の整定数 (または数式) です。使用する端末で使える線種、点種を表示する
には {\bf test} コマンドを使ってください。

描画の線の幅や点の大きさは $<$line\_width$>$ や $<$point\_size$>$ で変更できます。
これらはその各々の端末のデフォルトの値に対する相対的な値として指定しま
す。点の大きさは全体に通用するように変更できます。詳細は、以下参照:
{\bf set pointsize (p.~\pageref{set pointsize})\index{pointsize}}。しかし、ここでセットされる $<$point\_size$>$ と、
{\bf set pointsize} でセットされる大きさは、いずれもデフォルトのポイントサ
イズに掛けられることに注意してください。すなわち、それらの効果は累積は
しません。例えば、{\bf set pointsize 2; plot x with points ps 3} は、デフ
ォルトのサイズの 3 倍であって、6 倍ではありません。

ラインスタイルの一部分、あるいは各 plot において {\bf pointsize variable}
という指定も可能です。この場合、入力には追加の 1 列が要求されます。例
えば 2D 描画では 3 列、3D 描画では 4 列のデータが必要になります。個々
の点のサイズは、全体を通しての pointsize に、データファイルからの入力
による値をかけたものとして決定されます。

{\bf set style line} を使って線種/線幅、点種/点幅の組を定義すれば、そのス
タイルの番号を $<$line\_style$>$ にセットすることでそれらを使うことができま
す。

2 次元、3 次元両方の描画で ({\bf plot} と {\bf splot} コマンド)、事前にコマン
ド {\bf set palette} で設定した滑らかなパレットからの色を使えます。色の値
は、点の z 座標の値か、または {\bf using} によるオプションの追加列で与える
個別の色座標に対応します。色の値は、小数値 ({\bf palette frac}) か、または
カラーボックスの範囲へ対応づけられた座標値 ({\bf palette} か {\bf palette z})
のいずれかで指定できます。以下参照: {\bf colorspec (p.~\pageref{colorspec})\index{colorspec}}, {\bf set palette (p.~\pageref{set palette})\index{palette}},
{\bf linetypes (p.~\pageref{linetypes})\index{linetypes}}。

キーワード {\bf nohidden3d} は、{\bf splot} コマンドで生成される描画にのみ適用
されます。通常、グローバルなオプション {\bf set hidden3d} はグラフ上の全て
の描画に適用されますが、各々の描画に {\bf nohidden3d} オプションをつけるこ
とで、それを hidden3d の処理から除外することができます。{\bf nohidden3d}
がマークされた曲面以外の個々の描画要素 (線分、点、ラベル等) は、通常は
他の何らかの描画要素で隠されてしまう場合も全て描画されます。

同様に、キーワード {\bf nocontours} は、グローバルに {\bf set contour} 指定が
有効な場合でも、個別の plot に対する等高線描画機能をオフにします。

同様に、キーワード {\bf nosurface} は、グローバルに {\bf set surface} 指定が有
効な場合でも、個別の plot に対する 3 次元曲面描画をオフにします。

キーワードは暗示するような形で省略可能です。

{\bf linewidth}, {\bf pointsize}, {\bf palette} オプションは全ての端末装置でサポー
トされているわけではないことに注意してください。

例:

以下は、sin(x) を鉛直線で描画します:
\preverbatim
\begin{verbatim}
     plot sin(x) with impulses
\end{verbatim}
\postverbatim

以下は、x を点で描画し、x**2 をデフォルトの方式で描画します:
\preverbatim
\begin{verbatim}
     plot x w points, x**2
\end{verbatim}
\postverbatim

以下は、tan(x) を関数のデフォルトの方式で、{\tt"}data.1{\tt"} を折れ線で描画します:
\preverbatim
\begin{verbatim}
     plot tan(x), 'data.1' with l
\end{verbatim}
\postverbatim

以下は、{\tt"}leastsq.dat{\tt"} を鉛直線で描画します:
\preverbatim
\begin{verbatim}
     plot 'leastsq.dat' w i
\end{verbatim}
\postverbatim

以下は、データファイル {\tt"}population{\tt"} を矩形で描画します:
\preverbatim
\begin{verbatim}
     plot 'population' with boxes
\end{verbatim}
\postverbatim

以下は、{\tt"}exper.dat{\tt"} をエラーバー付きの折れ線で描画します (エラーバーは
3 列、あるいは 4 列のデータを必要とします):
\preverbatim
\begin{verbatim}
     plot 'exper.dat' w lines, 'exper.dat' notitle w errorbars
\end{verbatim}
\postverbatim

もう一つの {\tt"}exper.dat{\tt"} のエラーバー付きの折れ線 (errorlines) での描画
方法 (エラーバーは 3 列、あるいは 4 列のデータが必要):
\preverbatim
\begin{verbatim}
     plot 'exper.dat' w errorlines
\end{verbatim}
\postverbatim

以下は、sin(x) と cos(x) をマーカー付きの折れ線で描画します。折れ線は
同じ線種ですが、マーカーは異なったものを使います:
\preverbatim
\begin{verbatim}
     plot sin(x) with linesp lt 1 pt 3, cos(x) with linesp lt 1 pt 4
\end{verbatim}
\postverbatim

以下は、{\tt"}data{\tt"} を点種 3 で、点の大きさを通常の 2 倍で描画します:
\preverbatim
\begin{verbatim}
     plot 'data' with points pointtype 3 pointsize 2
\end{verbatim}
\postverbatim

以下は、{\tt"}data{\tt"} を描画しますが、4 列目から読んだデータを pointsize の値
として使用します:
\preverbatim
\begin{verbatim}
     plot 'data' using 1:2:4 with points pt 5 pointsize variable
\end{verbatim}
\postverbatim

以下は、2 つのデータ集合に対して、幅のみ異なる線を用いて描画します:
\preverbatim
\begin{verbatim}
     plot 'd1' t "good" w l lt 2 lw 3, 'd2' t "bad" w l lt 2 lw 1
\end{verbatim}
\postverbatim

以下は、x*x の曲線の内部の塗りつぶしと色の帯を描画します:
\preverbatim
\begin{verbatim}
     plot x*x with filledcurve closed, 40 with filledcurve y=10
\end{verbatim}
\postverbatim

以下は、x*x の曲線と色の箱を描画します:
\preverbatim
\begin{verbatim}
     plot x*x, (x>=-5 && x<=5 ? 40 : 1/0) with filledcurve y=10 lt 8
\end{verbatim}
\postverbatim

以下は、滑らかに変化する色の線で曲面を描画します:
\preverbatim
\begin{verbatim}
     splot x*x-y*y with line palette
\end{verbatim}
\postverbatim

以下は、2 つの色のついた曲面を、異なる高さで表示します:
\preverbatim
\begin{verbatim}
     splot x*x-y*y with pm3d, x*x+y*y with pm3d at t
\end{verbatim}
\postverbatim

\section*{Print}
\addcontentsline{toc}{section}{Print}
\label{commands print}%
\label{print}%
\index{print}%
\preverbatim
\begin{verbatim}
書式:
      print <式> {, <式>, ...}
\end{verbatim}
\postverbatim

{\bf print} コマンドは、1 つ、または複数の式の値を出力します。出力は、コマ
ンド {\bf set print} でリダイレクトされていない限り、画面へ行われます。以
下参照: {\bf expressions (p.~\pageref{expressions})\index{expressions}}。以下も参照: {\bf printerr (p.~\pageref{printerr})\index{printerr}}。

$<$式$>$ は、gnuplot で有効な任意の式で、数値でも、文字列定数でも、数字や
文字列を返す関数でも、配列でも、または変数名でも入れることができます。
データブロックを出力することも可能です。{\bf print} に sprintf や gprintf
関数を組み合わせて、さらに柔軟な書式の出力を行うことも可能です。

print コマンド内で繰り返しを使うことで、単一行に複数の値を入れることも
可能です。

例:
\preverbatim
\begin{verbatim}
    print 123 + 456
    print sinh(pi/2)
    print "rms of residuals (FIT_STDFIT) is ", FIT_STDFIT
    print sprintf("rms of residuals is %.3f after fit", FIT_STDFIT)
    print "Array A: ", A
    print "Individual elements of array A: ", for [i=1:|A|] A[i]
    print $DATA
\end{verbatim}
\postverbatim

\section*{Printerr}
\addcontentsline{toc}{section}{Printerr}
\label{commands printerr}%
\label{printerr}%
\index{printerr}%
{\bf printerr} は {\bf print} コマンドとほぼ同じですが、その前の {\bf set print}
コマンドの効果が続いている状態でも出力を常に stderr に送るところだけが
違います。
その出力に現在のファイル名 (または関数ブロック名) と行番号を入れたい場
合は、代わりにコマンド {\bf warn} を使用してください。
\section*{Pwd}
\addcontentsline{toc}{section}{Pwd}
\label{commands pwd}%
\label{pwd}%
\index{pwd}%
{\bf pwd} コマンドはカレントディレクトリの名前を画面に表示します。

カレントディレクトリを文字列変数に保存したり、文字式の中で使いたい場合
は、変数 GPVAL\_PWD を使うことができることに注意してください。以下参照:
{\bf show variables all (p.~\pageref{show variables all})\index{all}}。
\section*{Quit}
\addcontentsline{toc}{section}{Quit}
\label{commands quit}%
\label{quit}%
\index{quit}%
{\bf quit} は、コマンド {\bf exit} と同義です。以下参照: {\bf exit (p.~\pageref{exit})\index{exit}}。
\section*{Raise}
\addcontentsline{toc}{section}{Raise}
\label{commands raise}%
\label{commands lower}%
\label{raise}%
\index{raise}%
\label{lower}%
\index{lower}%
書式:
\preverbatim
\begin{verbatim}
     raise {plot_window_id}
     lower {plot_window_id}
\end{verbatim}
\postverbatim

コマンド {\bf raise} と {\bf lower} は、出力形式のいくつかにしか機能せず、そし
てあなたが使用するウィンドウマネージャや表示優先機能の設定にも依存する
可能性があります。
\preverbatim
\begin{verbatim}
     set term wxt 123     # 最初の描画ウィンドウを生成
     plot $FOO
     lower                # 存在する描画ウィンドウのみを下に
     set term wxt 456     # 2 つ目を生成 (1 つ目の上にかぶる)
     plot $BAZ
     raise 123            # 1 つ目の描画ウィンドウを上に
\end{verbatim}
\postverbatim
これらのコマンドは、あまり当てにならないと思ってください。
\section*{Refresh}
\addcontentsline{toc}{section}{Refresh}
\label{commands refresh}%
\label{refresh}%
\index{refresh}%
コマンド {\bf refresh} は、{\bf replot} に似ていますが、主に 2 つの点で違いが
あります。{\bf refresh} は、既に読み込んだデータを用いて、現在の描画を再整
形し再描画します。これは、{\bf refresh} を (疑似デバイス '-' からの) イン
ラインデータの描画、および内容が変化しうるデータファイルからの描画に使
えるということを意味します。ただし、コマンド {\bf refresh} は、既に存在す
る描画に新しいデータを追加するのには使えません。

マウス操作、特にズームインとズームアウトでは、適切な場合は {\bf replot} の
代わりにむしろ {\bf refresh} を使用します。例:

\preverbatim
\begin{verbatim}
     plot 'datafile' volatile with lines, '-' with labels
     100 200 "Special point"
     e
     # 色んなマウス操作をここで実行
     set title "Zoomed in view"
     set term post
     set output 'zoom.ps'
     refresh
\end{verbatim}
\postverbatim

\section*{Remultiplot}
\addcontentsline{toc}{section}{Remultiplot}
\label{commands remultiplot}%
\label{remultiplot}%
\index{remultiplot}%
{\bf remultiplot} は、直前の multiplot を生成した際に名前付きデータブロッ
ク \$GPAL\_LAST\_MULTIPLOT に前に保存したコマンド列を再実行します。以下
参照: {\bf new multiplots (p.~\pageref{new multiplots})\index{multiplots}}。

試験段階: 直前の plot コマンドが完了済みの multiplot の一部であれば、
{\bf replot} は暗黙に {\bf remultiplot} を呼び出します。
{\bf set mouse multiplot} が有効であれば、視線移動/拡大などのマウス操作で
も {\bf remultiplot} を呼び出します。

\section*{Replot}
\addcontentsline{toc}{section}{Replot}
\label{commands replot}%
\label{replot}%
\index{replot}%
{\bf replot} コマンドを引数なしで実行すると、最後に実行した {\bf plot} または
{\bf splot} コマンドを再実行します。これは、あるプロットを異なる {\bf set} オ
プションでみたり、同じプロットを異なる装置に出力したりするときに便利
でしょう。

{\bf replot} コマンドに対する引数は最後に実行した {\bf plot} または {\bf splot}
コマンドの引数に (暗黙の ',' と共に) 追加され、それから再実行されます。
{\bf replot} は、範囲 (range) を除いては、{\bf plot} や {\bf splot} と同じ引数を
とることができます。よって、直前のコマンドが {\bf splot} ではなく {\bf plot}
の場合は、関数をもう一つの軸刻みでプロットするのに {\bf replot} を使うこと
ができます。

注意:

\preverbatim
\begin{verbatim}
     plot '-' ; ... ; replot
\end{verbatim}
\postverbatim

は推奨されません。それは、これがあなたに再び同じデータすべての入力を要
求することになるからです。たいていの場合、代わりにコマンド {\bf refresh}
を使えます。これは、以前に読み込んだデータを使ってグラフを再描画します。

最後に実行した {\bf plot} ({\bf splot}) コマンドの内容を修正する方法については
以下も参照: {\bf command-line-editing (p.~\pageref{command-line-editing})\index{command-line-editing}}。

直前の描画コマンドの全体を表示させることや、それを {\bf history} の中に
コピーする方法については、以下も参照: {\bf show plot (p.~\pageref{show plot})\index{plot}}。

以前の gnuplot の版では、multiplot 全体は再描画できず、{\bf replot} コマン
ドはそのうち最後の plot 要素しか再生成しませんでした。gnuplot バージョ
ン 6 では、multiplot を生成するのに使用したコマンドをデータブロック
\$GPVAL\_LAST\_MULTIPLOT に保存し、それは新しいコマンド {\bf remultiplot} を
使って multiplot 全体を再生成するのに再実行できます。

試験段階 (詳細は今後の gnuplot の版で変更の可能性あり):
直前に書いたグラフが multiplot の一部だった場合、{\bf replot} コマンドは現
在は自動的に {\bf remultiplot} として扱います。いくつかの注意事項がありま
す。以下参照: {\bf new multiplots (p.~\pageref{new multiplots})\index{multiplots}}, {\bf remultiplot (p.~\pageref{remultiplot})\index{remultiplot}}。

\section*{Reread}
\addcontentsline{toc}{section}{Reread}
\label{commands reread}%
\label{reread}%
\index{reread}%
[バージョン 5.4 では非推奨]

明示的な繰り返し (iteration) を支持し、このコマンドは非推奨とします。
以下参照: {\bf iterate (p.~\pageref{iterate})\index{iterate}}。
{\bf reread} コマンドは、{\bf load} コマンドで指定した {\bf gnuplot} の入力ファイ
ルからの実行を、直ちにそのファイルの先頭から再開します。これは、ファイ
ルの最初から {\bf reread} コマンドまでのコマンドの無限ループを本質的に実装
していることになります。標準入力からの入力の際は、{\bf reread} コマンドは
何の効力も持ちません。
\section*{Reset}
\addcontentsline{toc}{section}{Reset}
\label{commands reset}%
\label{reset}%
\index{reset}%
\preverbatim
\begin{verbatim}
    reset {bind | errors | session}
\end{verbatim}
\postverbatim

コマンド {\bf reset} は、{\bf set} コマンドで定義できる、グラフに関する全ての
オプションをデフォルトの値に戻します。このコマンドは、load したコマン
ドファイルを実行した後でデフォルトの設定を復帰したり、設定をたくさん変
更した後で元の状態に戻したいときなどに便利です。

以下のものは、{\bf reset} の影響を受けません:
\preverbatim
\begin{verbatim}
    `set term` `set output` `set loadpath` `set linetype` `set fit`
    `set encoding` `set decimalsign` `set locale` `set psdir`
    `set overflow` `set multiplot`
\end{verbatim}
\postverbatim

{\bf reset} は、必ずしもプログラム立ち上がった初期状態には戻さないことに注
意してください。それは、初期設定ファイル gnuplotrc や \$HOME/.gnuplot、
\$XDG\_CONFIG\_HOME/gnuplot/gnuplotrc 内のコマンドでデフォルトの値を変更
した場合は、それもリセットされてしまうからです。しかし {\bf reset session}
とすれば、それらのコマンドも再実行します。

\label{reset session}%
\index{session}%
{\bf reset session} は、ユーザ定義変数、ユーザ定義関数すべてを削除し、デフ
ォルトの設定を復帰し、システム全体の初期設定ファイル gnuplotrc と個人
用の初期設ファイル \$HOME/.gnuplot、\$XDG\_CONFIG\_HOME/gnuplot/gnuplotrc
を再実行します。以下参照: {\bf initialization (p.~\pageref{initialization})\index{initialization}}。

\label{reset errors}%
\index{error state}%
{\bf reset errors} は、エラー状態変数 GPVAL\_ERRNO と GPVAL\_ERRMSG のみをク
リアします。

\label{reset bind}%
\index{bind}%
{\bf reset bind} は、キー定義をデフォルトの状態に復帰します。
\section*{Return}
\addcontentsline{toc}{section}{Return}
\label{commands return}%
\label{return}%
\index{return}%
書式:
\preverbatim
\begin{verbatim}
    return <expression>
\end{verbatim}
\postverbatim

コマンド {\bf return} は、 コマンド {\bf exit} や {\bf quit} が、現在のコードブロ
ックの実行や入力ストリームを終了するのと同じ方法で作用します。返り値は
関数ブロック内の実行コードの状況でのみ意味があります。以下参照:
{\bf function blocks (p.~\pageref{function blocks})\index{blocks}}。

例:
\preverbatim
\begin{verbatim}
    function $myfun << EOF
    local result = 0
    if (error-condition) { return -1 }
    ... body of function ...
    return result
    EOF
\end{verbatim}
\postverbatim
\section*{Save}
\addcontentsline{toc}{section}{Save}
\label{commands save}%
\label{save set}%
\label{save}%
\index{save}%
\label{save fit}%
\label{save changes}%
書式:
\preverbatim
\begin{verbatim}
     save  {functions | variables | terminal | set | fit | datablocks}
           '<filename>' {append}
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     save changes '<filename>' {append}
\end{verbatim}
\postverbatim

どれも指定しなかった場合は、{\bf gnuplot} は、ユーザ定義関数、ユーザ変数、
set で設定するオプション、一番最後に実行した {\bf plot} か {\bf splot} コマン
ドの全てを保存します。{\bf set term} と {\bf set output} の現在の状態は、コメ
ントとして書き出します。
保存ファイルには、gnuplot コマンドの列がテキスト形式で保存され、それは
コマンド {\bf load} の入力として使用できます。

{\bf save changes {\tt"}savefile.gp{\tt"}} は、gnuplot セッションの開始時のプログラ
ムの状態から変更された関数、変数、設定のみを書き出します。これは、
{\bf reset session; load {\tt"}savefile.gp{\tt"}} で現在のグラフとプログラムの状態を
再生するのに十分な、とても短い出力を作成します。このコマンドはすべての
システムでサポートしているわけではなく、あなたの gnuplot では利用でき
ないかもしれません。

{\bf save terminal} は、{\bf terminal} の状態を、コメント記号をつけずに書き出
します。これは主に、ちょっとの間だけ {\bf terminal} の設定を入れ替え、その
後保存しておいた {\bf terminal} の状態を読み込むことで以前の terminal の設
定に戻す場合などに役立ちます。ただ、単一の gnuplot セッションでは、現
在の terminal を保存/復元する他の方法であるコマンド {\bf set term push} と
{\bf set term pop} を使う方がむしろいいかもしれません。以下参照:
{\bf set term (p.~\pageref{set term})\index{term}}。

{\bf save variables} は、すべてのユーザ変数を書き出しますが、データブロッ
クと内部変数 GPVAL\_* GPFUN\_* MOUSE\_* ARG* は書き出しません。

{\bf save fit} は、直近の {\bf fit} コマンドで使用した変数のみを保存します。そ
の保存ファイルは、後で {\bf via} キーワードを使うことで fit コマンドの初期
化用のパラメータファイルとして利用できます。

ファイル名は引用符に囲われていなければなりません。

特別なファイル名 {\tt"}-{\tt"} により {\bf save} コマンドに標準出力に出力させること
ができます。popen 関数をサポートするようなシステム (Unix など) では、
save の出力をパイプ経由で他の外部プログラムに渡すことができます。その
場合、ファイル名としてコマンド名の先頭に '$|$' をつけたものを使います。
これは、{\bf gnuplot} とパイプを通して通信するプログラムに、{\bf gnuplot} の内
部設定に関する首尾一貫したインターフェースを提供します。詳細は、以下
参照: {\bf batch/interactive (p.~\pageref{batch/interactive})\index{batch/interactive}}。

例:
\preverbatim
\begin{verbatim}
     save 'work.gnu'
     save functions 'func.dat'
     save var 'state.dat'; save datablocks 'state.dat' append
     save set 'options.dat'
     save term 'myterm.gnu'
     save '-'
     save '|grep title >t.gp'
\end{verbatim}
\postverbatim
\section*{Set-show}
\addcontentsline{toc}{section}{Set-show}
\label{commands set}%
\label{commands show}%
\label{set}%
\index{set}%
\label{show}%
\index{show}%
\label{show all}%
{\bf set} コマンドは実に多くのオプションを設定するのに使われます。しかし、
{\bf plot}, {\bf splot}, {\bf replot} コマンドが与えられるまで何のグラフも描きませ
ん。

そのほとんどのオプションに対して、コマンド {\bf show} がそれに対応する現在
の設定を表示します。{\bf show palette} や {\bf show colornames} などのごく少数
のコマンドのみ、個別に説明しています。

{\bf set} コマンドで変更されたオプションは、それに対応する {\bf unset} コマン
ドを実行することでデフォルトの状態に戻すことができます。以下も参照:
{\bf reset (p.~\pageref{reset})\index{reset}}。これは全てのパラメータの設定をデフォルトの値に戻します。

\index{iteration}%
{\bf set} と {\bf unset} コマンドには繰り返し節も利用できます。以下参照:
{\bf plot for (p.~\pageref{plot for})\index{for}}。

\subsection*{角の単位 (angles)}
\addcontentsline{toc}{subsection}{角の単位 (angles)}
\label{commands set angles}%
\label{commands show angles}%
\label{set angles}%
\label{show angles}%
\label{angles}%
\index{angles}%
\label{commands set angles degrees}%
\label{set angles degrees}%
\label{angles degrees}%
\label{degrees}%
\index{degrees}%
デフォルトでは {\bf gnuplot} は極座標グラフの独立変数の単位はラジアンを仮定
します。{\bf set polar} の前に {\bf set angles degrees} を指定すると、その単位
は度になり、デフォルトの範囲は [0:360] となります。これはデータファイル
の描画で特に便利でしょう。角度の設定は、{\bf set mapping} コマンドを設定す
ることにより 3 次元でも有効です。

書式:
\preverbatim
\begin{verbatim}
     set angles {degrees | radians}
     show angles
\end{verbatim}
\postverbatim

{\bf set grid polar} で指定される角度も、{\bf set angles} で指定した単位で読まれ
表示されます。

{\bf set angles} は組み込み関数 sin(x), cos(x), tan(x) の引数や asin(x),
acos(x), atan8x), atan2(x), arg(x) の出力にも影響を与えます。双曲線関
数や、ベッセル関数の引数には影響を与えません。しかし、複素数を引数とす
る逆双曲線関数の出力には影響が出ます。それらの関数が使われるときは、
{\bf set angles radians} は入出力の引数の間に一貫性を持った管理を実現して
いなければなりません。

\preverbatim
\begin{verbatim}
     x={1.0,0.1}
     set angles radians
     y=sinh(x)
     print y         #{1.16933, 0.154051} と表示
     print asinh(y)  #{1.0, 0.1} と表示
\end{verbatim}
\postverbatim
しかし、
\preverbatim
\begin{verbatim}
     set angles degrees
     y=sinh(x)
     print y         #{1.16933, 0.154051} と表示
     print asinh(y)  #{57.29578, 5.729578} と表示
\end{verbatim}
\postverbatim
以下も参照
\href{http://www.gnuplot.info/demo/poldat.html}{\tt poldat.dem: {\bf set angles} を用いた極座標描画のデモ
}

\subsection*{矢印 (arrow)}
\addcontentsline{toc}{subsection}{矢印 (arrow)}
\label{commands set arrow}%
\label{commands unset arrow}%
\label{commands show arrow}%
\label{set arrow}%
\label{unset arrow}%
\label{show arrow}%
\label{arrow}%
\index{arrow}%
\label{noarrow}%
\index{noarrow}%
{\bf set arrow} コマンドを使うことにより、グラフ上の任意の位置に矢印を表示
することができます。

書式:
\preverbatim
\begin{verbatim}
     set arrow {<tag>} from <position> to <position>
     set arrow {<tag>} from <position> rto <position>
     set arrow {<tag>} from <position> length <coord> angle <ang>
     set arrow <tag> arrowstyle | as <arrow_style>
     set arrow <tag> {nohead | head | backhead | heads}
                     {size <headlength>,<headangle>{,<backangle>}} {fixed}
                     {filled | empty | nofilled | noborder}
                     {front | back}
                     {linestyle | ls <line_style>}
                     {linetype | lt <line_type>}
                     {linewidth | lw <line_width>}
                     {linecolor | lc <colorspec>}
                     {dashtype | dt <dashtype>}
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     unset arrow {<tag>}
     show arrow {<tag>}
\end{verbatim}
\postverbatim

タグ $<$tag$>$ は各矢印を識別する整数です。タグを指定しない場合は、その時
点で未使用の最も小さい数が自動的に割り当てられます。タグを使うことで、
特定の矢印を変更したり、削除したりできます。既に存在する矢印の属性を変
更する場合は、タグを明示した {\bf set arrow} コマンドで変更したい属性を指
定してください。

矢印の最初の端点の位置は、常に {\tt"}from{\tt"} で指定しますが、もう一つの端点は
以下で説明する 3 つの異なる仕組みのいずれかで指定できます。$<$position$>$
は  x,y あるいは x,y,z で指定します。そしてその前に座標系を選択するた
めに {\bf first}, {\bf second}, {\bf graph}, {\bf screen}, {\bf character} を置くことがで
きます。座標を指定しなければデフォルトでは 0 と見なされます。詳細は以
下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。最初の端点に対する座標指定子は、2 番目の端点に
は影響しません。

1) {\tt"}to $<$position$>${\tt"} は、もう一つの端点の絶対座標を指定します。

2) {\tt"}rto $<$position$>${\tt"} は、{\tt"}from{\tt"} の位置からのずれを指定します。この場合、
線形軸 (非対数軸)、および {\bf graph}, {\bf screen} 座標に対しては、始点と終点
の距離が与えられた相対的な値に対応します。一方、対数軸に対しては、与え
られた相対的な値は、始点から終点への倍数に対応します。よって、対数軸の
場合、相対的な値として 0 や負の値を与えることは許されません。

3) {\tt"}length $<$coordinate$>$ angle $<$angle$>${\tt"} は、グラフ平面内での矢印の方向
を指定します。length には任意の座標系を適用できます。angle の単位は常
に度になっています。

矢印の他の属性も、あらかじめ定義した矢のスタイルで、またはコマンド
{\bf set arrow} でそれぞれ与えることが可能です。矢印の他の属性の詳細につい
ては以下参照: {\bf arrowstyle (p.~\pageref{arrowstyle})\index{arrowstyle}}。

例:

原点から (1,2) への矢印をユーザ定義済のラインスタイル 5 で描くには:
\preverbatim
\begin{verbatim}
     set arrow to 1,2 ls 5
\end{verbatim}
\postverbatim

描画領域の左下角から (-5,5,3) へタグ番号 3 の矢印を描くには:
\preverbatim
\begin{verbatim}
     set arrow 3 from graph 0,0 to -5,5,3
\end{verbatim}
\postverbatim

矢印の端を 1,1,1 に変更し、矢先を外して幅を 2 にするには:
\preverbatim
\begin{verbatim}
     set arrow 3 to 1,1,1 nohead lw 2
\end{verbatim}
\postverbatim

x=3 の所へグラフの下から上まで鉛直線を描くには:
\preverbatim
\begin{verbatim}
     set arrow from 3, graph 0 to 3, graph 1 nohead
\end{verbatim}
\postverbatim

T 字型の矢先を両端に持つ鉛直方向の矢を描くには:
\preverbatim
\begin{verbatim}
     set arrow 3 from 0,-5 to 0,5 heads size screen 0.1,90
\end{verbatim}
\postverbatim

始点からの相対的な距離をグラフ座標で与えて矢を描くには:
\preverbatim
\begin{verbatim}
     set arrow from 0,-5 rto graph 0.1,0.1
\end{verbatim}
\postverbatim

x の対数軸に相対的な終点を指定して矢を描く場合:
\preverbatim
\begin{verbatim}
     set logscale x
     set arrow from 100,-5 rto 10,10
\end{verbatim}
\postverbatim
これは 100,-5 から 1000,5 までの矢を描きます。線形軸 (y) に対しては相
対的な座標 10 が {\tt"}差 10{\tt"} を意味するのに対し、対数軸 (x) に対しては相対
的な座標 10 は {\tt"}倍数 10{\tt"} として働きます。

2 番の矢印を消すには:
\preverbatim
\begin{verbatim}
     unset arrow 2
\end{verbatim}
\postverbatim

全ての矢印を消すには:
\preverbatim
\begin{verbatim}
     unset arrow
\end{verbatim}
\postverbatim

全ての矢印の情報を (タグの順に) 見るには:
\preverbatim
\begin{verbatim}
     show arrow
\end{verbatim}
\postverbatim

\href{http://www.gnuplot.info/demo/arrowstyle.html}{\tt 矢印のデモ
}


\subsection*{自動縮尺 (autoscale)}
\addcontentsline{toc}{subsection}{自動縮尺 (autoscale)}
\label{commands set autoscale}%
\label{commands unset autoscale}%
\label{commands show autoscale}%
\label{set autoscale}%
\label{unset autoscale}%
\label{show autoscale}%
\label{autoscale}%
\index{autoscale}%
\label{noautoscale}%
\index{noautoscale}%
自動縮尺機能 (autoscale) は x, y, z の各軸に対して独立に、または一括し
て指定できます。デフォルトでは全ての軸に対して自動縮尺設定を行います。
図の中の一部の描画 ({\bf plot}) の組のみを autoscale したい場合は、除外す
るものの plot コマンドにフラグ {\bf noautoscale} をつければいいでしょう。
以下参照: {\bf datafile (p.~\pageref{datafile})\index{datafile}}。

書式:
\preverbatim
\begin{verbatim}
     set autoscale {<axis>{|min|max|fixmin|fixmax|fix} | fix | keepfix}
     set autoscale noextend
     unset autoscale {<axis>}
     show autoscale
\end{verbatim}
\postverbatim

ここで、$<$axis$>$ (軸) は {\bf x}, {\bf y}, {\bf z}, {\bf cb}, {\bf x2}, {\bf y2}, {\bf xy},
{\bf paxis $<$p$>$} のいずれかです。軸名の後ろに {\bf min} または {\bf max} を追加する
と、それは {\bf gnuplot} にその軸の最小値、または最大値のみを自動縮尺させ
ることになります。

軸名を指定しない場合は、全ての軸が自動縮尺の対象となります。

独立変数軸 ({\bf plot} のときは x 軸、{\bf splot} のときは x,y 軸) の自動縮尺
機能は、描画されるデータに合うようにそれらの軸の範囲を調整します。描画
が関数のみ (入力データなし) の場合、これらの軸の自動縮尺機能は、なんの
効果も持ちません。

従属変数軸 ({\bf plot} のときは y 軸、{\bf splot} のときは z 軸) の自動縮尺機
能は、描画されるデータや関数に合うようにそれらの軸の範囲を調整します。

軸の範囲の調整は、次の目盛り刻みへの延長を行うことがあります。例えば、
端のデータの座標が目盛り刻みに丁度一致する場合、データと描画境界との間
には何もないスペースができることになります。{\bf noextend} を使うことで、
この余計なスペースの作成を抑制できます。コマンド {\bf set offset} を使うこ
とで、それをより増やすこともできます。さらなる情報については、以下参照:
{\bf set xrange (p.~\pageref{set xrange})\index{xrange}}, {\bf set offsets (p.~\pageref{set offsets})\index{offsets}}。

媒介変数モード (parametric) でも自動縮尺機能は有効です (以下参照:
{\bf set parametric (p.~\pageref{set parametric})\index{parametric}})。この場合、より多くの従属変数があるので、x, y, z 各
軸に関して、より多くの制御が行われます。媒介変数モードでの独立変数 (仮
変数) は {\bf plot} では t で {\bf splot} では u, v です。そして媒介変数モード
では、自動縮尺機能は (t, u, v, x, y, z) の全ての描画範囲を制御し、x,
y, z の範囲の自動設定を完全に行います。

目盛りが第 2 の軸に表示され、しかもこれらの軸に対する描画が行われなか
った場合には、x2range と y2range は xrange と yrange の値を受け継ぎま
す。これは、範囲のずらしの実行や、範囲を整数個の目盛り幅に自動伸縮する
「前」に行いますので、場合によって予期しない結果をもたらす可能性があり
ます。これを避けるのに、第 2 軸の範囲を第 1 軸の範囲に明示的にリンク
(link) する方法があります。以下参照: {\bf set link (p.~\pageref{set link})\index{link}}。
\subsubsection*{Noextend}
\addcontentsline{toc}{subsubsection}{Noextend}
\label{set autoscale noextend}%
\label{set autoscale keepfix}%
\label{set autoscale fix}%
\label{autoscale noextend}%
\label{noextend}%
\index{noextend}%
\label{keepfix}%
\index{keepfix}%
\label{fix}%
\index{fix}%
\preverbatim
\begin{verbatim}
    set autoscale noextend
\end{verbatim}
\postverbatim

デフォルトでは、自動縮尺機能は軸の範囲の限界を、描画データ全体を含む、
最も近い目盛りラベル位置に設定します。キーワード {\bf fixmin}, {\bf fixmax},
{\bf fix}, {\bf noextend} は、次の目盛り位置までの範囲の自動拡大を gnuplot に
行わせないようにします。その場合軸の範囲の限界は、一番端にあるデータ点
の座標値に完全に一致します。{\bf set autoscale noextend} は、
{\bf set autscale fix} と同じです。軸の範囲指定コマンドの後ろにキーワード
{\bf noextend} を追加すれば、一つの軸の範囲の延長機能だけ無効にすることも
できます。例:
\preverbatim
\begin{verbatim}
    set yrange [0:*] noextend
\end{verbatim}
\postverbatim

{\bf set autoscale keepfix} は、fix の設定を変更せずに残したまま、すべての
軸を自動縮尺にします。

\subsubsection*{例 (examples)}
\addcontentsline{toc}{subsubsection}{例 (examples)}
\label{autoscale examples}%
\label{set autoscale examples}%
例:

以下は y 軸の自動縮尺機能を指定します (他の軸には影響を与えません):
\preverbatim
\begin{verbatim}
     set autoscale y
\end{verbatim}
\postverbatim

以下は y 軸の最小値に対してのみ自動縮尺機能を指定します (y 軸の最大値、
および他の軸には影響を与えません):
\preverbatim
\begin{verbatim}
     set autoscale ymin
\end{verbatim}
\postverbatim

以下は x2 軸の隣の目盛りへの自動範囲拡大機能を無効にし、よって描画デー
タ内、または関数に対する丁度の描画範囲を維持します:
\preverbatim
\begin{verbatim}
     set autoscale x2fixmin
     set autoscale x2fixmax
\end{verbatim}
\postverbatim

以下は x, y 両軸の自動縮尺機能を指定します:
\preverbatim
\begin{verbatim}
     set autoscale xy
\end{verbatim}
\postverbatim

以下は x, y, z, x2, y2 全軸の自動縮尺機能を指定します:
\preverbatim
\begin{verbatim}
     set autoscale
\end{verbatim}
\postverbatim

以下は x, y, z, x2, y2 全軸の自動縮尺機能を禁止します:
\preverbatim
\begin{verbatim}
     unset autoscale
\end{verbatim}
\postverbatim

以下は z 軸のみについて自動縮尺機能を禁止します:
\preverbatim
\begin{verbatim}
     unset autoscale z
\end{verbatim}
\postverbatim
\subsubsection*{極座標モード (polar)}
\addcontentsline{toc}{subsubsection}{極座標モード (polar)}
\label{commands set autoscale polar}%
\label{set autoscale polar}%
極座標モード ({\bf set polar}) では、xrange と yrange は自動縮尺モードでは
なくなります。動径軸の範囲制限用に {\bf set rrange} を使用した場合、xrange
と yrange はそれに合うように自動的に調整されます。しかし、さらにそれを
調整したければ、その後に明示的に xrange や yrange コマンドを使うことが
できます。以下参照: {\bf set rrange (p.~\pageref{set rrange})\index{rrange}}。

以下も参照
\href{http://www.gnuplot.info/demo/poldat.html}{\tt 極座標のデモ。
}

\subsection*{Bind}
\addcontentsline{toc}{subsection}{Bind}
\label{commands show bind}%
\label{show bind}%
\index{bind}%
{\bf show bind} は、現在のホットキーの割り当て (binding) を表示します。以
下参照: {\bf bind (p.~\pageref{bind})\index{bind}}。
\subsection*{Bmargin}
\addcontentsline{toc}{subsection}{Bmargin}
\label{commands set bmargin}%
\label{set bmargin}%
\label{bmargin}%
\index{bmargin}%
コマンド {\bf set bmargin} は、下部の余白のサイズを設定します。詳細は
以下参照: {\bf set margin (p.~\pageref{set margin})\index{margin}}。
\subsection*{グラフの枠線 (border)}
\addcontentsline{toc}{subsection}{グラフの枠線 (border)}
\label{commands set border}%
\label{commands unset border}%
\label{commands show border}%
\label{set border}%
\label{set border polar}%
\label{unset border}%
\label{show border}%
\label{border}%
\index{border}%
\label{noborder}%
\index{noborder}%
{\bf set border} と {\bf unset border} は {\bf plot} や {\bf splot} でのグラフの枠の
表示を制御します。枠は必ずしも軸とは一致しないことに注意してください。
{\bf plot} では大抵一致しますが、{\bf splot} では大抵一致していません。

書式:
\preverbatim
\begin{verbatim}
     set border {<integer>}
                {front | back | behind}
                {linestyle | ls <line_style>}
                {linetype | lt <line_type>} {linewidth | lw <line_width>}
                {linecolor | lc <colorspec>} {dashtype | dt <dashtype>}
                {polar}
     unset border
     show border
\end{verbatim}
\postverbatim

{\bf set view 56,103} のように任意の方向で表示されうる {\bf splot} では、 x-y
平面上の 4 つの角は 手前 ({\bf front}), 後ろ ({\bf back}) , 左 ({\bf left}), 右
({\bf right}) のように呼ばれます。もちろんこの同じ 4 つの角は天井の面にも
あります。よって、例えば x-y 平面上の後ろと右の角をつなぐ境界を
{\tt"}底の右後ろ (bottom right back){\tt"} と言い、底と天井の手前の角をつなぐ境
界を {\tt"}鉛直手前 (front vertical){\tt"} と呼ぶことにします (この命名法は、読
者が下の表を理解するためだけに使われます)。

枠は、12 ビットの整数に符号化されています: 下位 4 ビットは {\bf plot} に対
する外枠、{\bf splot} に対しては底面の外枠、次の 4 ビットは {\bf splot} の鉛直
な外枠、そして上位 4 ビットは {\bf splot} の天井面の外枠を制御します。よっ
て外枠の設定は、次の表の対応する項目の数字の和になります:


\begin{center}
\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 & 極座標系 & 効果なし \\
\hline
\end{tabular}
\end{center}


デフォルトの設定値は 31 で、これは {\bf plot} では 4 方向の外枠全て、
{\bf splot} では底面の枠線全部と z 軸を描くことを意味します。

3 次元の 4 本の鉛直な境界線とは別に、コマンド {\bf splot} はデフォルトで、
曲面のそれぞれの角からグラフの床面への鉛直線を描画します。{\bf set border}
はこの鉛直線を制御しません。代わりに、{\bf set/unset cornerpoles} を使って
ください。

2 次元描画では境界はすべての描画要素の一番上に描かれます ({\bf front})。
もし境界を描画要素の下に描かせたい場合は、{\bf set border back} としてくだ
さい。

3 次元隠線処理 (hidden3d) 描画では、通常は境界を構成する線も描画要素と
同様に隠線処理の対象になります。{\bf set border behind} とするとこのデフォ
ルトの挙動が変わります。

$<$linestyle$>$, $<$linetype$>$, $<$linewidth$>$, $<$linecolor$>$, $<$dashtype$>$ を指定し
て、枠線の描画にそれらを反映させることができます (現在の出力装置がサポ
ートするものに限定されます)。
さらに、軸の刻み (tics) を描画する際も、それらを境界線上で描画するか、
軸上で描画するかに関わらず、このラインスタイルを使用します。

{\bf plot} では、第 2 軸を有効にすることで、下と左以外の境界に目盛りを描く
ことができます。詳細は、以下参照: {\bf xtics (p.~\pageref{xtics})\index{xtics}}。

{\tt"}{\bf unset surface; set contour base}{\tt"} などによって {\bf splot} で底面にのみ
描画する場合、鉛直線や天井はそれらが指定されていても描画されません。

{\bf set grid} のオプション 'back', 'front', 'layerdefault' でも、描画出力
の境界線を書く順番を制御できます。

キーワード {\bf polar} は、極座標グラフに円形の境界をつけます。

例:

以下は、デフォルトの枠線を描きます:
\preverbatim
\begin{verbatim}
     set border
\end{verbatim}
\postverbatim

以下は、{\bf plot} では左と下、{\bf splot} では底面の左手前と左後ろの枠線を描
きます:
\preverbatim
\begin{verbatim}
     set border 3
\end{verbatim}
\postverbatim

以下は、{\bf splot} で周りに完全な箱を描きます:
\preverbatim
\begin{verbatim}
     set border 4095
\end{verbatim}
\postverbatim

以下は、手前の鉛直面と天井のない箱を描きます:
\preverbatim
\begin{verbatim}
     set border 127+256+512 # または set border 1023-128
\end{verbatim}
\postverbatim

以下は、{\bf plot} に対して上と右枠線のみを描き、それらを軸として目盛りづ
けします:
\preverbatim
\begin{verbatim}
     unset xtics; unset ytics; set x2tics; set y2tics; set border 12
\end{verbatim}
\postverbatim

\subsection*{棒グラフ幅 (boxwidth)}
\addcontentsline{toc}{subsection}{棒グラフ幅 (boxwidth)}
\label{commands set boxwidth}%
\label{commands show boxwidth}%
\label{set boxwidth}%
\label{show boxwidth}%
\label{boxwidth}%
\index{boxwidth}%
コマンド {\bf set boxwidth} は {\bf boxes}, {\bf boxerrorbars}, {\bf boxplot},
{\bf candlesticks}, {\bf histograms} スタイルにおける棒のデフォルトの幅を設定
するために使います。

書式:
\preverbatim
\begin{verbatim}
     set boxwidth {<width>} {absolute|relative}
     show boxwidth
\end{verbatim}
\postverbatim

デフォルトでは、隣り合う棒が接するように各々の棒の幅が広げられます。そ
れとは異なるデフォルトの幅を設定するには {\bf set boxwidth} コマンドを使用
します。{\bf relative} の場合の幅は、デフォルトの幅に対する比であると解釈
されます。

修飾子 {\bf relative} を指定しなかった場合、棒の幅 (boxwidth) として指定さ
れた明示的な値は、現在の x 軸の単位での数字 ({\bf absolute}) であると解釈
されます。x 軸が対数軸 (以下参照: {\bf set log (p.~\pageref{set log})\index{log}}) である場合、boxwidth の値
は実際には x=1 でのみ {\tt"}絶対的{\tt"} となり、その物理的な長さが軸全体を通じ
て保持されます (すなわち、棒は x 座標の増加にともなって狭くなったりは
しません)。対数軸の x 軸の範囲が x=1 から離れている場合は、適切な幅を
見出すには何度か試してみる必要があるかも知れません。

デフォルトの値は、{\bf boxes} や {\bf boxerrorbars} スタイルの幅指定用の追加の
データ列の明示的な値があればそれによって置き換えられます。
詳細は、以下参照: {\bf style boxes (p.~\pageref{style boxes})\index{boxes}}, {\bf style boxerrorbars (p.~\pageref{style boxerrorbars})\index{boxerrorbars}}。

棒の幅を自動的にセットするには
\preverbatim
\begin{verbatim}
     set boxwidth
\end{verbatim}
\postverbatim

棒の幅を自動的な値の半分にするには
\preverbatim
\begin{verbatim}
     set boxwidth 0.5 relative
\end{verbatim}
\postverbatim

棒の幅を絶対的な値 2 にするには
\preverbatim
\begin{verbatim}
     set boxwidth 2 absolute
\end{verbatim}
\postverbatim
\subsection*{3 次元箱の奥行き (boxdepth)}
\addcontentsline{toc}{subsection}{3 次元箱の奥行き (boxdepth)}
\label{commands set boxdepth}%
\label{commands show boxdepth}%
\label{set boxdepth}%
\label{show boxdepth}%
\label{boxdepth}%
\index{boxdepth}%
\preverbatim
\begin{verbatim}
    set boxdepth {<y extent>} | square
\end{verbatim}
\postverbatim
コマンド {\bf set boxdepth} は、{\bf splot with boxes} で作った 3 次元グラフに
のみ影響します。これは、y 軸方向の各箱の奥行き (箱の太さ) を設定します。
{\bf set boxdepth square} は、y 軸方向の奥行きを、x と y の軸の縮尺とは無
関係に、見た目が正方形の断面になるように選択しようとします。
\subsection*{χ-形状 (chi\_shapes)}
\addcontentsline{toc}{subsection}{χ-形状 (chi\_shapes)}
\label{command set chi_shapes}%
\label{set chi_shapes}%
\label{command unset chi_shapes}%
\label{unset chi_shapes}%
\label{chi_shapes}%
\index{chi shapes}%
\preverbatim
\begin{verbatim}
    set chi_shapes fraction <value>
    unset chi_shapes
\end{verbatim}
\postverbatim

凹包 (concave hull) フィルタは、特性長 chi\_length で定義されるχ-形状
(chi-shapes) を生成します。chi\_length 変数が設定されていなければ、それ
は境界多角形 (凸包) における最長の辺の比率に等しい値を選択します。この
比率のデフォルトは 0.6 ですが、それはこのコマンドで変更できます。その
値を 1.0 にすると結果の閉包は凸包に縮まります。より小さくすると、凹部
分がより増える閉包になります。以下参照: {\bf concavehull (p.~\pageref{concavehull})\index{concavehull}}。
コマンド {\bf unset chi\_shapes} は比率 0.6 を復帰し、chi\_length 変数を未定
義にします。
\subsection*{カラーモード (color)}
\addcontentsline{toc}{subsection}{カラーモード (color)}
\label{commands set color}%
\label{set color}%
gnuplot は、{\bf plot} や {\bf splot} コマンドの各要素に、事前に定義した列から
取り出した新しい線属性集合を割り当てます。デフォルトでは、色を変更する
ことで引き続く曲線同士を区別できるようにしますが、{\bf set monochrome} に
よるもう一つの方法は、線幅か点線/破線パターンで区別できる黒い曲線の列
を使用します。コマンド {\bf set color} は、この白黒モードを中断し、デフォ
ルトのカラー曲線の集合に戻ります。
以下参照: {\bf set monochrome (p.~\pageref{set monochrome})\index{monochrome}}, {\bf set linetype (p.~\pageref{set linetype})\index{linetype}}, {\bf set colorsequence (p.~\pageref{set colorsequence})\index{colorsequence}}。
\subsection*{カラーマップ (colormap)}
\addcontentsline{toc}{subsection}{カラーマップ (colormap)}
\label{commands set colormap}%
\label{set colormap}%
\label{colormap}%
\index{colormap}%
\label{show colormap}%
\index{alpha channel}%
\index{transparency}%
\index{palette}%
書式:

\preverbatim
\begin{verbatim}
    set colormap new <colormap-name>
    set colormap <colormap-name> range [<min>:<max>]
    show colormaps
\end{verbatim}
\postverbatim

{\bf set colormap new $<$name$>$} は、カラーマップ配列 $<$name$>$ を作成し、現在の
パレット設定をそれに書き出します。この保存したカラーマップは、32bit の
ARGB カラー値の配列としてのさらなる操作も可能ですし、その後の plot で
名前を指定して使用することもできます。

以下は、暗い赤から白へ連続するパレットを生成し、それを 'Reds' という名
前のカラーパレット配列に保存し、カラーマップのすべてのエントリを少しだ
け透明化する例です。この名前付きカラーマップは、後で pm3d 曲面に色付け
するのに使っています。名前付きカラーマップのアルファチャンネル値は、
ARGB 線属性に従う、すなわち 0 が不透明、0xff が完全な透明であることに
注意してください。

\preverbatim
\begin{verbatim}
    set palette defined (0 "dark-red", 1 "white")
    set colormap new Reds
    do for [i=1:|Reds|] { Reds[i] = Reds[i] | 0x3F000000 }
    splot func(x,y) with pm3d fillcolor palette Reds
\end{verbatim}
\postverbatim

z の値からこのカラーマップへの写像は、端の値に対応する z の最小値と最
大値を指定することで調整できます。例:

\preverbatim
\begin{verbatim}
    set colormap Reds range [0:10]
\end{verbatim}
\postverbatim

範囲を設定しない場合、あるいは最小値と最大値が同じ値の場合は、現在の
cbrange の限界値を使用します。以下参照: {\bf set cbrange (p.~\pageref{set cbrange})\index{cbrange}}。

カラーマップは、長方形領域をグラデーション塗りするのにも使えます。
以下参照: {\bf pixmap colormap (p.~\pageref{pixmap colormap})\index{colormap}}。

\subsection*{色巡回列 (colorsequence)}
\addcontentsline{toc}{subsection}{色巡回列 (colorsequence)}
\label{commands set colorsequence}%
\label{set colorsequence}%
\label{colorsequence}%
\index{colorsequence}%
書式:
\preverbatim
\begin{verbatim}
    set colorsequence {default|classic|podo}
\end{verbatim}
\postverbatim

{\bf set colorsequence default} は、出力形式に依存しない 8 色の巡回列を選
択します。以下参照: {\bf set linetype (p.~\pageref{set linetype})\index{linetype}}, {\bf colors (p.~\pageref{colors})\index{colors}}。

{\bf set colorsequence classic} は、出力形式別にそのドライバが用意する線色
の列を選択します。色の種類は、4 色から 100 色超まで幅がありますが、そ
の多くは、赤、緑、青、紫、水色、黄色、で始まります。これがバージョン 5
以前のデフォルトの挙動です。

{\bf set colorsequence podo} は、Wong (2011) [Nature Methods 8:441] で推奨
されている、P 型、D 型 (Protanopia, Deuteranopia) の色弱者が容易に区別
できる 8 色の組を選択します。

いずれの場合でも、色列の長さとその色についてはさらにカスタマイズできま
す。以下参照: {\bf set linetype (p.~\pageref{set linetype})\index{linetype}}, {\bf colors (p.~\pageref{colors})\index{colors}}。
\subsection*{Clabel}
\addcontentsline{toc}{subsection}{Clabel}
\label{commands set clabel}%
\label{commands unset clabel}%
\label{commands show clabel}%
\label{set clabel}%
\label{unset clabel}%
\label{show clabel}%
\label{clabel}%
\index{clabel}%
このコマンドは非推奨です。代わりに {\bf set cntrlabel} を使用してください。
{\bf set clabel {\tt"}format{\tt"}} は {\bf set cntrlabel format {\tt"}format{\tt"}} に、
{\bf unset clabel} は {\bf set cntrlabel onecolor} に置き換わっています。
\subsection*{クリッピング (clip)}
\addcontentsline{toc}{subsection}{クリッピング (clip)}
\label{commands set clip}%
\label{commands unset clip}%
\label{commands show clip}%
\label{set clip}%
\label{unset clip}%
\label{show clip}%
\label{clip}%
\index{clip}%
書式:
\preverbatim
\begin{verbatim}
     set clip {points|one|two|radial}
     unset clip {points|one|two|radial}
     show clip
\end{verbatim}
\postverbatim

デフォルトの状態:
\preverbatim
\begin{verbatim}
     unset clip points
     set clip one
     unset clip two
     unset clip radial
\end{verbatim}
\postverbatim

グラフ領域の境界内に中心があるデータ点は、その点を表す記号のサイズがそ
の記号を境界線の外にはみだしてしまうような場合でも、通常は描画します。
{\bf set clip points} は、2 次元描画でそのような点の中心がグラフ領域内にあ
る場合でも、そのような点をクリッピングします (つまり描画しません)。点
の中心がグラフ領域外にあるようなデータ点は、決して描画しません。

{\bf unset clip} の場合は、線分の一方の端点が描画範囲 (xrange と yrange)
の外にあれば、その線分は描画しないようにします。

{\bf set clip one} の場合は、一方の端点が描画範囲内にあって、かつもう一方
の端点が範囲外にあるような線分の、範囲内に含まれる部分を描画するように
{\bf gnuplot} に指示します。
{\bf set clip two} は、両方の端点が描画範囲外にある線分の、範囲内の部分を
描画するように {\bf gnuplot} に指示します。
線分全体が描画範囲外であるような線分は決して描画しません。

{\bf set clip radial} は、極座標モードでのみ効力を持ちます。これは、線のク
リッピングを、{\bf set rrange [0:MAX]} で確定する円状境界に対して行います。
この仕組みは、{\bf set clip \{one$|$two\}} と組み合わせて使用します。すなわち、
R $>$ RMAX である 2 つの点の間の線が R = RMAX の円によって切り取られる部
分は、{\bf clip two} と {\bf clip radial} の両方が設定されている場合のみ描画さ
れます。

注意:

* {\bf set clip} は、描画スタイル {\bf lines}, {\bf linespoints}, {\bf points},
{\bf arrows}, {\bf vectors} で生成される点、線分のみに影響します。

* {\bf pm3d} 曲面や他の中身の詰まったオブジェクトの描画に使用する色長方形
のクリッピングの制御は、{\bf set pm3d clipping} で行います。デフォルトは、
現在の zrange に対する滑らかなクリッピングです。

* オブジェクトのクリッピングは、個々のオブジェクト (object) の
{\bf clip} か {\bf noclip} 属性で制御します。

* 現在の gnuplot の版では、極座標モードの {\tt"}plot with vectors{\tt"} は、テス
トしていませんし、最大半径に対するクリッピングもしません。

\subsection*{等高線ラベル (cntrlabel)}
\addcontentsline{toc}{subsection}{等高線ラベル (cntrlabel)}
\label{commands set cntrlabel}%
\label{commands show cntrlabel}%
\label{set cntrlabel}%
\label{show cntrlabel}%
\label{cntrlabel}%
\index{cntrlabel}%
書式:
\preverbatim
\begin{verbatim}
     set cntrlabel {format "format"} {font "font"}
     set cntrlabel {start <int>} {interval <int>}
     set cntrlabel onecolor
\end{verbatim}
\postverbatim

{\bf set cntrlabel} は、凡例内 (デフォルト) か、{\bf splot ... with labels} の
際のグラフ上の等高線のラベルを制御します。後者の場合、ラベルはラベル記
述属性の {\bf pointinterval} か {\bf pointnumber} に従って各等高線に沿って配置
されます。デフォルトではラベルは等高線を構成する 5 番目の線分の上に置
かれ、20 個の線分毎に繰り返されます。このデフォルトは、以下と同じです:
\preverbatim
\begin{verbatim}
     set cntrlabel start 5 interval 20
\end{verbatim}
\postverbatim
これらの値はコマンド {\bf set cntrlabel} で、あるいは {\bf splot} コマンドに間
隔を指定することで変更できます:
\preverbatim
\begin{verbatim}
     set contours; splot $FOO with labels point pointinterval -1
\end{verbatim}
\postverbatim
間隔を負の値に設定すると、ラベルは各等高線に 1 つだけつきます。しかし
{\bf set samples} か {\bf set isosamples} が大きな値の場合は多くの等高線をラベ
ル一つだけで描きます。

凡例 (key) には、等高線ラベルをそれぞれの線種 (linetype) を使用して書
きます。デフォルトでは、線種自身が各等高線のレベルを与えるので、それぞ
れに対する別々のラベルが現れます。コマンド {\bf set cntrlabel onecolor} は
すべての等高線を同じ線種で描画するので、凡例には一つのラベルのみを書き
ます。このコマンドは、古いコマンド {\bf unset clabel} を置き換えるものです。
\subsection*{等高線制御 (cntrparam)}
\addcontentsline{toc}{subsection}{等高線制御 (cntrparam)}
\label{commands set cntrparam}%
\label{commands show cntrparam}%
\label{set cntrparam}%
\label{show cntrparam}%
\label{cntrparam}%
\index{cntrparam}%
{\bf set cntrparam} は等高線の生成方法、およびそれを滑らかに描画する方法を
制御します。{\bf show contour} は現在の {\bf contour} の設定だけでなく {\bf cntrparam}
の設定をも表示します。

書式:
\preverbatim
\begin{verbatim}
     set cntrparam { { linear
                     | cubicspline
                     | bspline
                     | points <n>
                     | order <n>
                     | levels { <n>
                                | auto {<n>}
                                | discrete <z1> {,<z2>{,<z3>...}}
                                | incremental <start>, <incr> {,<end>}
                              }
                       {{un}sorted}
                       {firstlinetype N}
                     }
                   }
     show cntrparam
\end{verbatim}
\postverbatim

このコマンドは 2 つの機能を持っています。一つは等高線上の点を決めるた
めの z の値の設定です。等高線のレベルの数 $<$n$>$ は整数型の定数式でなけれ
ばいけません。$<$z1$>$, $<$z2$>$ ... は実数値の数式です。
もう一つは、個々の等高線の見た目の制御です。

等高線の平滑化を制御するキーワード:

{\bf linear}, {\bf cubicspline}, {\bf bspline}  ---  近似 (補間) 方法を指定します。
{\bf linear} ならば、等高線は曲面から得られた値を区分的に直線で結びます。
{\bf cubicspline} (3 次スプライン) ならば、区分的な直線はいくぶんなめらか
な等高線が得られるように補間されますが、多少波打つ可能性があります。
{\bf bspline} (B-spline) は、より滑らかな曲線を描くことが保証されますが、
これは z の等しい点の位置を近似しているだけです。

{\bf points}  ---  最終的には、全ての描画は、区分的な直線で行われます。ここ
で指定する数は、{\bf bspline} または {\bf cubicspline} での近似に使われる線分
の数を制御します。実際には cubicspline と bspline の区間 (曲線線分) の
数は {\bf points} と線分の数の積に等しくなります。

{\bf order}  ---  bspline 近似の次数です。この次数が大きくなるにつれて、等高
線はなめらかになります (もちろん、高次の bspline 曲線になるほど、元の
区分的直線からは離れていきます)。このオプションは {\bf bspline} モードでの
み有効です。指定できる値は、2 (直線) から 10 までの整数です。

等高線レベルの選択を制御するキーワード:

{\bf levels auto}  ---  これがデフォルトです。$<$n$>$ は仮のレベルの数であり、実
際のレベルの数は、簡単なラベルを生成するように調節されます。曲面の z
座標が zmin から zman の範囲にあるとき、等高線はその間の dz の整数倍に
なるように生成されます。ここで、dz は 10 のあるべき乗の 1, 2, 5 倍、の
いずれかです (2 つの目盛りの間を丁度割り切るように)。

{\bf levels discrete}  ---  等高線は指定された z = $<$z1$>$, $<$z2$>$ ... に対して生
成されます。指定した個数が等高線のレベルの個数となります。{\bf discrete}
モードでは、{\bf set cntrparams levels $<$n$>$} という指定は常に無視されます。

{\bf levels incremental}  ---  等高線は z = $<$start$>$ から始まり、$<$increment$>$
ずつ増えて行き限界の個数に達するまで書かれます。$<$end$>$ はその等高線の数
を決定するのに使いますが、これは後の {\bf set cntrparam levels $<$n$>$} によっ
て常に変更されます。z 軸が対数軸の場合、{\bf set ztics} の場合と同様に、
$<$increment$>$ は倍数として解釈し、$<$end$>$ は使用しません。

等高線の線種の割り当てを制御するキーワード:

デフォルトでは、等高線は指定の逆順に生成します ({\bf unsorted})。すわなち、
{\bf set cntrparam levels increment 0, 10, 100} は、100 から始まって、0 で
終わる 11 本の等高線を作ります。キーワード {\bf sorted} を追加すると、数値
の増加方向の順の生成に変更し、例えば今の例では、最初に 0 の等高線を書
くようになります。

デフォルトでは、等高線は、対応する曲面に使用した線種の、次からの線種列
で描きます。すなわち、{\bf splot x*y lt 5} の最初の等高線は線種 6 です。
{\bf hidden3d} モードが有効な場合、各曲面には 2 つの線種を使うので、デフォ
ルトの設定では、最初の等高線と曲面の裏面の描画に同じ線種を使ってしまい
ますが、これは望ましくありません。これを避けるには、以下の 2 つの方法
があります。
(1) {\bf set hidden3d offset N} により、曲面の裏面の線種を変更すること。
{\bf offset -1} とするのがいいですが、これならすべての等高線の線種とぶつか
りません。
(2) オプション {\bf set cntrparam firstlinetype N} により、曲面で使用する
線種とは独立な、等高線で使用する線種群を指定すること。これは、特に等高
線の線種をカスタマイズしたい場合には有用でしょう。N $<$= 0 の場合はデフ
ォルトに戻ります。

コマンド {\bf set cntrparam} を引数無しで使用すると、指定したすべてのオプ
ション値をデフォルトにリセットします。
\preverbatim
\begin{verbatim}
     set cntrparam order 4 points 5
     set cntrparam levels auto 5 unsorted
     set cntrparam firstlinetype 0
\end{verbatim}
\postverbatim

\subsubsection*{Cntrparam の例 (cntrparam examples)}
\addcontentsline{toc}{subsubsection}{Cntrparam の例 (cntrparam examples)}
\label{commands set cntrparam examples}%
\label{set cntrparam examples}%
\label{cntrparam examples}%
例:
\preverbatim
\begin{verbatim}
     set cntrparam bspline
     set cntrparam points 7
     set cntrparam order 10
\end{verbatim}
\postverbatim

以下はレベルの基準が合えば 5 個のレベルがに自動的に選択されます:
\preverbatim
\begin{verbatim}
     set cntrparam levels auto 5
\end{verbatim}
\postverbatim

以下は .1, .37, .9 にレベルを設定します:
\preverbatim
\begin{verbatim}
     set cntrparam levels discrete .1,1/exp(1),.9
\end{verbatim}
\postverbatim

以下は 0 から 4 まで、1 ずつ増やすレベルを設定します:
\preverbatim
\begin{verbatim}
     set cntrparam levels incremental  0,1,4
\end{verbatim}
\postverbatim

以下はレベルの数を 10 に設定します (増加の最後の値 (end) または自動で
設定されるレベルの数は変更されます):
\preverbatim
\begin{verbatim}
     set cntrparam levels 10
\end{verbatim}
\postverbatim

以下はレベルの数は保持したままレベルの開始値と増分値を設定します:
\preverbatim
\begin{verbatim}
     set cntrparam levels incremental 100,50
\end{verbatim}
\postverbatim

以下はカスタマイズした等高線の線種群を定義し、使用します:
\preverbatim
\begin{verbatim}
     set linetype 100 lc "red" dt '....'
     do for [L=101:199] {
         if (L%10 == 0) {
             set linetype L lc "black" dt solid lw 2
         } else {
             set linetype L lc "gray" dt solid lw 1
         }
     }
     set cntrparam firstlinetype 100
     set cntrparam sorted levels incremental 0, 1, 100
\end{verbatim}
\postverbatim

等高線を描く場所の制御に関しては、以下参照: {\bf set contour (p.~\pageref{set contour})\index{contour}}。等高線のラ
ベルの書式と線種の制御に関しては、以下参照: {\bf set cntrlabel (p.~\pageref{set cntrlabel})\index{cntrlabel}}。

以下も参照してください。
\href{http://www.gnuplot.info/demo/contours.html}{\tt 等高線のデモ (contours.dem)
}

および
\href{http://www.gnuplot.info/demo/discrete.html}{\tt ユーザ定義レベルの等高線のデモ (discrete.dem).
}

\subsection*{カラーボックス (colorbox)}
\addcontentsline{toc}{subsection}{カラーボックス (colorbox)}
\label{commands set colorbox}%
\label{commands show colorbox}%
\label{commands unset colorbox}%
\label{set colorbox}%
\label{show colorbox}%
\label{unset colorbox}%
\label{colorbox}%
\index{colorbox}%

パレットでの色付けを使用するグラフにおいて、特に pm3d でのグラフでは、
パレットのグラデーションを、{\bf unset colorbox} でスイッチがオフになって
いない限り、グラフの横のカラーボックス (colorbox) 内に描きます。

\preverbatim
\begin{verbatim}
     set colorbox
     set colorbox {
                { vertical | horizontal } {{no}invert}
                { default | bottom | user }
                { origin x, y }
                { size x, y }
                { front | back }
                { noborder | bdefault | border <linestyle> }
              }
     show colorbox
     unset colorbox
\end{verbatim}
\postverbatim

グラデーションの方向は、オプション {\bf vertical} (縦) と {\bf horizontal}
(横) で設定します。

カラーボックスの位置は、{\bf default}, {\bf bottom}, {\bf user} のいずれかを指定で
きます。キーワード {\bf bottom} は、以下と同等の便利なショートカットです:

\preverbatim
\begin{verbatim}
    set colorbox horizontal user origin screen 0.1, 0.07 size 0.8, 0.03.
\end{verbatim}
\postverbatim

{\bf bottom} で指定した場合のようにカラーボックスがグラフの下にあるときは、
それ用に追加スペースを取ると便利でしょう: {\bf set bmargin screen 0.2}。

{\bf origin x, y} と {\bf size x, y} は、{\bf user} か {\bf bottom} の配置での正確な位
置合わせのために使います。x, y の値は、デフォルトではスクリーン座標と
解釈しますが、これは 3 次元グラフに関しては形式的なオプションに過ぎま
せん。{\bf set view map} による splot を含む 2 次元描画では、任意の座標系
が使えます。

{\bf back}/{\bf front} は、カラーボックスをグラフより前に書くか、後で書くかを
制御します。

{\bf border} は境界描画を ON にします (デフォルト) し、{\bf noborder} は境界描
画を OFF にします。{\bf border} の後ろに正の整数を与えると、それを境界を描
画する時の line style のタグとして使います。例えば:
\preverbatim
\begin{verbatim}
   set style line 2604 linetype -1 linewidth .4
   set colorbox border 2604
\end{verbatim}
\postverbatim
は line style {\bf 2604}、すなわち細い線のデフォルトの境界色 (-1) で境界を
描画します。{\bf bdefault} (デフォルト) は、カラーボックスの境界の描画にデ
フォルトの境界の line style を使います。

カラーボックスの軸は {\bf cb} と呼ばれ、通常の軸のコマンドで制御されます。
すなわち {\bf set/unset/show} で {\bf cbrange}, {\bf [m]cbtics}, {\bf format cb},
{\bf grid [m]cb}, {\bf cblabel} などが、そして多分 {\bf cbdata}, {\bf [no]cbdtics},
{\bf [no]cbmtics} なども使えるでしょう。

パラメータ無しの {\bf set colorbox} はデフォルトの位置へ切替えます。
{\bf unset colorbox} はカラーボックスのパラメータをデフォルト値にリセット
し、その上でカラーボックスを OFF にします。

以下も参照: {\bf set pm3d (p.~\pageref{set pm3d})\index{pm3d}}, {\bf set palette (p.~\pageref{set palette})\index{palette}}, {\bf set style line (p.~\pageref{set style line})\index{line}}。
\subsection*{色名 (colornames)}
\addcontentsline{toc}{subsection}{色名 (colornames)}
\label{colornames}%
\index{colornames}%
\gpinsetfigure{figure_colornames}
gnuplot は限定された個数の色の名前を持っています。これらは、pm3d パレ
ットでつながれる色の範囲を定義するのに、あるいは個々の線種やラインスタ
イルの色を定義しするのに、または現在のカラーパレットに対するグラデーシ
ョンを定義するのに使えます。コマンド {\bf show colornames} を使用すること
で、持っている色名の一覧とその RGB 成分の定義を見ることができます。
例:
\preverbatim
\begin{verbatim}
     set style line 1 linecolor "sea-green"
     set palette defined (0 "dark-red", 1 "white")
     print sprintf("0x%06x", rgbcolor("dark-green"))
           0x006400
\end{verbatim}
\postverbatim

\subsection*{等高線 (contour)}
\addcontentsline{toc}{subsection}{等高線 (contour)}
\label{commands set contour}%
\label{commands unset contour}%
\label{commands show contour}%
\label{set contour}%
\label{unset contour}%
\label{show contour}%
\label{contour}%
\index{contour}%
\label{contours}%
\index{contours}%
\label{nocontour}%
\index{nocontour}%
コマンド {\bf set contour} で 3 次元曲面に等高線を置くことができます。この
オプションは {\bf splot} でのみ有効です。これは、格子状データ (grid data)
を必要とします。すなわち、一つの y-孤立線に対するすべての点が並べられ、
その次に次の y-孤立線に対するすべての点が並び、以下同様に続くデータの
ファイルです。y-孤立線同士を分離するのは単一の空行 (空白以外の文字を一
切含まない行) です。詳細は以下参照: {\bf grid\_data (p.~\pageref{grid_data})\index{grid data}}。

データが格子状になっていない場合、{\bf set dgrid3d} を使って最初に適切な格
子を生成し、その格子にデータを当てはめることができます。

書式:
\preverbatim
\begin{verbatim}
     set contour {base | surface | both}
     unset contour
     show contour
\end{verbatim}
\postverbatim

これらの 3 つのオプションは等高線をどこに引くかを指定します。{\bf base} で
は等高線を x/y 軸の刻みのある底面に描かれ、{\bf surface} では等高線はその
曲面自体の上に描かれ、{\bf both} では底面と曲面上の両方に描かれます。オプ
ションが指定されていない場合は {\bf base} であると仮定されます。

等高線の描画に影響を与えるパラメータについては、以下参照:
{\bf set cntrparam (p.~\pageref{set cntrparam})\index{cntrparam}}。等高線のラベルの制御に関しては、以下参照:
{\bf set cntrlabel (p.~\pageref{set cntrlabel})\index{cntrlabel}}。

このオプションは、線やラベルを配置するもので、曲面自身のその他の見た目
は変えないことに注意してください。曲面の色付けを、等高線で区切られた領
域が他と区別できるような色に割り当てたい場合は、代わりに描画スタイル
contourfill を使用してくだささい。以下参照: {\bf contourfill (p.~\pageref{contourfill})\index{contourfill}}。

{\bf set contour} が有効な場合、{\bf splot with $<$style$>$} で points, lines,
impulses, labels 等の描画要素を等高線に沿って配置できます。{\bf with pm3d}
は、pm3d 曲面を生成し、さらに等高線も書きます。
{\bf set contour} が有効な際に生成する等高線に、ファイルから読み込んだラベ
ルなどのその他の描画要素も混ぜたい場合は、splot コマンド内のその命令の
後ろにキーワード {\bf nocontours} を追加しないといけません。

曲面をスイッチオフ (以下参照: {\bf unset surface (p.~\pageref{unset surface})\index{surface}}) にして、等高線のみのグ
ラフにすることも可能です。等高線の 2 次元射影とオプションのラベルは以
下のようにして生成できます:

\preverbatim
\begin{verbatim}
    set view map
    splot DATA with lines nosurface, DATA with labels
\end{verbatim}
\postverbatim

以前のバージョンの gnuplot では、以下のように、代わりとなる多段階の方
法を使って 3 次元の等高線をファイルやデータブロックに保存し、その後で
それを 2 次元の plot コマンドを使用してそれを描画していました。

\preverbatim
\begin{verbatim}
     set contour
     set table $datablock
     splot DATA with lines nosurface
     unset table
     # 等高線は $datablock に、1 つの等高線が 1 つの index で
     plot for [level=0:*] $datablock index level with lines
\end{verbatim}
\postverbatim

以下も参照: {\bf splot datafile (p.~\pageref{splot datafile})\index{datafile}}。また、
\verb+^+ $<$a href={\tt"}http://www.gnuplot.info/demo/contours.html{\tt"}$>$
等高線のデモ (contours.dem)
\verb+^+ $<$/a$>$
と
\verb+^+ $<$a href={\tt"}http://www.gnuplot.info/demo/discrete.html{\tt"}$>$
等高線レベルのユーザ定義のデモ (discrete.dem)
\verb+^+ $<$/a$>$
も参照。
\subsection*{グラフ角の支柱 (cornerpoles)}
\addcontentsline{toc}{subsection}{グラフ角の支柱 (cornerpoles)}
\label{command set cornerpoles}%
\label{set cornerpoles}%
\label{cornerpoles}%
\index{cornerpoles}%
デフォルトで、splot は 3 次元曲面のそれぞれの角から床面への鉛直線を描
画します。これらの鉛直線は、{\bf unset cornerpoles} で消すことができます。
\subsection*{等高線間の塗り潰し (contourfill)}
\addcontentsline{toc}{subsection}{等高線間の塗り潰し (contourfill)}
\label{commands set contourfill}%
\label{commands show contourfill}%
\label{set contourfill}%
\label{show contourfill}%
3 次元描画スタイル {\bf with contourfill} は、1 つの pm3d 曲面を、z 軸に垂
直な平面群で区切られる断片に切り分けます。コマンド {\bf set contourfill}
は、区切る平面群の配置と個々の断片に割り当てる色を制御します。

書式:
\preverbatim
\begin{verbatim}
    set contourfill auto N          # zrange を N 等分した断片に
    set contourfill ztics           # z 軸の各主目盛りで切り分け
    set contourfill cbtics          # cb 軸の各主目盛りで切り分け
    set contourfill {palette | firstlinetype N}
\end{verbatim}
\postverbatim

デフォルトは {\bf set contourfill auto 5 palette} で、これは現在の z 軸の
範囲を 5 等分し (6 つの平面で区切る)、その曲面の各断片にその z の中点
に対応するパレットの色で色付けます。

オプション {\bf ztics}, {\bf cbtics} は、zrange の分割を、その軸の主目盛りの位
置で行います。例えば、z=2.5, z=7, z=10 に指定して切り分けるには、以下
のコマンドを使用します。
\preverbatim
\begin{verbatim}
    set ztics add ("floor" 2.5, "boundary X" 7, "ceiling" 10)
    set contourfill ztics
\end{verbatim}
\postverbatim

断片の色付けにパレットを使いたくない場合は、任意連続する線種の範囲を選
択し、それらに望む色の列を割り当てることができます。
\preverbatim
\begin{verbatim}
    set for [i=101:110] linetype i lc mycolor[i]
    set contourfill firstlinetype 101
\end{verbatim}
\postverbatim
{\bf set contourfill palette} でパレットによる色付けに復帰できます。


\subsection*{点線/破線設定 (dashtype)}
\addcontentsline{toc}{subsection}{点線/破線設定 (dashtype)}
\label{commands set dashtype}%
\label{commands show dashtype}%
\label{set dashtype}%
\label{show dashtype}%
コマンド {\bf set dashtype} は、点線/破線パターンを番号で参照できるように
登録します。これはとても便利で、その点線/破線パターンをその番号で受け
つけてくれる場所ならば、どこでも明示的な点線/破線パターンも受けつけて
くれます。
例:
\preverbatim
\begin{verbatim}
    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 を定義
\end{verbatim}
\postverbatim
以下参照: {\bf dashtype (p.~\pageref{dashtype})\index{dashtype}}。
\subsection*{Datafile}
\addcontentsline{toc}{subsection}{Datafile}
\label{set datafile}%
\label{show datafile}%
コマンド {\bf set datafile} は、{\bf plot}, {\bf splot}, {\bf fit} コマンドで入力デー
タを読む場合に、その列 (field) の解釈の仕方を制御するオプションを持ち
ます。
現在は、そのようなオプションがいくつか実装されています。その設定は、そ
の後のコマンドで読み出されるすべてのデータファイルに一様に適用しますが、
それとは矛盾する書式でファイルを同時に操作しなければいけない場合、これ
を回避する方法に関しては、以下参照: {\bf functionblocks (p.~\pageref{functionblocks})\index{functionblocks}}。
\subsubsection*{Set datafile columnheaders}
\addcontentsline{toc}{subsubsection}{Set datafile columnheaders}
\label{set datafile columnheaders}%
\index{columnheaders}%
コマンド {\bf set datafile columnheaders} は、入力の最初の行を、データ値と
してではなく、columnheader として解釈することを保証します。これは、
plot, splot, fit, stats の各コマンドの入力データ源すべてに影響します。
この設定を {\bf unset datafile columnheaders} で無効にすると、明示的な
columnheader() 関数が using 指定にあるか、plot タイトルがファイルに関
連づけされている場合、同じ効果がファイル毎にオンにされます。以下参照:
{\bf set key autotitle (p.~\pageref{set key autotitle})\index{autotitle}}, {\bf columnheader (p.~\pageref{columnheader})\index{columnheader}}。
\subsubsection*{Set datafile fortran}
\addcontentsline{toc}{subsubsection}{Set datafile fortran}
\label{set datafile fortran}%
\label{show datafile fortran}%
\label{fortran}%
\index{fortran}%
コマンド {\bf set datafile fortran} は、入力ファイルの Fortran D 型、Q 型
の定数値の特別なチェックを可能にします。この特別なチェックは入力処理を
遅くしますので、実際にそのデータファイルが Fortran D 型、Q 型の定数を
持っている場合にのみこれを選択すべきです。このオプションは、その後で
{\bf unset datafile fortran} を行えば無効にできます。
\subsubsection*{Set datafile nofpe\_trap}
\addcontentsline{toc}{subsubsection}{Set datafile nofpe\_trap}
\label{set datafile nofpe_trap}%
\label{fpe_trap}%
\index{fpe trap}%
\label{nofpe_trap}%
\index{nofpe trap}%
\index{floating point exceptions}%
コマンド {\bf set datafile nofpe\_trap} は、入力ファイルからデータの読み込
みの際に、すべての数式の評価の前に浮動小数点例外ハンドラの再初期化をし
ないように gnuplot に命令します。これにより、とても大きなファイルから
のデータの入力がかなり速くなりますが、浮動小数点例外が起きた場合にプロ
グラムが異常終了してしまう危険はあります。
\subsubsection*{Set datafile missing}
\addcontentsline{toc}{subsubsection}{Set datafile missing}
\label{set datafile missing}%
\label{show datafile missing}%
\label{set missing}%
\label{missing}%
\index{missing}%
書式:
\preverbatim
\begin{verbatim}
     set datafile missing "<string>"
     set datafile missing NaN
     show datafile missing
     unset datafile
\end{verbatim}
\postverbatim

コマンド {\bf set datafile missing} は、入力データファイル中で欠損データを
記述する特別な文字列があることを {\bf gnuplot} に指示します。{\bf missing} に
関するデフォルト値 (文字) はありません。gnuplot は「欠損データ」と「無
効な値」(例えば {\tt"}NaN{\tt"} や 1/0) を区別します。例えば、連続するデータ点に
対するグラフの折れ線描画は、無効な値によってそこで切れますが、欠損デー
タの場合はそうではありません。

数値が期待される場面で数値ではない文字が現れた場合は、それが {\bf missing}
で指定する文字列にマッチする場合を除いて、通常欠損データではなく、無効
な値として解釈します。

逆に、{\bf set datafile missing NaN} とすると、数式やデータ中の数値ではな
い値 (NaN) はすべて欠損データとして扱います。
\href{http://www.gnuplot.info/demo/imageNaN.html}{\tt imageNaN デモ
}

を参照してください。

gnuplot は plot コマンドで using 指定が直接列の値を {\bf using N},
{\bf using (\$N)}, {\bf using (function(\$N))} のように参照した場合は列 N に欠損
値フラグを通知します。これらの場合は、数式、例えば func(\$N) は一切評価
されません。

現在のバージョンの gnuplot は、(column(N)) の形式の直接参照も通知しま
すが、式が {\tt"}missing{\tt"} (欠損値) のフラグがついた列の値に間接的に依存する
場合でも、評価の最中に通知します。

これらすべての場合で、gnuplot は入力データ行全体をそれが全くなかったも
のとして扱います。しかし、式が真に欠けているデータ値に (例えば csv フ
ァイルの空フィールドのように) 依存している場合、それはこれらのチェック
をすりぬけるかもしれません。それを NaN 値と評価すれば、それは欠損デー
タ点ではなく、不正なデータとして扱います。もしそのような不正値をすべて
欠損値として等しく扱いたい場合は、コマンド {\bf set datafile missing NaN}
を使用してください。

\subsubsection*{Set datafile separator}
\addcontentsline{toc}{subsubsection}{Set datafile separator}
\label{set datafile separator}%
\label{show datafile separator}%
\label{datafile separator}%
\label{separator}%
\index{separator}%
コマンド {\bf set datafile separator} は、この後の入力ファイルのデータ列の
分離文字が、空白 (whitespace) でなくて、ここで指定する文字であると
{\bf gnuplot} に指示します。このコマンドの最も一般的な使用例は、表計算ソフ
トやデータベースソフトが作る csv (コンマ区切り) ファイルを読む場合でし
ょう。デフォルトのデータ列の分離文字は空白 (whitespace) です。

書式:
\preverbatim
\begin{verbatim}
     set datafile separator {whitespace | tab | comma | "<chars>"}
\end{verbatim}
\postverbatim

例:
\preverbatim
\begin{verbatim}
     # タブ区切りのファイルを入力
     set datafile separator "\t"
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # コンマ区切りのファイルを入力
     set datafile separator comma
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # 入力ファイルが * か | のいずれかで区切られた列を持つ場合
     set datafile separator "*|"
\end{verbatim}
\postverbatim
\subsubsection*{Set datafile commentschars}
\addcontentsline{toc}{subsubsection}{Set datafile commentschars}
\label{set datafile commentschars}%
\label{commentschars}%
\index{commentschars}%
コマンド {\bf set datafile commentschars} は、データファイル中のコメント行
の開始文字としてどの文字を使うかを指定します。指定した文字の中の一つが
データ行の最初の非空白文字として現われた場合、そのデータ行のそれ以降の
部分を無視します。デフォルト文字列は、VMS では {\tt"}\#!{\tt"}、それ以外では {\tt"}\#{\tt"}
です。

書式:
\preverbatim
\begin{verbatim}
     set datafile commentschars {"<string>"}
     show datafile commentschars
     unset commentschars
\end{verbatim}
\postverbatim

よって、データファイルの以下の行は完全に無視されます:
\preverbatim
\begin{verbatim}
   # 1 2 3 4
\end{verbatim}
\postverbatim
が、以下の行
\preverbatim
\begin{verbatim}
   1 # 3 4
\end{verbatim}
\postverbatim
は、2 列目にゴミがあり、その後に有効なデータが 3 列目と 4 列目にあると
認識されます。

例:
\preverbatim
\begin{verbatim}
     set datafile commentschars "#!%"
\end{verbatim}
\postverbatim
\subsubsection*{Set datafile binary}
\addcontentsline{toc}{subsubsection}{Set datafile binary}
\label{set datafile binary}%
コマンド {\bf set datafile binary} は、データファイルの読み込み時にバイナ
リファイルをデフォルトと設定するのに使われます。書式は、それが {\bf plot}
または {\bf splot} コマンドで使われるのと正確に同じです。$<$binary list$>$ に
書けるキーワードに関しては、詳しくは、以下参照: {\bf binary matrix (p.~\pageref{binary matrix})\index{matrix}},
{\bf binary general (p.~\pageref{binary general})\index{general}}。

書式:
\preverbatim
\begin{verbatim}
     set datafile binary <binary list>
     show datafile binary
     show datafile
     unset datafile
\end{verbatim}
\postverbatim

例:
\preverbatim
\begin{verbatim}
     set datafile binary filetype=auto
     set datafile binary array=(512,512) format="%uchar"
\end{verbatim}
\postverbatim

\label{show datafile binary}%
\preverbatim
\begin{verbatim}
     show datafile binary   # 現在の設定の一覧表示
\end{verbatim}
\postverbatim
\subsection*{小数点設定 (desimalsign)}
\addcontentsline{toc}{subsection}{小数点設定 (desimalsign)}
\label{commands set decimalsign}%
\label{commands show decimalsign}%
\label{commands unset decimalsign}%
\label{set decimalsign}%
\label{show decimalsign}%
\label{unset decimalsign}%
\label{decimalsign}%
\index{decimalsign}%
\index{locale}%
コマンド {\bf set decimalsign} は、目盛りの見出し、あるいは {\bf set label} 文
字列に書かれる数の小数点記号を選択します。

書式:
\preverbatim
\begin{verbatim}
     set decimalsign {<value> | locale {"<locale>"}}
     unset decimalsign
     show decimalsign
\end{verbatim}
\postverbatim

引数 $<$value$>$ は、通常の小数点記号に置き換えて使う文字列です。典型的な
ものはピリオド '.' やコンマ ',' ですが他にも有用なものがあるでしょう。
引数 $<$value$>$ を省略すると、小数点の区切りはデフォルト (ピリオド) から
変更されません。unset decimalsign も $<$value$>$ を省略するのと同じ効果を
持ちます。

例:

多くのヨーロッパ諸国での正しい出力形式を得るには:
\preverbatim
\begin{verbatim}
     set decimalsign ','
\end{verbatim}
\postverbatim

次のことに注意してください: 明示的な文字列を設定した場合、これは軸の目
盛りなどの gnuplot の gprintf() 書式関数で出力される数値のみに影響し、
入力データの書式指定や sprintf() 書式関数で出力される数値には影響しま
せん。それらの入力や出力の形式の挙動も変更したい場合は、代わりに以下を
使用してください:

\preverbatim
\begin{verbatim}
     set decimalsign locale
\end{verbatim}
\postverbatim

これは、gnuplot に、入力と出力の書式を、環境変数 LC\_ALL, LC\_NUMERIC,
LANG の現在の設定に従ったものを使わせるようにします。

\preverbatim
\begin{verbatim}
     set decimalsign locale "foo"
\end{verbatim}
\postverbatim

これは、gnuplot に、入力と出力の書式を、ロケール {\tt"}foo{\tt"} に従ったものに
しますが、そのロケールがインストールされている必要があります。もしロケ
ール {\tt"}foo{\tt"} が見つからなかった場合、エラーメッセージが出力され、小数点
の設定は変更されません。linux システム上では、そこにインストールされて
いるロケールの一覧は {\tt"}locale -a{\tt"} で見ることができます。linux のロケー
ル文字列はだいたい {\tt"}sl\_SI.UTF-8{\tt"} のような形式をしていますが、Windows
のロケール文字列は {\tt"}Slovenian\_Slovenia.1250{\tt"}、または {\tt"}slovenian{\tt"} のよ
うな形式です。ロケール文字列の解釈は、C のランタイムライブラリが行うこ
とに注意してください。古い C ライブラリでは、ロケール設定のサポート
(例えば数字の 3 桁毎の区切り文字など) を部分的にしか提供していないかも
しれません。

\preverbatim
\begin{verbatim}
     set decimalsign locale; set decimalsign "."
\end{verbatim}
\postverbatim

これは、現在のロケールに合ったどんな小数点でも、全ての入出力に対して使
用するように設定しますが、gnuplot の内部関数 gprintf() を使って書式化
する数値は明示的に指定された '.' になります (上書き)。
\subsection*{格子状データ処理 (dgrid3d)}
\addcontentsline{toc}{subsection}{格子状データ処理 (dgrid3d)}
\label{commands set dgrid3d}%
\label{commands unset dgrid3d}%
\label{commands show dgrid3d}%
\label{set dgrid3d}%
\label{unset dgrid3d}%
\label{show dgrid3d}%
\label{dgrid3d}%
\index{dgrid3d}%
\label{nodgrid3d}%
\index{nodgrid3d}%
\index{kdensity}%
\label{nogrid}%
\index{nogrid}%
コマンド {\bf set dgrid3d} は、非格子状データから格子状データへの写像機能
を有効にし、そのためのパラメータを設定します。格子状データの構造につい
ての詳細は、以下参照: {\bf splot grid\_data (p.~\pageref{splot grid_data})\index{grid data}}。この処理は、3 次元曲面への当
てはめで利用できること以外に、2 次元温度分布図を生成するのにも使えます。
その場合、各点の 'z' の値は局所的な重み付けに寄与します。

書式:
\preverbatim
\begin{verbatim}
     set dgrid3d {<rows>} {,{<cols>}} splines
     set dgrid3d {<rows>} {,{<cols>}} qnorm {<norm>}
     set dgrid3d {<rows>} {,{<cols>}} {gauss | cauchy | exp | box
                     | hann} {kdensity} {<dx>} {,<dy>}
     unset dgrid3d
     show dgrid3d
\end{verbatim}
\postverbatim

デフォルトでは {\bf dgrid3d} は無効になっています。有効な場合は、ファイル
から読み込まれる 3 次元のデータ点は、格子曲面に当てはめるのに使用する
「散在した」データ (非格子状データ) であると見なされます。格子の寸法は、
{\bf set dgrid3d} 文で与えるパラメータ row\_size/col\_size の行数、列数で再
分割する散在データを囲む矩形 (bounding box) から求めます。格子は x 方
向 (行) と y 方向 (列) に等間隔です。z の値は散在するデータの z の値の
重み付きの平均、またはスプライン補間として計算します。言い変えれば、規
則的な間隔の格子を生成し、全ての格子点で元データの滑かな近似値を評価し
ます。そして元データの代わりにこの曲面を描画します。

dgrid3d モードが有効な間は、これを使用せずに格子曲面を生成する個々の点
や線分を描きたい場合は、対応する splot コマンドにキーワード {\bf nogrid}
を追加する必要があります。

デフォルトの列の数は行の数に等しく、そのデフォルトの値は 10 です。

元のデータから近似値を計算するためのいくつかのアルゴリズムが用意されて
いて、追加のパラメータを指定できるものもあります。これらの補間は、格子
点に近いデータ点ほど、その格子点に対してより強い影響を与えます。

{\bf splines} アルゴリズムは、薄いつぎ板を元にした補間計算を行います。これ
は追加パラメータを取りません。

{\bf qnorm} アルゴリズムは各格子点で入力データの重み付き平均を計算します。
各点には、格子点からの距離の逆数のあるベキ乗で重み付けします。そのベキ
は追加パラメータの整数値として指定できますが、デフォルトは 1 です。
このアルゴリズムがデフォルトになっています。

最後に、重み付き平均の計算用に、いくつかの平滑化重み付け関数 (kernel)
が用意されています: z = Sum\_i w(d\_i) * z\_i / Sum\_i w(d\_i), ここで z\_i
は i 番目のデータの値で、d\_i は現在の格子点と i 番目のデータ点の位置と
の距離です。すべての重み付け関数が、現在の格子点に近い方のデータ点には
大きな重み、遠い方のデータ点には小さい重みを付けます。

以下の重み付け関数が使用できます:
\preverbatim
\begin{verbatim}
     gauss :     w(d) = exp(-d*d)
     cauchy :    w(d) = 1/(1 + d*d)
     exp :       w(d) = exp(-d)
     box :       w(d) = 1                     d<1 の場合
                      = 0                     その他
     hann :      w(d) = 0.5*(1+cos(pi*d))     d<1 の場合
                 w(d) = 0                     その他
\end{verbatim}
\postverbatim

これら 5 つの平滑化重み付け関数のうち一つを使用する場合、2 つまでの追
加パラメータ dx と dy を指定できます。これらは、距離の計算時に座標の違
いをスケール変換するのに使えます:
d\_i = sqrt( ((x-x\_i)/dx)**2 + ((y-y\_i)/dy)**2 ), ここで、x,y は現在の
格子点の座標で、x\_i,y\_i は i 番目のデータ点の座標です。dy のデフォルト
の値は dx で、そのデフォルトの値は 1 になっています。パラメータ dx と
dy は、データ点が格子点へ「データそれ自身の単位で」の寄与を行う範囲の
制御を可能にします。

オプションキーワード {\bf kdensity} は、重み付け関数名の後ろでオプションの
スケール変換のパラメータの前に置くもので、これはアルゴリズムを変更して、
格子点用に計算する値を重みの和 ( z = Sum\_i w(d\_i) * z\_i ) では割らない
ようにします。z\_i がすべて定数の場合、これは事実上 2 変数の重み付け評
価を描画します: (上の 5 つのうちの一つの) 重み付け関数が各データ点に置
かれ、それらの重みの和がすべての格子点で評価され、そして元のデータの代
わりにこの滑らかな曲面が描画されます。これは、1 次元のデータ集合に対す
る {\bf smooth kdensity} オプションが行うこととおおまかには同じです。使用
例に関しては、kdensity2d.dem, heatmap\_points.dem を参照してください。

\gpinsetfigure{figure_dgrid3d}
オプション {\bf dgrid3d} は、散在するデータを重み付き平均で規則的な格子に
置き変える単純な仕組みに過ぎません。この問題に対するより洗練された手法
が存在しますので、この単純な方法が不十分であれば、{\bf gnuplot} の外でその
ような方法でデータを前処理するべきでしょう。

ネット上の以下のデモも参照
\verb+^+ $<$a href={\tt"}http://www.gnuplot.info/demo/dgrid3d.html{\tt"}$>$
dgrid3d
\verb+^+ $<$/a$>$
\verb+^+ $<$a href={\tt"}http://www.gnuplot.info/demo/scatter.html{\tt"}$>$
scatter
\verb+^+ $<$/a$>$
\href{http://www.gnuplot.info/demo/heatmap_points.html}{\tt heatmap\_points
}


\subsection*{仮変数 (dummy)}
\addcontentsline{toc}{subsection}{仮変数 (dummy)}
\label{commands set dummy}%
\label{commands show dummy}%
\label{set dummy}%
\label{show dummy}%
\label{unset dummy}%
\label{dummy}%
\index{dummy}%
コマンド {\bf set dummy} はデフォルトの仮変数名を変更します。

書式:
\preverbatim
\begin{verbatim}
     set dummy {<dummy-var>} {,<dummy-var>}
     show dummy
\end{verbatim}
\postverbatim

デフォルトでは、{\bf gnuplot} は {\bf plot} では、媒介変数モード、あるいは極座
標モードでは {\tt"}t{\tt"}, そうでなければ {\tt"}x{\tt"} を独立変数 (仮変数) とし、同様に
{\bf splot} では、媒介変数モードでは ({\bf splot} は極座標モードでは使えません)
{\tt"}u{\tt"} と {\tt"}v{\tt"}, そうでなければ {\tt"}x{\tt"} と {\tt"}y{\tt"} を独立変数とします。

仮変数は、物理的に意味のある名前、あるいはより便利な名前として使う方が
便利でしょう。例えば、時間の関数を描画する場合:

\preverbatim
\begin{verbatim}
     set dummy t
     plot sin(t), cos(t)
\end{verbatim}
\postverbatim

例:
\preverbatim
\begin{verbatim}
     set dummy u,v
     set dummy ,s
\end{verbatim}
\postverbatim

第二の例は、2 番目の変数を s とします。仮変数名をデフォルトの値に戻す
には以下のようにしてください。

\preverbatim
\begin{verbatim}
     unset dummy
\end{verbatim}
\postverbatim
\subsection*{文字エンコード (encoding)}
\addcontentsline{toc}{subsection}{文字エンコード (encoding)}
\label{commands set encoding}%
\label{commands show encoding}%
\label{set encoding}%
\label{show encoding}%
\label{encoding}%
\index{encoding}%
\label{encodings}%
\index{encodings}%
\label{utf8}%
\index{utf8}%
\label{sjis}%
\index{sjis}%
\index{UTF 8}%
\index{SJIS}%
コマンド {\bf set encoding} は文字のエンコード (encoding) を選択します。

書式:
\preverbatim
\begin{verbatim}
     set encoding {<value>}
     set encoding locale
     show encoding
\end{verbatim}
\postverbatim

有効な値 (value) は以下の通りです。
\preverbatim
\begin{verbatim}
  default     - 出力形式にデフォルトのエンコードの使用を命令
  iso_8859_1  - UTF-8 より最も一般的な西ヨーロッパエンコード。このエ
                ンコードは PostScript の世界での 'ISO-Latin1' です。
  iso_8859_15 - ユーロ記号を含む iso_8859_1 の亜種
  iso_8859_2  - 中央/東ヨーロッパで使用されるエンコード
  iso_8859_9  - (Latin5 として知られる) トルコで使用されるエンコード
  koi8r       - 良く使われる Unix のキリル文字エンコード
  koi8u       - Unix のウクライナ地方のキリル文字エンコード
  cp437       - MS-DOS のコードページ
  cp850       - 西ヨーロッパの OS/2 のコードページ
  cp852       - 中央/東ヨーロッパの OS/2 のコードページ
  cp950       - MS 版の Big5 (emf terminal のみ)
  cp1250      - 中央/東ヨーロッパの MS Windows のコードページ
  cp1251      - ロシア、セルビア、ブルガリア、マケドニア語 (8 ビット)
  cp1252      - 西ヨーロッパの MS Windows のコードページ
  cp1254      - トルコの MS Windows のコードページ (Latin5 の拡張)
  sjis        - Shift_JIS 日本語エンコード
  utf8        - 各文字の Unicode エントリポイントの、可変長 (マルチバ
                イト) 表現
\end{verbatim}
\postverbatim

コマンド {\bf set encoding locale} は、他のオプションとは違い、これは現在
のロカールを実行時の環境から決定しようとします。たいていのシステムでは
これは環境変数 LC\_ALL, LC\_CTYPE, LANG のいずれかによって制御されます。
この仕組みは、例えば wxt, pdf 出力形式で、UTF-8 や EUC-JP のようなマル
チバイト文字エンコードを通すために必要です。このコマンドは日付や数字な
どのロカール特有の表現には影響を与えません。
以下も参照: {\bf set locale (p.~\pageref{set locale})\index{locale}}, {\bf set decimalsign (p.~\pageref{set decimalsign})\index{decimalsign}}。

一般にエンコードの設定は、それがフォントの選択に影響を与えるように、出
力形式の設定の前に行なう必要があります。
\subsection*{誤差線の端 (errorbars)}
\addcontentsline{toc}{subsection}{誤差線の端 (errorbars)}
\label{commands set errorbars}%
\label{commands show errorbars}%
\label{set errorbars}%
\label{show errorbars}%
\label{errorbars}%
\index{errorbars}%
\label{commands set bars}%
\label{commands show bars}%
\label{set bars}%
\label{show bars}%
\label{bars}%
\index{bars}%
コマンド {\bf set errorbars} は、誤差グラフ (errorbar) の両端、および
boxplot につく箱ひげの両端のマークを制御します。

書式:
\preverbatim
\begin{verbatim}
     set errorbars {small | large | fullwidth | <size>} {front | back}
                   {line-properties}
     unset errorbars
     show errorbars
\end{verbatim}
\postverbatim

{\bf small} は 0.0 (交差線なし)、{\bf large} は 1.0 と同じです。サイズを指定し
なければデフォルトの値は 1.0 です。

キーワード {\bf fullwidth} は、errorbar を伴う boxplot と histograms にの
み関連します。これは errorbar の両端の幅を、対応する箱の幅と同じに設定
しますが、箱の幅自体を変更することはありません。

キーワード {\bf front}, {\bf back} は、塗り潰し長方形のついた errorbar のみに
関連します (boxes, candlesticks, histograms)。

誤差線 (errorbar) は、デフォルトでは関連する箱の境界線と同じ線属性で描
画しますが、これを誤差線用に用意した線属性に変更できます。

\preverbatim
\begin{verbatim}
    set errorbars linecolor black linewidth 0.5 dashtype '.'
\end{verbatim}
\postverbatim
\subsection*{非線形関数回帰 (fit)}
\addcontentsline{toc}{subsection}{非線形関数回帰 (fit)}
\label{commands set fit}%
\label{commands show fit}%
\label{set fit}%
\label{show fit}%
\label{set fit quiet}%
\label{set fit verbose}%
\label{set fit brief}%
\label{set fit results}%
\label{set fit prescale}%
\label{set fit limit}%
\label{set fit maxiter}%
\label{set fit errorscaling}%
\label{set fit errorvariables}%
\label{set fit logfile}%
\label{set fit script}%
\label{set fit v4}%
\label{set fit v5}%
コマンド {\bf set fit} は、{\bf fit} コマンド用のオプションを制御します。

書式:
\preverbatim
\begin{verbatim}
     set fit {nolog | logfile {"<filename>"|default}}
             {{no}quiet|results|brief|verbose}
             {{no}errorvariables}
             {{no}covariancevariables}
             {{no}errorscaling}
             {{no}prescale}
             {maxiter <value>|default}
             {limit <epsilon>|default}
             {limit_abs <epsilon_abs>}
             {start-lambda <value>|default}
             {lambda-factor <value>|default}
             {script {"<command>"|default}}
             {v4 | v5}
     unset fit
     show fit
\end{verbatim}
\postverbatim

オプション {\bf logfile} は、{\bf fit} コマンドがその出力を書き出す場所を定義
します。 引数 $<$filename$>$ は、単一引用符か二重引用符で囲む必要がありま
す。ファイル名を指定しなかった場合、または {\bf unset fit} を使用した場合
は、ログファイルはデフォルトの値である {\tt"}fit.log{\tt"}、または環境変数
{\bf FIT\_LOG} の値にリセットされます。与えられたログファイル名が / か $\backslash$ で
終っている場合、それはディレクトリ名と解釈され、ログファイルはそのディ
レクトリの {\tt"}fit.log{\tt"} となります。

デフォルトでは、そのログファイルに書かれる情報は、対話型出力にも出力し
ます。{\bf set fit quiet} はその対話型出力をオフにし、{\bf results} は最終結果
のみを出力します。{\bf brief} は、追加で fit のすべての繰り返しに関して 1
行の要約を提供します。{\bf verbose} は、バージョン 4 のような詳細な繰り返
しの報告を行います。

オプション {\bf errorvariables} を ON にすると、{\bf fit} コマンドで計算された
個々の当てはめパラメータの誤差が、そのパラメータの名前に {\tt"}\_err{\tt"} をつけ
た名前のユーザ定義変数にコピーされます。これは主に、当てはめ関数とデー
タの描画グラフの上にパラメータとその誤差を参照用に出力するのに使われま
す。例:

\preverbatim
\begin{verbatim}
      set fit errorvariables
      fit f(x) 'datafile' using 1:2 via a, b
      print "error of a is:", a_err
      set label 1 sprintf("a=%6.2f +/- %6.2f", a, a_err)
      plot 'datafile' using 1:2, f(x)
\end{verbatim}
\postverbatim

オプション {\bf errorscaling} を指定すると (デフォルト)、パラメータの計算
誤差を補正χ自乗 (reduced χ-square) で伸縮します。これは、結果として
補正χ自乗値になる、当てはめ計算の標準偏差 (FIT\_STDFIT) に等しいデータ
誤差を提供することと同等になります。オプション {\bf noerrorscaling} では、
評価誤差は、伸縮されない当てはめパラメータの標準偏差になります。
データの重みを指定しなければ、パラメータの誤差は常に伸縮されます。

オプション {\bf prescale} をオンにすると、Marquardt-Levenberg ルーチンに渡
す前に、各パラメータの値をそれらの初期値に従って事前にスケール変換しま
す。これは、各パラメータの大きさにかなり大きな違いがある場合に、大変有
効です。ただし、初期値が完全に 0 の当てはめパラメータには、決してこの
スケール変換は行いません。

反復数の限界値は、オプション {\bf maxiter} で制限できます。それを 0 か
{\bf default} とすると、それは限界がないことを意味します。

オプション {\bf limit} は、収束を検出するためのもっとも小さい数字の限界
(1e-5) のデフォルトの値を変更するのに使えます。自乗残差の和がこの数値
未満の比率の変化しかしない場合は、当てはめは「収束した」と判断されます。
オプション {\bf limit\_abs} は、自乗残差の和の変化の限界 (絶対値) を追加し
ます。デフォルトは 0 です。

アルゴリズムに関する別の制御をしたい場合、そして Marquardt-Levenberg
アルゴリズムを良く知っている場合、それに影響を与える以下のオプションが
利用できます: {\bf lambda} の初期値は、通常自動的に ML-行列から計算されま
すが、必要ならばオプション {\bf start\_lambda} を使ってそれを与えることがで
きます。それを {\bf default} とすると、再び自動設定が有効になります。オプ
ション {\bf lambda\_factor} は、対象とする関数のχ自乗値が意味ありげに増加
する/減少するときは常に {\bf lambda} を増加させる/減少させる因子を設定しま
す。それを {\bf default} とすると、デフォルトの因子である 10.0 にします。

オプション {\bf script} は、fit を中断したときに実行する {\bf gnuplot} コマン
ドを指定するものです。以下参照: {\bf fit (p.~\pageref{fit})\index{fit}}。この設定はデフォルトの {\bf replot}
や環境変数 {\bf FIT\_SCRIPT} よりも優先順位は上です。

オプション {\bf covariancevariables} をオンにすると、最終的なパラメータ間
の共分散をユーザ定義変数に保存します。各パラメータの組に対してその共分
散を保存する変数名は、{\tt"}FIT\_COV\_{\tt"} に最初のパラメータ名と {\tt"}\_{\tt"} と 2 つ目
のパラメータをつなげた名前になります。例えばパラメータ {\tt"}a{\tt"} と {\tt"}b{\tt"} に対
しては、その共分散変数名は {\tt"}FIT\_COV\_a\_b{\tt"} となります。

バージョン 5 では、コマンド fit の書式は変更され、キーワード {\bf error}
が指定されていない場合は単位重み ({\bf unitweights}) がデフォルトになりま
した。オプション {\bf v4} で gnuplot バージョン 4 のデフォルトの挙動に戻り
ます。以下も参照: {\bf fit (p.~\pageref{fit})\index{fit}}。
\subsection*{フォントパス (fontpath)}
\addcontentsline{toc}{subsection}{フォントパス (fontpath)}
\label{commands set fontpath}%
\label{commands show fontpath}%
\label{set fontpath}%
\label{show fontpath}%
\label{fontpath}%
\index{fontpath}%
書式:
\preverbatim
\begin{verbatim}
     set fontpath "/directory/where/my/fonts/live"
     set term postscript fontfile <filename>
\end{verbatim}
\postverbatim

[version 5.4 では非推奨]

{\bf fontpath} のディレクトリは、postscript 出力形式が作る PostScript 出力
内に埋め込むフォントにのみ関係します。
他の gnuplot 出力形式には何の影響も与えません。
あなたがフォントを埋めこまなければ、このコマンドはあなたには必要ありま
せんし、埋めこむ場合でも、以下に示す他のパスにフォントが見つからない場
合にのみ必要なだけです。

以前の版の gnuplot は、フォントを含む複数のディレクトリツリーを探索す
ることでフォント管理ソフトをまねていました。
しかし現在は、以下の場所を検索する方法に置き換わっています。
(1) {\bf set term postscript fontfile} コマンドで与えた絶対パス
(2) 現在のディレクトリ (カレントディレクトリ)
(3) {\bf set loadpath} で指定したディレクトリのすべて
(4) {\bf set fontpath} で指定したディレクトリ
(5) 環境変数 GNUPLOT\_FONTPATH に指定されているディレクトリ

注意: libgd の出力形式 (png gif jpeg sixel) 用にファイル名で指定するフ
ォントの検索パスは、環境変数 GDFONTPATH で制御できます。
\subsection*{軸の刻み書式 (format)}
\addcontentsline{toc}{subsection}{軸の刻み書式 (format)}
\label{commands set format}%
\label{commands show format}%
\label{set format}%
\label{show format}%
\label{format}%
\index{format}%
\label{format cb}%
座標軸の刻みの見出しは、コマンド {\bf set format} または {\bf set tics format}
または個別にコマンド {\bf set \{軸\}tics format} で書式を設定できます。入力
データに対する明示的な書式の使用法については、以下参照: {\bf using format (p.~\pageref{using format})\index{format}}。

書式:
\preverbatim
\begin{verbatim}
     set format {<axes>} {"<format-string>"} {numeric|timedate|geographic}
     show format
\end{verbatim}
\postverbatim

ここで、$<$axes$>$ (軸) は {\bf x}, {\bf y}, {\bf xy}, {\bf x2}, {\bf y2}, {\bf z}, {\bf cb}、または何
も指定しないか (その場合その書式はすべての軸に適用されます) のいずれか
です。以下の 2 つのコマンドは全く同等です:
\preverbatim
\begin{verbatim}
     set format y "%.2f"
     set ytics format "%.2f"
\end{verbatim}
\postverbatim

書式文字列の長さは 100 文字まで、と制限されています。デフォルトの書式
文字列は {\tt"}\% h{\tt"} で、LaTeX 系の出力形式では {\tt"}\$\%h\${\tt"} です。他に {\tt"}\%.2f{\tt"} や
{\tt"}\%3.0em{\tt"} のような書式が好まれることも多いでしょう。{\tt"}set format{\tt"} の後ろ
に何もつけずに実行すると、デフォルトに戻します。

空文字列 {\tt"}{\tt"} を指定した場合、刻み自身は表示しますが見出しはつけません。
刻み自身を消すには、 {\bf unset xtics} または {\bf set tics scale 0} を使用し
てください。

書式文字列では、改行文字 ($\backslash$n) や拡張文字列処理 (enhanced text) 用のマ
ークアップも使えます。 この場合は、単一引用符 (') でなく ({\tt"}) を使って
ください。以下も参照: {\bf syntax (p.~\pageref{syntax})\index{syntax}}。
{\tt"}\%{\tt"} が頭につかない文字はそのまま表示されます。よって、書式文字列内に
スペースや文字列などを入れることができます。例えば {\tt"}\%g m{\tt"} とすれば、
数値の後に {\tt"} m{\tt"} が表示されます。{\tt"}\%{\tt"} 自身を表示する場合には {\tt"}\%g \%\%{\tt"} の
ように 2 つ重ねます。

刻みに関するより詳しい情報については、以下も参照: {\bf set xtics (p.~\pageref{set xtics})\index{xtics}}。また、
この方法で出力される数字にデフォルト以外の小数分離文字を使うやり方につ
いては、以下参照: {\bf set decimalsign (p.~\pageref{set decimalsign})\index{decimalsign}}。
以下も参照
\href{http://www.gnuplot.info/demo/electron.html}{\tt エレクトロン (電子) デモ (electron.dem).
}

\subsubsection*{Gprintf}
\addcontentsline{toc}{subsubsection}{Gprintf}
\label{gprintf}%
\index{gprintf}%
文字列関数 gprintf({\tt"}format{\tt"},x) は、gnuplot コマンドの {\bf set format},
{\bf set timestamp} などと同様の、gnuplot 独自の書式指定子を使います。これ
らの書式指定子は、標準的な C 言語の関数である sprintf() のものと全く同
じではありません。gprintf() は、整形化される引数は一つしか受けつけませ
ん。そのために、gnuplot には sprintf({\tt"}format{\tt"},x1,x2,...) 関数も用意さ
れています。gnuplot の書式オプションの一覧については、以下参照:
{\bf format specifiers (p.~\pageref{format specifiers})\index{specifiers}}。
\subsubsection*{書式指定子 (format specifiers)}
\addcontentsline{toc}{subsubsection}{書式指定子 (format specifiers)}
\label{commands set format specifiers}%
\label{set format specifiers}%
\label{format specifiers}%
\label{format_specifiers}%
\index{format specifiers}%
使用可能な書式 (時間/日付モードでない場合) は以下の通りです:


\begin{center}
\begin{tabular}{|cl|} \hline
\multicolumn{2}{|c|}{目盛りラベルの数値書式指定子}\\
\hline \hline
書式 & 説明 \\ \hline
\verb@%f@ & 固定小数点表記 \\
\verb@%e@, \verb@%E@ & 指数表記; 指数の前に "e", "E" をつける \\
\verb@%g@, \verb@%G@ & \verb@%e@ (または \verb@%E@) と \verb@%f@ の略記 \\
\verb@%h@, \verb@%H@ & \verb@%g に "e%S" でなく "x10^{%S}" か "*10^{%S}" をつける@\\
\verb@%x@, \verb@%X@ & 16 進表記 \\
\verb@%o@, \verb@%O@ & 8 進表記 \\
\verb@%t@ & 10 進の仮数部 \\
\verb@%l@ & 現在の対数尺の底を基数とする仮数部 \\
\verb@%s@ & 現在の対数尺の底を基数とする仮数部; 補助単位 (scientific power) \\
\verb@%T@ & 10 進の指数部 \\
\verb@%L@ & 現在の対数尺の底を基数とする指数部 \\
\verb@%S@ & 補助単位の指数部 (scientific power) \\
\verb@%c@ & 補助単位文字 \\
\verb@%b@ & ISO/IEC 80000 記法 (ki, Mi, Gi, Ti, Pi, Ei, Zi, Yi) の仮数部\\
\verb@%B@ & ISO/IEC 80000 記法 (ki, Mi, Gi, Ti, Pi, Ei, Zi, Yi) の接頭辞\\
\verb@%P@ & πの倍数 \\
\hline
\end{tabular}
\end{center}


補助単位 ('scientific' power) は、指数が 3 の倍数であるようなものです。
補助単位指数 ({\bf {\tt"}\%c{\tt"}}) の文字への変換は -18 から +18 までの指数に対して
サポートされています。この範囲外の指数の場合、書式は通常の指数形式に
戻ります。

ほかに使うことのできる修飾詞 ({\tt"}\%{\tt"} と書式指定子の間に書くもの) には、
次のいくつかがあります: {\tt"}-{\tt"} は数字を左詰めにし、{\tt"}+{\tt"} は正の数にも符号を
つけ、{\tt"} {\tt"} (空白一つ) は負の数に {\tt"}-{\tt"} をつけるべき場所に正の数の場合に空
白を一つつけ、{\tt"}\#{\tt"} は小数点以下の数字が 0 だけであっても小数点をつけ、
正の整数は出力幅を定め、出力幅指定の直前の {\tt"}0{\tt"} (文字でなく数字) は先頭
に空いた部分を空白で埋める代わりに 0 で埋め、小数点の後に非負の整数を
書いたものは精度を意味します (整数の場合は最小桁、小数の場合は小数点以
下の桁数)。

これらの全ての修飾詞をサポートしていない OS もあるでしょうし、逆にこれ
以外のものをもサポートする OS もあるでしょう。疑わしい場合は、適切な資
料を調べ、そして実験してみてください。

例:
\preverbatim
\begin{verbatim}
     set format y "%t"; set ytics (5,10)          # "5.0" と "1.0"
     set format y "%s"; set ytics (500,1000)      # "500" と "1.0"
     set format y "%+-12.3f"; set ytics(12345)    # "+12345.000  "
     set format y "%.2t*10^%+03T"; set ytic(12345)# "1.23*10^+04"
     set format y "%s*10^{%S}"; set ytic(12345)   # "12.345*10^{3}"
     set format y "%s %cg"; set ytic(12345)       # "12.345 kg"
     set format y "%.0P pi"; set ytic(6.283185)   # "2 pi"
     set format y "%.0f%%"; set ytic(50)          # "50%"
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     set log y 2; set format y '%l'; set ytics (1,2,3)
     #"1.0", "1.0", "1.5" と表示される (3 は 1.5 * 2^1 なので)
\end{verbatim}
\postverbatim

丸めと指数が必要となるような書式で 9.999 の様な数字が書かれる場合は
問題が起こることがあります。

軸のデータ型が日時データ (time/date) の場合、書式文字列は 'strftime'
関数 ('gnuplot' 外。{\tt"}man strftime{\tt"} としてみてください) に関する有効な
指定を行う必要があります。使える入力書式指定の一覧に関しては、以下参照:
{\bf set timefmt (p.~\pageref{set timefmt})\index{timefmt}}。
\subsubsection*{日時データ指定子 (time/date specifiers)}
\addcontentsline{toc}{subsubsection}{日時データ指定子 (time/date specifiers)}
\label{commands set format date_specifiers}%
\label{commands set format time_specifiers}%
\label{set format date_specifiers}%
\label{set format time_specifiers}%
\label{set date_specifiers}%
\label{set time_specifiers}%
\label{date_specifiers}%
\index{date specifiers}%
\label{time_specifiers}%
\index{time specifiers}%
日時書式指定には、日時指定と相対時刻の 2 つのグループがあります。これ
らは、 軸の刻みのラベルを生成したり、時刻を文字列にエンコードするのに
使われます。以下参照: {\bf set xtics time (p.~\pageref{set xtics time})\index{time}}, {\bf strftime (p.~\pageref{strftime})\index{strftime}}, {\bf strptime (p.~\pageref{strptime})\index{strptime}}。

日時書式は以下の通りです。


\begin{center}
\begin{tabular}{|cl|} \hline
\multicolumn{2}{|c|}{日付指定子}\\
\hline \hline
書式 & 説明 \\ \hline
\verb@%a@ & 曜日名の省略形 (Sun,Mon,...) \\
\verb@%A@ & 曜日名 (Sunday,Monday,...) \\
\verb@%b@, \verb@%h@ & 月名の省略形 (Jan,Feb,...) \\
\verb@%B@ & 月名 (January,February,...) \\
\verb@%d@ & 日 (01--31) \\
\verb@%D@ & \verb@"%m/%d/%y"@ の簡略形 (出力のみ)\\
\verb@%F@ & \verb@"%Y-%m-%d"@ の簡略形 (出力のみ)\\
\verb@%k@ & 時 (0--23; 1 桁または 2 桁) \\
\verb@%H@ & 時 (00--23; 常に 2 桁) \\
\verb@%l@ & 時 (1--12; 1 桁または 2 桁) \\
\verb@%I@ & 時 (01--12; 常に 2 桁) \\
\verb@%j@ & その年の通算日 (001--366) \\
\verb@%m@ & 月 (01--12) \\
\verb@%M@ & 分 (00--60) \\
\verb@%p@ & "am" または "pm" \\
\verb@%r@ & \verb@"%I:%M:%S %p"@ の簡略形 (出力のみ)\\
\verb@%R@ & \verb@"%H:%M"@ の簡略形 (出力のみ)\\
\verb@%S@ & 秒 (出力では 00--60 の整数、入力では実数)\\
\verb@%s@ & 1970 年最初からの秒数 \\
\verb@%T@ & \verb@"%H:%M:%S"@ の簡略形 (出力のみ)\\
\verb@%U@ & その年の通算週 (CDC/MMWR 疫学的週) (入力では無視)\\
\verb@%w@ & 曜日番号 (0--6, 日曜 = 0) \\
\verb@%W@ & その年の通算週 (ISO 8601 の週番号) (入力では無視)\\
\verb@%y@ & 西暦 (0-99、1969-2068 年の下 2 桁) \\
\verb@%Y@ & 西暦 (4 桁) \\
\verb@%z@ & タイムゾーン、[+-]hh:mm \\
\verb@%Z@ & タイムゾーン名、文字列は無視 \\
\hline
\end{tabular}
\end{center}



書式 \%W (ISO の週番号) に関する詳細は、以下参照: {\bf tm\_week (p.~\pageref{tm_week})\index{tm week}}。
書式 \%U (CDC/MMWR: アメリカ疾病予防管理センター疫学週報の疫学的週番号)
は、週が月曜開始でなく日曜開始であることを除けば \%W と同様です。
警告: バージョン 5.4.2 より前の gnuplot では、書式 \%W と \%U はいずれも
信頼できません。{\tt"}week\_date.dem{\tt"} の単位テストを参照してください。

相対時刻書式は、時刻 0 地点のいずれかの側の時間間隔の長さを表現します。
相対時刻書式は以下の通りです。


\begin{center}
\begin{tabular}{|cl|} \hline
\multicolumn{2}{|c|}{時刻指定子}\\
\hline \hline
書式 & 説明 \\ \hline
\verb@%tD@ & 時刻 0 への相対的な正負の日付 \\
\verb@%tH@ & 時刻 0 への相対的な正負の時 (24 での巻戻しなし) \\
\verb@%tM@ & 時刻 0 への相対的な正負の分 \\
\verb@%tS@ & 直前の tH, tM 項目に対応する正負の秒数 \\
\hline
\end{tabular}
\end{center}



数字を表す書式には、先頭に 0 を埋めるために {\tt"}0{\tt"} (ゼロ) を前につけるこ
とができ、また最小の出力幅を指定するために正の整数を前につけることもで
きます。書式 \%S と \%t は精度指定も受けつけるので、小数の時/分/秒を書く
こともできます。

\paragraph*{例 (Examples)}
\addcontentsline{toc}{paragraph}{例 (Examples)}
\label{commands set format date_specifiers examples}%
\label{commands set format time_specifiers examples}%
\label{set format date_specifiers examples}%
\label{set format time_specifiers examples}%
\label{set date_specifiers examples}%
\label{set time_specifiers examples}%
\label{date_specifiers examples}%
\label{time_specifiers examples}%

日付書式の例:

x の値が、1976 年 12 月 25 日の深夜少し前の時刻に対応する秒数であると
仮定します。この位置の軸の刻みラベル文字列は、以下のようになります:

\preverbatim
\begin{verbatim}
     set format x                 # デフォルトでは "12/25/76 \n 23:11"
     set format x "%A, %d %b %Y"  # "Saturday, 25 Dec 1976"
     set format x "%r %D"         # "11:11:11 pm 12/25/76"
     set xtics time format "%B"   # "December"
\end{verbatim}
\postverbatim

時刻書式の例:

日付書式指定は、秒数での時間の値を、ある特定の日の時計の時刻にエンコー
ドします。よって、時は 0 から 23 まで、分は 0 から 59 までのみを動きま
すが、それらの負の値は、エポック (1970 年 1 月 1 日) より前の日付に対
応します。秒数での時間の値を、時間 0 に対する相対的な時/分/秒の数値と
して出力させるには、時間書式 \%tH \%tM \%tS を使用します。-3672.50 秒の値
は以下のように出力されます。

\preverbatim
\begin{verbatim}
     set format x                 # デフォルトでは "12/31/69 \n 22:58"
     set format x "%tH:%tM:%tS"   # "-01:01:12"
     set format x "%.2tH hours"   # "-1.02 hours"
     set format x "%tM:%.2tS"     # "-61:12.50"
\end{verbatim}
\postverbatim

\subsection*{格子線 (grid)}
\addcontentsline{toc}{subsection}{格子線 (grid)}
\label{commands set grid}%
\label{commands unset grid}%
\label{commands show grid}%
\label{set grid}%
\label{set grid vertical}%
\label{unset grid}%
\label{show grid}%
\label{grid}%
\index{grid}%
コマンド {\bf set grid} は格子線を描きます。

書式:
\preverbatim
\begin{verbatim}
     set grid {{no}{m}xtics} {{no}{m}ytics} {{no}{m}ztics}
              {{no}{m}x2tics} {{no}{m}y2tics} {{no}{m}rtics}
              {{no}{m}cbtics}
              {polar {<angle>}}
              {layerdefault | front | back}
              {{no}vertical}
              {<line-properties-major> {, <line-properties-minor>}}
     unset grid
     show grid
\end{verbatim}
\postverbatim

格子線は任意の軸の任意の大目盛り/小目盛りに対して有効/無効にでき、その
大目盛りと小目盛りに対する線種、線幅も指定でき、現在の出力装置がサポー
トする範囲で、あらかじめ定義したラインスタイルを使用することもできます
(以下参照: {\bf set style line (p.~\pageref{set style line})\index{line}})。

2 次元描画では極座標格子も選択できます。これは、gnuplot が極座標モード
(polar) のときの {\bf set grid} のデフォルトの挙動ですが、明示的に
{\bf set grid polar $<$angle$>$ rtics} とすれば、極座標モードであるなしに関わ
らず実行できます。同心円は r 軸の主目盛/副目盛で交差するように描き、動
径は $<$angle$>$ の角を空けて描きます。同心円の周囲の目盛りの刻みは、
{\bf set ttics} で制御しますが、これは動径の格子線を新たには生成しません。

{\bf set grid} が描く前に、必要な目盛りは有効になっていなければなりません。
{\bf gnuplot} は、存在しない目盛りに対する格子の描画の命令は単に無視します。
しかし、後でその目盛りが有効になればそれに対する格子も描きます。

小格子線に対する線種を何も指定しなければ、大格子線と同じ線種が使われま
す。デフォルトの極座標の角度は 30 度です。

{\bf front} を指定すると、格子線はグラフのデータの上に描かれます。{\bf back}
が指定された場合は格子線はグラフのデータの下に描かれます。{\bf front} を使
えば、密集したデータで格子線が見えなくなることを防ぐことができます。デ
フォルトでは {\bf layerdefault} で、これは 2D 描画では {\bf back} と同じです。
3D 描画のデフォルトは、格子とグラフの枠を 2 つの描画単位に分離し、格子
は後ろに、枠は描画データまたは関数の前に書きます。ただし、{\bf hidden3d}
モードでは、それがそれ自身の並び換えをしていますので、格子線の順番のオ
プションは全て無視され、格子線も隠線処理にかけられます。これらのオプシ
ョンは、実際には格子線だけでなく、{\bf set border} による境界線とその目盛
りの刻み (以下参照: {\bf set xtics (p.~\pageref{set xtics})\index{xtics}}) にも影響を及ぼします。

3 次元描画では、x 軸と y 軸の刻み位置に対する格子線は、デフォルトでは
z=0 に平行な底面上にしか描きませんが、キーワード {\bf vertical} は、格子線
を xz 面と yz 面にも zmin から zmax まで描くようにします。

z の格子線は描画の底面に描かれます。これは描画の周りに部分的な箱が描画
されている場合にはいいでしょう。以下参照: {\bf set border (p.~\pageref{set border})\index{border}}。
\subsection*{隠線処理 (hidden3d)}
\addcontentsline{toc}{subsection}{隠線処理 (hidden3d)}
\label{commands set hidden3d}%
\label{commands unset hidden3d}%
\label{commands show hidden3d}%
\label{set hidden3d}%
\label{unset hidden3d}%
\label{show hidden3d}%
\label{hidden3d}%
\index{hidden3d}%
\label{nohidden3d}%
\index{nohidden3d}%
{\bf set hidden3d} コマンドは曲面描画 (以下参照: {\bf splot (p.~\pageref{splot})\index{splot}}) で隠線処理を行な
うように指示します。その処理の内部アルゴリズムに関する追加機能もこのコ
マンドで制御できます。

書式:
\preverbatim
\begin{verbatim}
     set hidden3d {defaults} |
                  { {front|back}
                    {{offset <offset>} | {nooffset}}
                    {trianglepattern <bitpattern>}
                    {{undefined <level>} | {noundefined}}
                    {{no}altdiagonal}
                    {{no}bentover} }
     unset hidden3d
     show hidden3d
\end{verbatim}
\postverbatim

gnuplot の通常の表示とは異なり、隠線処理では与えられた関数、またはデー
タの格子線を、実際の曲面がその曲面の背後にあって隠されている描画要素は
見せないのと同じように処理します。これが機能するためには、その曲面が
'格子状' (以下参照: {\bf splot datafile (p.~\pageref{splot datafile})\index{datafile}}) である必要があり、またそれらは
{\bf with lines} か {\bf with linespoints} で描かれていなければいけません。

{\bf hidden3d} が有効なときは、格子線だけでなく、面部分や土台の上の等高線
(以下参照: {\bf set contour (p.~\pageref{set contour})\index{contour}}) も隠されます。複数の面を描画している場合は、
各曲面は自分自身と他の曲面で隠される部分も持ちます。曲面上への等高線の
表示 ({\bf set contour surface}) は機能しません。

グラフ上に曲面が一つもない状態でも、hidden3d は {\bf points}, {\bf labels},
{\bf vectors}, {\bf impulses} の 3 次元の描画スタイルに影響を与えます。
{\bf vectors} は、隠されない部分は線分 (矢先なし) として表示されます。グラ
フ内の各々の描画をこの処理から明示的に除外したいときは、{\bf with} 指定に
特別のオプション {\bf nohidden3d} を追加してください。

hidden3d は、pm3d モードで描画された、単色塗りの曲面には影響を与えませ
ん。pm3d の曲面に対して同様の効果を純粋に得たいならば、これの代わりに
{\bf set pm3d depthorder} を使ってください。複数の pm3d 曲面に通常の
{\bf hidden3d} 処理を組み合わせるには、オプション {\bf set hidden3d front} を
使用してください。これは、hidden3d 処理の全ての要素を、pm3d 曲面を含む
残りの他の描画要素の後に強制的に描画するものです。

関数値は格子孤立線の交点で評価されます。見ることの出来る線分を求めると
きは個々の関数値、あるいはデータ点の間はそのアルゴリズムによって線形補
間されます。これは、{\bf hidden3d} で描画する場合と {\bf nohidden3d} で描画す
る場合で関数の見かけが異なることを意味します。なぜならば、後者の場合関
数値は各標本点で評価されるからです。この違いに関する議論については、
以下参照: {\bf set samples (p.~\pageref{set samples})\index{samples}}, {\bf set isosamples (p.~\pageref{set isosamples})\index{isosamples}}。

曲面の隠される部分を消去するのに使われるアルゴリズムは、このコマンドで
制御されるいくつかの追加オプションを持っています。{\bf defaults} を指定す
ればそれらはすべて、以下で述べるようなデフォルトの値に設定されます。
{\bf defaults} が指定されなかった場合には、明示的に指定されたオプションの
みが影響を受け、それ以外のものは以前の値が引き継がれます。よって、それ
らのオプションの値をいちいち修正することなく、単に {\bf set \{no\}hidden3d}
のみで隠線処理をオン/オフできることになります。

最初のオプション {\bf offset} は '裏側' の線を描画する線の線種に影響を与え
ます。通常は曲面の表裏を区別するために、裏側の線種は、表側の線種より一
つ大きい番号の線種が使われます。{\bf offset $<$offset$>$} によって、その追加す
る値を、デフォルトの 1 とは異なる増分値に変更できます。{\bf nooffset} オプ
ションは {\bf offset 0} を意味し、これは表裏で同じ線種を使うことになります。

次のオプションは {\bf trianglepattern $<$bitpattern$>$} です。$<$bitpattern$>$ は
0 から 7 までの数字で、ビットパターンと解釈されます。各曲面は三角形に
分割されますが、このビットパターンの各ビットはそれらの三角形の各辺の表
示を決定します。ビット 0 は格子の水平辺、ビット 1 は格子の垂直辺、ビッ
ト 2 は、元々の格子が 2 つの三角形に分割されるときの対角辺です。デフォ
ルトのビットパターンは 3 で、これは全ての水平辺と垂直辺を表示し、対角
辺は表示しないことを意味します。対角辺も表示する場合は 7 を指定します。

オプション {\bf undefined $<$level$>$} は、定義されていない (欠けているデータ
または未定義の関数値) か、または与えられた x,y,z の範囲を超えているデ
ータ点に適用させるアルゴリズムを指示します。そのような点は、それでも
表示されてしまうか、または入力データから取り除かれます。取り除かれて
しまう点に接する全ての曲面要素は同様に取り除かれ、よって曲面に穴が生
じます。$<$level$>$ = 3 の場合、これは {\bf noundefined} と同じで、どんな点も
捨てられません。これは他の場所であらゆる種類の問題を引き起こし得るので
使わないべきです。$<$level$>$ = 2 では未定義の点は捨てられますが、範囲を超
えた点は捨てられません。$<$level$>$ = 1 では、これがデフォルトですが、範囲
を超えた点も捨てられます。

{\bf noaltdiagonal} を指定すると、{\bf undefined} が有効のとき (すなわち $<$level$>$
が 3 でない場合) に起こる以下の場合のデフォルトでの取扱いを変更できま
す。入力曲面の各格子状の部分は一方の対角線によって 2 つの三角形に分割
されます。通常はそれらの対角線の全てが格子に対して同じ方向を向いていま
す。もし、ある格子の 4 つの角のうち一つが {\bf undefined} 処理によりとり除
かれていて、その角が通常の方向の対角線に乗っている場合は、その両方の三
角形が取り除かれてしまいます。しかし、もしデフォルトの設定である
{\bf altdiagonal} が有効になっている場合、その格子については他方向の対角線
が代わりに選択され、曲面の穴の大きさが最小になるようにします。

{\bf bentover} オプションは今度は {\bf trianglepattern} とともに起こる別のこと
を制御します。かなりしわくちゃの曲面では、下の ASCII 文字絵に書いたよ
うに、曲面の 1 つの格子が 2 つに分けられた三角形の表と裏の反対側が見え
てしまう場合 (すなわち、元の四角形が折り曲げられている ('bent over')
場合) があります:

\preverbatim
\begin{verbatim}
                                                             C----B
        元の 4 角形:     A--B      表示される 4 角形:        |\   |
     ("set view 0,0")    | /|    ("set view 75,75" perhaps)  | \  |
                         |/ |                                |  \ |
                         C--D                                |   \|
                                                             A    D
\end{verbatim}
\postverbatim

曲面の格子の対角辺が $<$bitpattern$>$ の 2 bit によって見えるようにはなっ
てはいない場合、上の対角辺 CB はどこにも書かれないことになり、それが結
果の表示を理解しにくいものにします。デフォルトで定義される {\bf bentover}
オプションは、このような場合それを表示するようにします。もしそうしたく
ないなら、{\bf nobentover} を選択してください。
以下も参照
\href{http://www.gnuplot.info/demo/hidden.html}{\tt 隠線処理のデモ (hidden.dem)
}

および
\href{http://www.gnuplot.info/demo/singulr.html}{\tt 複雑な隠線のデモ (singulr.dem).
}

\subsection*{コマンド履歴 (history)}
\addcontentsline{toc}{subsection}{コマンド履歴 (history)}
\label{commands set history}%
\label{set history}%
書式:
\preverbatim
\begin{verbatim}
  set history {size <N>} {quiet|numbers} {full|trim} {default}
\end{verbatim}
\postverbatim

最近の gnuplot コマンド履歴を、デフォルトでは \$HOME/.gnuplot\_history
に保存します。このファイルが見つからず、かつ XDG デスクトップサポート
が有効な場合、gnuplot は代わりに \$XDG\_STATE\_HOME/gnuplot\_history を使
用します。

gnuplot の終了時にヒストリファイルに保存する行数を、history size の値
に制限します。{\bf set history size -1} とすると、ヒストリファイルに書き出
す行数の制限がなくなります。

デフォルトでは、コマンド {\bf history} は各コマンドの前に行番号を出力しま
す。{\bf history quiet} は、今回の実行に対してのみ番号を省略しますが、
{\bf set history quiet} は、今後のすべての {\bf history} の番号を省略します。

オプション {\bf trim} は、現在のコマンドに対する前の同じものを削除すること
で、コマンド履歴内の重複する行の数を減らします。

デフォルトの設定: {\bf set history size 500 numbers trim}
\subsection*{孤立線サンプル数 (isosamples)}
\addcontentsline{toc}{subsection}{孤立線サンプル数 (isosamples)}
\label{commands set isosamples}%
\label{commands show isosamples}%
\label{set isosamples}%
\label{show isosamples}%
\label{isosamples}%
\index{isosamples}%
関数を面として描画する場合の孤立線 (格子) の密度はコマンド {\bf set isosamples}
で変更できます。

書式:
\preverbatim
\begin{verbatim}
     set isosamples <iso_1> {,<iso_2>}
     show isosamples
\end{verbatim}
\postverbatim

各曲面グラフは $<$iso\_1$>$ 個の u-孤立線と $<$iso\_2$>$ 個の v-孤立線を持ちます。
$<$iso\_1$>$ のみ指定すれば、$<$iso\_2$>$ は $<$iso\_1$>$ と同じ値に設定されます。
デフォルトでは、u, v それぞれ 10 本の標本化が行われます。標本数をもっと
多くすればより正確なグラフが作られますが、時間がかかります。これらの
パラメータは、データファイルの描画には何も影響を与えません。

孤立線とは、曲面の一つの媒介変数を固定して、もう一つの媒介変数によって
描かれる曲線のことです。孤立線は、曲面を表示する単純な方法を与えます。
曲面 s(u,v) の媒介変数 u を固定することで u-孤立線 c(v) = s(u0,v) が
作られ、媒介変数 v を固定することで v-孤立線 c(u) = s(u,v0) ができます。

関数の曲面グラフが隠線処理なしで描かれている場合、{\bf set samples} は
各孤立線上で標本化される点の数を制御します。以下参照: {\bf set samples (p.~\pageref{set samples})\index{samples}},
{\bf set hidden3d (p.~\pageref{set hidden3d})\index{hidden3d}}。等高線描画ルーチンは、関数の点の標本化は各孤立線の交点
で行われると仮定しているので、関数の曲面と等高線の解像度を変更するとき
は、{\bf isosamples} と同じように {\bf samples} を変更するのが望ましいでしょう。
\subsection*{等値曲面 (isosurface)}
\addcontentsline{toc}{subsection}{等値曲面 (isosurface)}
\label{commands set isosurface}%
\label{commands show isosurface}%
\label{set isosurface}%
\label{show isosurface}%
書式:
\preverbatim
\begin{verbatim}
    set isosurface {mixed|triangles}
    set isosurface {no}insidecolor <n>
\end{verbatim}
\postverbatim
コマンド {\bf splot \$voxelgrid with isosurface} で描かれる曲面は、デフォル
トでは四角形と三角形の混合で構成されます。四角形を使用することで、見た
目の複雑さの印象を減らす効果があります。このコマンドには、三角形のみで
モザイク型曲面を描画するオプションも用意されています。

デフォルトでは、等値曲面の内部は、個別の色で塗ります。色の選択法は、
hidden3d 曲面の場合と同じで、基本となる線種にオフセットの $<$n$>$ を追加し
た値を使用します。曲面の内側と外側の両方を同じ色で塗るには、
{\bf set isosurface noinsidecolor} を使用してください。
\subsection*{Isotropic}
\addcontentsline{toc}{subsection}{Isotropic}
\label{commands set isotropic}%
\label{set isotropic}%
\label{isotropic}%
\index{isotropic}%
書式:
\preverbatim
\begin{verbatim}
    set isotropic
    unset isotropic
\end{verbatim}
\postverbatim
{\bf set isotropic} は、グラフのサイズとアスペクト比を、x, y, z 軸に沿う単
位長さが全く同じになるように合わせます。これは次のコマンドと同値で、こ
れの代わりに使えます: {\bf set size ratio -1; set view equal xyz}。
これは、2 次元、3 次元グラフの両方に影響します。

{\bf unset isotropic} は、2 次元、3 次元グラフの両方でその束縛を開放しま
す。これは以下の古いコマンドと同値ですが、覚えるにはこれの方が簡単でし
ょう: {\bf set size noratio; set view noequal\_axes}。
\subsection*{Jitter}
\addcontentsline{toc}{subsection}{Jitter}
\label{commands set jitter}%
\label{set jitter}%
\label{jitter}%
\index{jitter}%
\index{beeswarm}%
書式:
\preverbatim
\begin{verbatim}
     set jitter {overlap <yposition>} {spread <factor>} {wrap <limit>}
                {swarm|square|vertical}
\end{verbatim}
\postverbatim
例:
\preverbatim
\begin{verbatim}
     set jitter                    # 1 文字幅内の点の jitter
     set jitter overlap 1.5        # 1.5 文字幅内の点の jitter
     set jitter over 1.5 spread 0.5  # 同上、しかし x の移動は半分幅
\end{verbatim}
\postverbatim

データの 1 つ、または両方の座標が離散値に制限されている場合、多くの点
が完全に互いの真上に乗っかる場合があります。jitter (揺らぎ) は、これら
重なる点を、それらの座標にずらし値を与えることでその点を房状に広げます。
点が重なっていると見なすための閾値は、文字幅単位、あるいは任意の座標オ
プションを使って指定できます。以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。jitter は、2 次
元グラフの {\bf with points}, {\bf with impulses}, {\bf with boxplot} に影響を与え
ます。これは、3 次元のボクセルデータの描画にも影響を与えます。

デフォルトの jitter 動作は、点を x 方向のみ移動します。これは、「ビー
スォームグラフ」(bee swarm plot) と呼ばれる独特のパターンを作ります。
オプションのキーワード {\bf square} は、移動する点の x 座標に加えて、
{\bf overlap} で指定した距離だけは少なくとも離れた別々の階層にいるように y
座標も揃えます。

jitter を x ではなく y (のみ) に沿わせるには、キーワード {\bf vertical} を
使用してください。

文字単位での最大の移動距離は、キーワード {\bf wrap} で制限をかけられます。

重なりの判定基準と、揺らぎの大きさは、いずれもデフォルトでは 1 文字単
位であることに注意してください。よってグラフの見た目は、出力形式のフォ
ントサイズ、キャンバスサイズ、拡大率によって変更してしまいます。これを
避けるには、重なりの判定基準を y 座標系の単位 (キーワード {\bf first}) で
指定し、点のサイズと拡大係数を適切な値に調整してください。以下参照:
{\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}, {\bf pointsize (p.~\pageref{pointsize})\index{pointsize}}。

警告: jitter は、{\tt"}pointsize variable{\tt"} と両立しません。

{\bf set jitter} は、3 次元のボクセルデータでも有用です。ボクセル格子デー
タは、均等に配置された点の規則正しい格子であるため、多くの視方向で、点
が重なったり、モアレパターンを生成したりします。それらの副作用は、各格
子点からランダムに移動させた場所に描画する記号を置くことで避けることが
可能です。
\subsection*{凡例 (key)}
\addcontentsline{toc}{subsection}{凡例 (key)}
\label{commands set key}%
\label{commands unset key}%
\label{commands show key}%
\label{set key}%
\label{unset key}%
\label{show key}%
\label{key}%
\index{key}%
\label{nokey}%
\index{nokey}%
\label{legend}%
\index{legend}%
コマンド {\bf set key} は、描画領域内の各グラフに対するタイトルとサンプル
(線分、点、箱) を持つ凡例 (または表題) を有効にします。凡例の機能は、
{\bf set key off} か {\bf unset key} とすることで無効にできます。凡例の個々の
項目については、対応する plot コマンドでキーワード {\bf notitle} を使用す
ることで無効にできます。凡例のタイトル文字列は、オプション
{\bf set key autotitle} や、個々の {\bf plot} や {\bf splot} コマンド上の {\bf title}
キーワードで制御できます。

凡例の配置に影響するオプションの書式については以下参照:
{\bf key placement (p.~\pageref{key placement})\index{placement}}。
\\
 凡例の内容に影響するオプションの書式については以下参照:{\bf key layout (p.~\pageref{key layout})\index{layout}}。

書式 (大域的オプション):
\preverbatim
\begin{verbatim}
     set key {on|off} {default}
           {font "<face>,<size>"} {{no}enhanced}
           {{no}title "<text>" {<font or other text options>}}
           {{no}autotitle {columnheader}}
           {{no}box {<line properties>}} {{no}opaque {fc <colorspec>}}
           {width <width_increment>} {height <height_increment>}
     unset key
\end{verbatim}
\postverbatim

デフォルトでは、凡例はグラフ領域の内側の右上の角に置きます。
追加の {\bf font} 指定は、凡例のすべての要素に対するデフォルトになります。
凡例の頂上に、凡例の横幅全体に渡る、凡例全体用のオプションのタイトルを
与えるこもできます。このタイトルには、個々の描画タイトルのフォント、色、
位置合わせ、拡張文字列処理とは別のものを使うことができます。

凡例内には、plot コマンドの各要素に対して、そのタイトル文字列と、その
グラフの描画スタイルを示す線分か記号か形が 1 行で表現されます。タイト
ル文字列は、自動的に生成しますが、plot コマンド中に {\bf title {\tt"}text{\tt"}} を
入れることで明示的に与えることもできます。plot コマンドでキーワード
{\bf notitle} を使うとそのグラフの凡例行を生成しませんが、タイトルだけを消
したい場合は plot コマンドで {\bf title {\tt"}{\tt"}} としてください。

等高線描画では、凡例内に対応する行を追加します (以下参照: {\bf cntrlabel (p.~\pageref{cntrlabel})\index{cntrlabel}})。
ファイル名や関数名の代わりにキーワード {\bf keyentry} を与えたダミーの plot
コマンドを使うことで、凡例内に余分に行を追加することができます。以下
参照: {\bf keyentry (p.~\pageref{keyentry})\index{keyentry}}。

凡例の回りに枠を、ユーザ指定線属性で描くこともできます ({\bf box \{...\}})。
{\bf height} と {\bf width} の増分は、文字幅単位で指定し、それはその分だけ凡例
の箱のサイズを大きくしたり小さくしたりします。これは、主に凡例のエント
リを囲む境界を大きくするのに有用です。

デフォルトでは、凡例は一つのグラフと同時に作られます。すなわち、凡例の
記号とタイトルは、それに対応するグラフと同時に描かれます。それは、新し
いグラフが時には凡例の上に要素をかぶせて配置しうることを意味します。
{\bf set key opaque} は、凡例をすべてのグラフの描画が終った後に生成させま
す。この場合、凡例の領域を背景色か指定した色で塗りつぶし、その後で凡例
の記号とタイトルを書きます。
{\bf set key noopaque} でデフォルトに復帰できます。

凡例の文字列は、デフォルトでは拡張文字列モード ({\bf enhanced}) を使用しま
す。これはオプション {\bf noenhanced} で変更でき、凡例全体、あるいは凡例タ
イトルのみ、あるいはグラフタイトル毎に変更することも可能です。

{\bf set key default} は、以下のデフォルトの key の設定を復帰します。
\preverbatim
\begin{verbatim}
    set key notitle
    set key nobox noopaque
    set key fixed right top vertical Right noreverse enhanced autotitle
    set key noinvert samplen 4 spacing 1 width 0 height 0
    set key maxcolumns 0 maxrows 0
\end{verbatim}
\postverbatim

\subsubsection*{3 次元グラフの凡例 (3D key)}
\addcontentsline{toc}{subsubsection}{3 次元グラフの凡例 (3D key)}
\label{set key 3D}%
\label{set key splot}%
\label{key 3D}%
\label{key splot}%
\label{set key fixed}%
\label{key fixed}%
3 次元グラフ ({\bf splot}) の凡例の配置は、デフォルトでは {\bf fixed} オプショ
ンを使用します。これは、{\bf inside} による配置に似ていますが、重要な違い
が一つあります。3 次元グラフの視点が回転したりスケールすると、それに伴
なって描画の境界も変化します。凡例の配置が {\bf inside} の場合は、視点が変
更するときにこれらの境界が移動するため、凡例も移動します。{\bf fixed} の場
合は、視角やスケールの変更を無視して凡例を配置するので、グラフが回転し
ても、凡例の位置はキャンバスの一つの場所に固定されたままになります。

なお、2 次元グラフでは、{\bf fixed} オプションは完全に {\bf inside} と同じです。

{\bf splot} で等高線を書く場合、デフォルトでは異なる線種の個々の等高線レベ
ルに対して、別々の凡例の項目を生成します。これを変更するには、以下参照:
{\bf set cntrlabel (p.~\pageref{set cntrlabel})\index{cntrlabel}}。
\subsubsection*{凡例のサンプル (key examples)}
\addcontentsline{toc}{subsubsection}{凡例のサンプル (key examples)}
\label{set key examples}%
\label{key examples}%
以下はデフォルトの位置に凡例を表示します:
\preverbatim
\begin{verbatim}
     set key default
\end{verbatim}
\postverbatim

以下は、凡例をスクリーン座標での指定位置 (右上) に配置します。
\preverbatim
\begin{verbatim}
     set key at screen 0.85, 0.85
\end{verbatim}
\postverbatim

以下は、凡例をグラフより下 (奥) に置き、垂直方向の幅を最小化します。
\preverbatim
\begin{verbatim}
     set key below horizontal
\end{verbatim}
\postverbatim

以下は、凡例をグラフ領域の左下隅に置き、文字列は左揃えとし、上に凡例の
タイトルを与え、回りを太い境界線の枠で囲みます。
\preverbatim
\begin{verbatim}
     set key left bottom Left title 'Legend' box lw 3
\end{verbatim}
\postverbatim

\subsubsection*{凡例行の追加 (extra key entries)}
\addcontentsline{toc}{subsubsection}{凡例行の追加 (extra key entries)}
\label{key entries}%
\label{keyentry}%
\index{keyentry}%
\gpinsetfigure{figure_keyentry}
通常、各グラフに対して凡例内に 1 行のエントリが自動生成されます。凡例
内に見た目をより細かく制御したい場合は、コマンド {\bf plot}, {\bf splot} にキ
ーワード {\bf keyentry} をつけることで、余分に凡例行を追加できます。plot
にファイル名や関数名を与える代わりに、{\bf keyentry} をその場所に指定し、
スタイル情報 (凡例の記号を生成するのに使用される) とタイトルをその後ろ
に指定します。通常のタイトルフォント、文字色、{\bf at} 座標、拡張文字列処
理に対するオプションは、すべて適用します。
例:
\preverbatim
\begin{verbatim}
    set key outside right center
    plot $HEATMAP matrix with image notitle, \
         keyentry "Outcomes" left, \
         keyentry with boxes fc palette cb 0 title "no effect", \
         keyentry with boxes fc palette cb 1 title "threshold", \
         keyentry with boxes fc palette cb 3 title "typical range", \
         keyentry                            title "as reported in [12]", \
         keyentry with boxes fc palette cb 5 title "strong effect"
\end{verbatim}
\postverbatim

{\bf keyentry {\tt"}Outcomes{\tt"} left} の行は、通常の凡例を保持するスペースに、文
字列を左揃えで配置します。これは、凡例の幅全体に渡ってタイトルを埋め込
ませることを可能にします。同じ keyentry に title も与えた場合は、両方
の文字列が同じ行に現れ、それにより 2 列の凡例のエントリの生成が可能に
なります。
位置合わせ用のキーワード {\bf left/right/center} や, {\bf boxed} などが利用で
きます。
例:
\preverbatim
\begin{verbatim}
    plot ..., keyentry "West Linn" boxed title "locations"
\end{verbatim}
\postverbatim
\subsubsection*{凡例の自動タイトル (key autotitle)}
\addcontentsline{toc}{subsubsection}{凡例の自動タイトル (key autotitle)}
\label{commands set key autotitle}%
\label{set key autotitle}%
\label{key autotitle}%
\label{autotitle}%
\index{autotitle}%
\label{autotitle columnheader}%
\label{key autotitle columnheader}%
{\bf set key autotitle} は、凡例の各グラフを、plot コマンドで使用したデー
タファイルや関数の名前によって特定するようにしますが、これがデフォルト
の挙動です。{\bf set key noautotitle} は、その自動的なグラフのタイトル付け
を無効にします。
\index{columnheader}%
コマンド {\bf set key autotitle columnheader} は、各入力データの先頭行の各
列のエントリをテキスト文字列と解釈し、対応する描画グラフのタイトルとし
て使用します。描画される量が、複数の列データの関数である場合は、
gnuplot はどの列をタイトルの描画に使えばいいのかわかりませんので、その
場合、plot コマンド上で、例えば以下のように明示的にタイトルの列を指定
する必要があります。

\preverbatim
\begin{verbatim}
     plot "datafile" using (($2+$3)/$4) title columnhead(3) with lines
\end{verbatim}
\postverbatim

注意: {\bf set key autotitle columnheader} とすると、たとえ凡例 (key) が
{\bf unset key} で無効になっている場合でも、1 列目をデータとしてではなく、
列のヘッダとして処理します。これは、{\bf stats} や {\bf fit} のように凡例を作
らないコマンドに対しても同様です。データの先頭行をグラフのタイトルでは
なく columnheader として使用したい場合は、{\bf set datafile columnheaders}
としてください。

また、いずれの場合でも、plot コマンドに明示的な {\bf title} や {\bf notitle}
キーワードを指定すれば、それは {\bf set key autotitle} による設定より優先
されます。
\subsubsection*{凡例のレイアウト (key layout)}
\addcontentsline{toc}{subsubsection}{凡例のレイアウト (key layout)}
\label{set key layout}%
\label{key layout}%
凡例のレイアウト用オプション:
\preverbatim
\begin{verbatim}
    set key {vertical | horizontal}
           {maxcols {<max no. of columns> | auto}}
           {maxrows {<max no. of rows> | auto}}
           {columns <exact no. of columns>}
           {keywidth [screen|graph] <fraction>}
           {Left | Right}
           {{no}reverse} {{no}invert}
           {samplen <sample_length>} {spacing <line_spacing>}
           {width <width_increment>} {height <height_increment>}
           {title {"<text>"} {{no}enhanced} {center | left | right}}
           {font "<face>,<size>"} {textcolor <colorspec>}
\end{verbatim}
\postverbatim

凡例の要素を自動的に行、または列に並べるやり方は、上のキーワードの影響
を受けます。デフォルトは、{\bf vertical} で、これは可能な限り列数を少なく
しようとします。各要素は、垂直方向に余裕があるうちは縦に揃えて並べます
が、足りなくなれば新しい列に並べます。垂直方向の幅は、'maxrows' で上限
を設定できます。
{\bf horizontal} の場合は、可能な限り行数を少なくしようとし、水平方向の幅
は、'maxcols' で上限を設定できます。

自動で選択される行数、列数には満足できないかもしれません。その場合、
{\bf set key columns $<$N$>$} で列数を明確に指定できます。この場合、サンプル幅
({\bf samplen}) と全体の凡例幅 ({\bf keywidth}) も調整する必要があるかもしれま
せん。

デフォルトでは、最初の描画のラベルが凡例の一番上に現われ、それに続くラ
ベルがその下に並んで行きます。オプション {\bf invert} は、最初のラベルを凡
例の一番下に置き、それに続くラベルをその上に並べて行きます。このオプシ
ョンは、凡例のラベルの縦の並びの順番を、積み上げ形式のヒストグラム
({\bf histograms}) の箱の順番に合わせるときに便利でしょう。

{\bf set key title {\tt"}text{\tt"}} は、凡例の上に、全体に渡るタイトルを置きます。
そのタイトルのフォント、文字列の行揃え、およびその他の文字属性は、この
コマンドの {\bf {\tt"}text{\tt"}} の直後に必要なキーワードを置くことで指定できます。
他の場所で指定したフォントや文字列の属性は、凡例内のすべての文字列に適
用します

デフォルトのレイアウトは、スタイルサンプル (色、線、点、形状等) を凡例
の各行の左に置き、タイトル文字列を右に置きます。このサンプルと文字列の
位置は、{\bf reverse} キーワードで逆転できます。凡例内のグラフタイトルの行
揃えは、{\bf Left}、{\bf Right} (デフォルト) で指示します。スタイルサンプルの
水平方向の幅は、ほぼ文字幅単位の数値で設定できます ({\bf samplen})。

\preverbatim
\begin{verbatim}
TeX, LaTeX 系の出力形式や、整形情報が文字列に埋め込まれる出力形式を使
\end{verbatim}
\postverbatim
う場合は、{\bf gnuplot} は必要な幅の見積りがうまくはできませんので、自動的
な凡例のレイアウトは、見すぼらしいものになり得ます。凡例を左に置く場合
は、{\bf set key left Left reverse} という組合せがいいかもしれませんし、適
切な列数や全体の凡例幅を強制的に設定するといいかもしれません。

\subsubsection*{凡例の配置 (key placement)}
\addcontentsline{toc}{subsubsection}{凡例の配置 (key placement)}
\label{commands set key placement}%
\label{set key placement}%
\label{key placement}%
凡例の配置用オプション:
\preverbatim
\begin{verbatim}
     set key {inside | outside | fixed}
             {lmargin | rmargin | tmargin | bmargin}
             {at <position>}}
             {left | right | center} {top | bottom | center}
             {offset <dx>,<dy>}
\end{verbatim}
\postverbatim

この節では、自動的に生成される通常の凡例の配置の説明をします。二次的な
凡例の構成や、他の場所への描画タイトルの配置については、以下参照:
{\bf multiple keys (p.~\pageref{multiple keys})\index{keys}}。

\begin{minipage}{0.5\textwidth}
 配置の仕組みを理解ための最も重要な概念は、グラフ領域、すなわち内か外か
ということと、グラフ領域の境界との間の余白 (margin) を考えることです。
グラフ領域に沿って、キーワード {\bf left/center/right} (l/c/r) と
{\bf top/center/bottom} (t/c/b) は、凡例 (key) をその領域の内側のどこに置
くかを制御します。
モード {\bf inside} では、凡例はキーワード {\bf left} (l), {\bf right} (r), {\bf top}
(t), {\bf bottom} (b), {\bf center} (c) によって以下の図のように描画領域の境界
に向かって出力されます:

\end{minipage}
 \hspace{0.15\textwidth}
 \begin{minipage}{0.35\textwidth}
 
\preverbatim
\begin{verbatim}
    t/l   t/c   t/r
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
    c/l    c    c/r
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
    b/l   b/c   b/r
\end{verbatim}
\postverbatim

\end{minipage}
 
モード {\bf outside} でも上と同様に自動的に配置されますが、グラフ領域の境
界に対して、というよりもむしろ見た目に対して、というべきでしょう。すな
わち、グラフの境界は、グラフ領域の外の凡例の場所を作るために、内側に移
動することになります。しかし、これは他のラベルの邪魔をしますし、もしか
したら出力デバイスによってはエラーを引き起こすかもしれません。凡例の出
力に合わせてどの描画境界が移動するかは、上に述べた凡例の位置、および重
ね上げの方向に依存します。4 方向の中心揃えのオプション ({\bf center}) に関
しては、どの境界が動くのかに関するあいまいさはありませんが、角への出力
のオプションについては、重ね上げ方向が {\bf vertical} の場合は左または右の
境界が、{\bf horizontal} の場合は上または下の境界が、それぞれ内側に適切に
移動します。

\begin{minipage}{0.5\textwidth}
 余白 (margin) の書き方は、重ね上げの方向にかかわない自動的な配置を可能
にしています。{\bf lmargin} (lm), {\bf rmargin} (rm), {\bf tmargin} (tm),
{\bf bmargin} (bm) のうちの一つを、矛盾しない 1 方向のキーワードと組み合わ
せて使用した場合、凡例の位置は、以下の図に示すようにページの外側に沿っ
て配置されます。
キーワード {\bf above} と {\bf over} は {\bf tmargin} と同じ意味で、キーワード
{\bf below} と {\bf under} は {\bf bmargin} と同じ意味です。

\end{minipage}
 \hspace{0.1\textwidth}
 \begin{minipage}{0.4\textwidth}
 
\preverbatim
\begin{verbatim}
         l/tm  c/tm  r/tm
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
    t/lm                  t/rm
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
    c/lm                  c/rm
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
    b/lm                  b/rm
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
         l/bm  c/bm  r/bm
\end{verbatim}
\postverbatim


\end{minipage}
 
以前のバージョンとの互換性のために、{\bf above}, {\bf over}, {\bf below}, {\bf under}
に l/c/r や重ね上げ方向のキーワードがないと、{\bf center} と {\bf horizontal}
を使用します。キーワード {\bf outside} に t/b/c や重ね上げ方向のキーワード
がないと、{\bf top}, {\bf right}, {\bf vertical} (つまり上の t/rm と同じ) を使用し
ます。

凡例の位置 ($<$position$>$) は、以前のバージョンと同様単に x,y,z を指定し
てもいいですが、その最初のサンプル行の座標の座表系を選択するための 5
つのキーワード ({\bf first}, {\bf second}, {\bf graph}, {\bf screen}, {\bf character}) を
頭につけることもできます。詳細は、以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。$<$position$>$
が与えられた場合の {\bf left}, {\bf right}, {\bf top}, {\bf bottom}, {\bf center} の効果は、
label コマンドで配置される文字列の場合と同じように基準位置の位置揃えに
使用されます。すなわち、{\bf left} は凡例が $<$position$>$ の右に置かれて左合
わせで出力されます。他の場合も同様です。
\subsubsection*{凡例の位置の微調整 (key offset)}
\addcontentsline{toc}{subsubsection}{凡例の位置の微調整 (key offset)}
\label{commands set key offset}%
\label{set key offset}%
\label{key offset}%
凡例 (key) の配置オプションとは無関係に、凡例の最終的な場所を、位置の
ずれ (offset) を指定することでも手動で位置合わせすることができます。
いつものように、ずれの x, y 成分は character, graph, screen のいずれの
座標でも与えることができます。
\subsubsection*{凡例のサンプル (key samples)}
\addcontentsline{toc}{subsubsection}{凡例のサンプル (key samples)}
\label{commands set key samples}%
\label{set key samples}%
\label{key samples}%
デフォルトでは、グラフ上の各描画は凡例 (key) 内にそれぞれに対応するエ
ントリを生成します。このエントリには、描画タイトルと、その描画で使われ
るのと同じ色、同じ塗りつぶし属性による線/点/箱 のサンプルが入ります。
font と textcolor 属性は、凡例内に現われる個々の描画タイトルの見た目を
制御します。textcolor を {\tt"}variable{\tt"} にセットすると、凡例の各エントリの
文字列は、描画グラフの線や塗りつぶし色と同じ色になります。これは、以前
のある時期の gnuplot のデフォルトの挙動でした。

グラフ曲線のサンプルの線分の長さは {\bf samplen} で指定できます。その長さ
は、目盛りの長さと $<$sample\_length$>$*(文字幅) の和として計算します。
点の記号は、サンプル線分の中央に書かれるため、これは凡例内の点のサンプ
ル位置にも (線分は描かなくても) 影響を与えます。

凡例のベースライン間隔は、現在のフォントサイズに対する「1 行空き」
(single space) になっています。これは {\bf set key spacing $<$line-spacing$>$}
で変更できます。

$<$width\_increment$>$ は、文字列の長さに加えたり減らしたりする幅 (何文字分
か) を表す数値です。これは、凡例に外枠を書き、文字列に制御文字を使う場
合にだけ有用でしょう。{\bf gnuplot} は外枠の幅を計算するときは、ラベル文字
列の文字数を単純に数えるだけなので、それを修正するのに使えます。
\subsubsection*{複数の凡例の集約 (multiple keys)}
\addcontentsline{toc}{subsubsection}{複数の凡例の集約 (multiple keys)}
\label{multiple keys}%
\label{set key multiple keys}%
\label{key multiple keys}%
\index{legend}%
\gpinsetfigure{figure_multiple_keys}
各グラフのタイトルを、すべて自動的に生成される凡例 (key) 内に表示させ
る代わりに、表題や凡例を手動で配置することができます。これにより、例え
ば多重描画モード (multiplot) での各グラフ要素に対する表題を 1 箇所に集
約して作ることができるようになります。
\preverbatim
\begin{verbatim}
      set multiplot layout 3,2 columnsfirst
      set style data boxes
      plot $D using 0:6  lt 1 title at 0.75, 0.20
      plot $D using 0:12 lt 2 title at 0.75, 0.17
      plot $D using 0:13 lt 3 title at 0.75, 0.14
      plot $D using 0:14 lt 4 title at 0.75, 0.11
      set label 1 at screen 0.75, screen 0.22 "Custom combined key area"
      plot $D using 0:($6+$12+$13+$14) with linespoints title "total"
      unset multiplot
\end{verbatim}
\postverbatim
\subsection*{ラベル (label)}
\addcontentsline{toc}{subsection}{ラベル (label)}
\label{commands set label}%
\label{commands unset label}%
\label{commands show label}%
\label{set label}%
\label{unset label}%
\label{show label}%
\label{label}%
\index{label}%
\label{nolabel}%
\index{nolabel}%
{\bf set label} コマンドを使うことによって任意の見出し (label) をグラフ中
に表示することができます。

書式:
\preverbatim
\begin{verbatim}
     set label {<tag>} {"<label text>"} {at <position>}
               {left | center | right}
               {norotate | rotate {by <degrees>}}
               {font "<name>{,<size>}"}
               {noenhanced}
               {front | back}
               {textcolor <colorspec>}
               {point <pointstyle> | nopoint}
               {offset <offset>}
               {nobox} {boxed {bs <boxstyle>}}
               {hypertext}
     unset label {<tag>}
     show label
\end{verbatim}
\postverbatim

位置 ($<$position$>$) は x,y か x,y,z のどちらかで指定し、座標系を指定する
にはその座標の前に {\bf first}, {\bf second}, {\bf polar}, {\bf graph}, {\bf screen},
{\bf character} をつけます。詳細は、以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。

タグ ($<$tag$>$) は見出しを識別するための整数値です。タグを指定しなかった
場合未使用のもので最も小さい値が自動的に割り当てられます。現在の見出し
を変更するときはそのタグと変更したい項目を指定して {\bf set label} コマン
ドを使います。

$<$label text$>$ は文字列定数でも構いませんし、文字列変数、または文字列の
値を持つ式でも構いません。以下参照: {\bf strings (p.~\pageref{strings})\index{strings}}, {\bf sprintf (p.~\pageref{sprintf})\index{sprintf}}, {\bf gprintf (p.~\pageref{gprintf})\index{gprintf}}。

デフォルトでは、指定した点 x,y,z に見出しの文章の左端が来るように配置
されます。x,y,z を見出しのどこに揃えるかを変更するには変数
$<$justification$>$ を指定します。これには、{\bf left}, {\bf right}, {\bf center} の
いずれかが指定でき、それぞれ文章の左、右、真中が指定した点に来るよう
に配置さるようになります。描画範囲の外にはみ出るような指定も許されま
すが、座標軸の見出しや他の文字列と重なる場合があります。

箱枠付きのラベルをサポートする出力形式もあります。以下参照:
{\bf set style textbox (p.~\pageref{set style textbox})\index{textbox}}。回転させた文字列の箱付けは、すべての出力形式が可
能なわけではありません。

{\bf rotate} を指定するとラベルは縦書きになります。{\bf rotate by $<$degrees$>$}
を指定すると、文字列のベースラインを指定した角に設定します。ただし、文
字列の回転をサポートしていない出力形式もあります。

フォントとそのサイズは、出力形式がフォントの設定をサポートしていれば
{\bf font {\tt"}$<$name$>$\{,$<$size$>$\}{\tt"}} で明示的に選択できます。そうでない出力形式で
は、デフォルトのフォントが使われます。

通常は、現在の出力形式がサポートしていれば、ラベル文字列の全ての文字列
に拡張文字列処理モード (enhanced text mode) が使用されます。
{\bf noenhanced} を使用することで、特定のラベルを拡張文字列処理から外すこ
とができます。これは、ラベルが例えばアンダースコア (\_) を含んでいる場
合などに有用です。以下参照: {\bf enhanced text (p.~\pageref{enhanced text})\index{text}}。

{\bf front} が与えられると、見出しはデータのグラフの上に書かれます。{\bf back}
が与えられると (デフォルト)、見出しはグラフの下に書かれます。{\bf front}
を使うことで、密なデータによって見出しが隠されてしまうことを避けること
が出来ます。

{\bf textcolor $<$colorspec$>$} は見出し文字列の色を変更します。$<$colorspec$>$ は
線種、rgb 色、またはパレットへの割当のいずれかが指定できます。
以下参照: {\bf colorspec (p.~\pageref{colorspec})\index{colorspec}}, {\bf palette (p.~\pageref{palette})\index{palette}}。{\bf textcolor} は、{\bf tc} と省略可能です。
\preverbatim
\begin{verbatim}
  `tc default` は、文字色をデフォルトにします。
  `tc lt <n>` は、文字色を線種 <n> (line type)と同じものにします。
  `tc ls <n>` は、文字色を line style <n> と同じものにします。
  `tc palette z` は、見出しの z の位置に対応したパレット色になります。
  `tc palette cb <val>` は、色見本 (colorbox) の <val> の色になります。
  `tc palette fraction <val>` (0<=val<=1) は、[0:1] から `palette` の
      灰色階調/カラーへの写像に対応した色になります。
  `tc rgb "#RRGGBB"`, `tc rgb "0xRRGGBB"` は、任意の 24-bit RGB 色を
      設定します。
  `tc rgb 0xRRGGBB` も同じです (16 進定数値には引用符は不要)。
\end{verbatim}
\postverbatim

$<$pointstyle$>$ がキーワード {\bf lt}, {\bf pt}, {\bf ps} とともに与えられると (以下
参照: {\bf style (p.~\pageref{style})\index{style}})、与えられたスタイルと、与えられた線種の色で見出し位置に
点 (point) が描画され、見出し文字列は少し移動されます。このオプション
は {\bf mouse} 拡張された出力形式でのラベルの配置に、デフォルトで使用され
ています。見出し文字列近くの点の描画機能を off (これがデフォルト) にす
るには、{\bf nopoint} を使用してください。

その移動は、デフォルトでは、$<$pointstyle$>$ が与えられれば {\bf pointsize} の
単位で 1,1 で、$<$pointstyle$>$ が与えられていなければ 0,0 です。移動は、
追加の {\bf offset $<$offset$>$} でも制御できます。ここで、$<$offset$>$ は x,y か
または x,y,z の形式ですが、それに座標系を選択して、その前に {\bf first},
{\bf second}, {\bf graph}, {\bf screen}, {\bf character} のいずれかをつけることもでき
ます。詳細は、以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。

もし一つ (あるいはそれ以上の) 軸が時間軸である場合、座標は {\bf timefmt}
の書式にしたがって引用符で囲まれた文字列で与える必要があります。以下
参照: {\bf set xdata (p.~\pageref{set xdata})\index{xdata}}, {\bf set timefmt (p.~\pageref{set timefmt})\index{timefmt}}。

{\bf set label} に関して有効なオプションは、描画スタイル {\bf labels} でも有効
です。以下参照: {\bf labels (p.~\pageref{labels})\index{labels}}。この場合、{\bf textcolor}, {\bf rotate}, {\bf pointsize}
の属性の後ろにキーワード {\bf variable} をつけて、それらを固定値でないよう
にすることが可能です。その場合個々のラベルの対応する属性値は、{\bf using}
指定の追加列により決定します。

\subsubsection*{Examples}
\addcontentsline{toc}{subsubsection}{Examples}
\label{label examples}%
\label{set label examples}%
例:

(1,2) の位置に {\tt"}y=x{\tt"} と書く場合:
\preverbatim
\begin{verbatim}
     set label "y=x" at 1,2
\end{verbatim}
\postverbatim

Symbol フォントのサイズ 24 の {\tt"}シグマ{\tt"} (Σ) をグラフの真中に書く場合:
\preverbatim
\begin{verbatim}
     set label "S" at graph 0.5,0.5 center font "Symbol,24"
\end{verbatim}
\postverbatim

見出し {\tt"}y=x\verb+^+2{\tt"} の右端が (2,3,4) に来るようにし、タグ番号として 3 を使う
場合:
\preverbatim
\begin{verbatim}
     set label 3 "y=x^2" at 2,3,4 right
\end{verbatim}
\postverbatim

その見出しを中央揃えにする場合:
\preverbatim
\begin{verbatim}
     set label 3 center
\end{verbatim}
\postverbatim

タグ番号 2 の見出しを削除する場合:
\preverbatim
\begin{verbatim}
     unset label 2
\end{verbatim}
\postverbatim

全ての見出しを削除する場合:
\preverbatim
\begin{verbatim}
     unset label
\end{verbatim}
\postverbatim

全ての見出しをタグ番号順に表示する場合:
\preverbatim
\begin{verbatim}
     show label
\end{verbatim}
\postverbatim

x 軸が時間軸であるグラフに見出しを設定する例:
\preverbatim
\begin{verbatim}
     set timefmt "%d/%m/%y,%H:%M"
     set label "Harvest" at "25/8/93",1
\end{verbatim}
\postverbatim

データと、新たに当てはめられたパラメータによる当てはめ関数を描画したい
場合、{\bf fit} の後でかつ {\bf plot} の前に以下を実行します:
\preverbatim
\begin{verbatim}
     set label sprintf("a = %3.5g",par_a) at 30,15
     bfit = gprintf("b = %s*10^%S",par_b)
     set label bfit at 30,20
\end{verbatim}
\postverbatim

当てはめられるパラメータのついた関数の定義式を表示したい場合:
\preverbatim
\begin{verbatim}
     f(x)=a+b*x
     fit f(x) 'datafile' via a,b
     set label GPFUN_f at graph .05,.95
     set label sprintf("a = %g", a) at graph .05,.90
     set label sprintf("b = %g", b) at graph .05,.85
\end{verbatim}
\postverbatim

見出し文字列を小さい点から少しだけ移動する場合:
\preverbatim
\begin{verbatim}
     set label 'origin' at 0,0 point lt 1 pt 2 ps 3 offset 1,-1
\end{verbatim}
\postverbatim

pm3d を使った 3 次元のカラー曲面上のある点の位置に、その z の値 (この
場合 5.5) に対応した色を見出し文字列につける場合:
\preverbatim
\begin{verbatim}
     set label 'text' at 0,0,5.5 tc palette z
\end{verbatim}
\postverbatim
\subsubsection*{ハイパーテキスト (hypertext)}
\addcontentsline{toc}{subsubsection}{ハイパーテキスト (hypertext)}
\label{hypertext}%
\index{hypertext}%
\label{label hypertext}%
\label{set label hypertext}%
出力形式の中には (wxt, qt, svg, canvas, win) グラフ上の特定の位置やキ
ャンバス内のその他の部分にハイパーテキストを貼り付けることができるもの
があります。マウスをその場所に持っていくと、文字列を含む箱がポップアッ
プされますが、ハイパーテキストをサポートしない出力形式では、それは何も
表示しません。ハイパーテキストを貼り付けるには、そのラベルの {\bf point}
属性を有効にする必要があります。
拡張文字列制御書式は、ハイパーテキストラベルには適用されません。
例:
\preverbatim
\begin{verbatim}
     set label at 0,0 "Plot origin" hypertext point pt 1
     plot 'data' using 1:2:0 with labels hypertext point pt 7 \
          title 'mouse over point to see its order in data set'
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # この pm3d 曲面上の任意の場所にマウスを置くとその Z 座標をハイ
     # パーテキストとして表示
     splot '++' using 1:2:(F($1,$2)) with pm3d, \
           '++' using 1:2:(F($1,$2)):(sprintf("%.3f", F($1,$2))) \
                 with labels \
                 hypertext point lc rgb "0xff000000" notitle
\end{verbatim}
\postverbatim

wxt と qt 出力形式では、文字列が表示されたあとにハイパーテキスト部分を
左クリックするとそのハイパーテキストがクリップボードにコピーされます。


試験段階の機能 (仕様の細かい部分は変更の可能性あり) -
{\tt"}image\{$<$xsize$>$,$<$ysize$>$\}:$<$filename$>$\{$\backslash$n$<$caption text$>$\}{\tt"} の形式の文字列は
ポップアップボックス内で画像ファイルを表示させるようにします。サイズ指
定によりデフォルトのサイズ 300x200 を変更できます。認識する画像ファイ
ルの型は出力形式によって違いますが、*.png は常に OK です。画像ファイル
名の後ろに書いた文字列は、通常のハイパーテキストと同様に表示します。
例:
\preverbatim
\begin{verbatim}
     set label 7 "image:../figures/Fig7_inset.png\nFigure 7 caption..."
     set label 7 at 10,100 hypertext point pt 7
\end{verbatim}
\postverbatim

\subsection*{線種 (linetype)}
\addcontentsline{toc}{subsection}{線種 (linetype)}
\label{commands set linetype}%
\label{commands show linetype}%
\label{set linetype}%
\label{show linetype}%
コマンド {\bf set linetype} は各種描画に使用される基本的な線種 (linetype)
を再定義することを可能にします。このコマンドのオプションは、
{\tt"}set style line{\tt"} のものと全く同じです。ラインスタイルと違うところは、
{\bf set linetype} による再定義は永続的なことで、これは {\bf reset} の影響を受
けません。しかし、{\bf reset session} で初期線種の属性を復帰します。

例えば、線種 1 と 2 を以下のように再定義してみます:

\preverbatim
\begin{verbatim}
     set linetype 1 lw 2 lc rgb "blue" pointtype 6
     set linetype 2 lw 2 lc rgb "forest-green" pointtype 8
\end{verbatim}
\postverbatim

すると、それらの線種の最初の見た目がどうであったかに関わらず、lt 1 を
使用しているすべてのものが、その後は太い青線になります。この性質は、lt
1 によって作られた一時的なラインスタイルの定義のようなものにも適用され
ます。同様に、線種 2 は、その後は太い緑線になります。

この仕組みは、gnuplot で使用する線種列に対する個人的な好みを設定するの
にも使えます。それを行うには、実行時初期化ファイル \~{\ }/.gnuplot に、例え
ば以下のようなそれ用のコマンド列を追加することをお勧めします:

\preverbatim
\begin{verbatim}
     set linetype 1 lc rgb "dark-violet" lw 2 pt 1
     set linetype 2 lc rgb "sea-green"   lw 2 pt 7
     set linetype 3 lc rgb "cyan"        lw 2 pt 6 pi -1
     set linetype 4 lc rgb "dark-red"    lw 2 pt 5 pi -1
     set linetype 5 lc rgb "blue"        lw 2 pt 8
     set linetype 6 lc rgb "dark-orange" lw 2 pt 3
     set linetype 7 lc rgb "black"       lw 2 pt 11
     set linetype 8 lc rgb "goldenrod"   lw 2
     set linetype cycle 8
\end{verbatim}
\postverbatim

こうすると、あなたが gnuplot を実行する度に線種はこれらの値に初期化さ
れます。線種はあなたが好む数だけ初期化できます。再定義しない場合は、そ
れはデフォルトの属性を持ち続けます。例えば線種 3 を再定義から外せば、
それは青で pt 3, lw 1 となります。

同様のスクリプトファイルで、テーマベースの色選択の定義を行ったり、特定
の描画タイプ、あるいは特定の出力形式用に色をカスタマイズしたりすること
も可能です。

\index{cycle}%
コマンド {\bf set linetype cycle 8} は、大きな番号の線種に対しては色や線幅
に関するこれらの定義を再利用することを gnuplot に伝えます。すなわち、
線種 (linetype) 9-16, 17-24 等に対しては、これと同じ色、幅の列を使用し
ます。ただし、点の属性 (pointtype, pointsize, pointinterval) は、この
コマンドの影響は受けません。{\bf unset linetype cycle} はこの機能を無効に
します。大きな線種番号の線の属性を明示的に定義した場合は、それは小さい
番号の線種の属性の再利用よりも優先されます。
\subsection*{第 2 軸との対応 (link)}
\addcontentsline{toc}{subsection}{第 2 軸との対応 (link)}
\label{commands set link}%
\label{set link}%
\label{link}%
\index{link}%
書式:
\preverbatim
\begin{verbatim}
     set link {x2 | y2} {via <expression1> inverse <expression2>}
     unset link
\end{verbatim}
\postverbatim

コマンド {\bf set link} は、x 軸と x2 軸、または y 軸と y2 軸の間の対応を
設定します。$<$expression1$>$ は、第 1 軸の座標を第 2 軸に写像する数式です
が、$<$expression2$>$ は第 2 軸の座標を第 1 軸に写像する数式です。

例:

\preverbatim
\begin{verbatim}
     set link x2
\end{verbatim}
\postverbatim

これは、このコマンドの最も単純な形式で、x2 軸を範囲 (range) も伸縮
(scale) も方向も x 軸と全く同じにします。{\bf set xrange}, {\bf set x2range}
や {\bf set auto x} などのコマンドは、この場合 x 軸にも x2 軸にも作用しま
す。

\preverbatim
\begin{verbatim}
     set link x2 via x**2 inverse sqrt(x)
     plot "sqrt_data" using 1:2 axes x2y1, "linear_data" using 1:2 axes x1y1
\end{verbatim}
\postverbatim

このコマンドは、x 軸と x2 軸の、順方向と逆方向の対応を設定しています。
順方向の対応は、x2 軸の刻みラベルと、マウスの x2 座標を生成するのに使
い、逆方向の対応は、x2 軸系で指定された座標を描画するのに使います。こ
の対応は、非負の x 座標にのみ有効であることに注意してください。y2 軸に
対応させた場合、$<$expression1$>$ と $<$expression2$>$ には仮変数として y を使
う必要があります。
\subsection*{Lmargin}
\addcontentsline{toc}{subsection}{Lmargin}
\label{commands set lmargin}%
\label{set lmargin}%
\label{lmargin}%
\index{lmargin}%
コマンド {\bf set lmargin} は左の余白のサイズをセットします。詳細は、以下
参照: {\bf set margin (p.~\pageref{set margin})\index{margin}}。
\subsection*{読み込み検索パス (loadpath)}
\addcontentsline{toc}{subsection}{読み込み検索パス (loadpath)}
\label{commands set loadpath}%
\label{commands show loadpath}%
\label{set loadpath}%
\label{show loadpath}%
\label{loadpath}%
\index{loadpath}%
{\bf loadpath} の設定は、{\bf call}, {\bf load}, {\bf plot}, {\bf splot} コマンドのデータ
ファイル、コマンドファイルの検索パスを追加定義します。ファイルが現在の
ディレクトリに見つからなかった場合、{\bf loadpath} のディレクトリが検索さ
れます。

書式:
\preverbatim
\begin{verbatim}
     set loadpath {"pathlist1" {"pathlist2"...}}
     show loadpath
\end{verbatim}
\postverbatim

パス名は単一のディレクトリ名、または複数のパス名のリストとして入力しま
す。複数のパスからなるパスリストは OS 固有のパス区切り、例えば Unix で
はコロン (':'), MS-DOS, Windows, OS/2 ではセミコロン (';') 等で区切り
ます。{\bf show loadpath}, {\bf save}, {\bf save set} コマンドは、OS 固有のパス区
切りをスペース (' ') で置き換えます。

環境変数 GNUPLOT\_LIB が設定されている場合、その内容は {\bf loadpath} に追
加されますが、{\bf show loadpath} は、{\bf set loadpath} と GNUPLOT\_LIB の値を
別々に表示しますし、{\bf save}, {\bf save set} コマンドは、GNUPLOT\_LIB の値の
方は無視します。
\subsection*{ロケール (locale)}
\addcontentsline{toc}{subsection}{ロケール (locale)}
\label{commands set locale}%
\label{set locale}%
\label{locale}%
\index{locale}%
{\bf locale} の設定は {\bf \{x,y,z\}\{d,m\}tics} が書く日付の言語を決定します。

書式:
\preverbatim
\begin{verbatim}
     set locale {"<locale>"}
\end{verbatim}
\postverbatim

$<$locale$>$ にはインストールされたシステムで使うことの出来る任意の言語を
指定できます。可能なオプションについてはシステムのドキュメントを参照し
てください。コマンド {\bf set locale {\tt"}{\tt"}} は、環境変数 LC\_TIME, LC\_ALL, ま
たは LANG からロカールの値を決定しようとします。

小数点に関する locale を変更したい場合は、以下参照: {\bf set decimalsign (p.~\pageref{set decimalsign})\index{decimalsign}}。
文字エンコードを現在のロカールのものに変更したい場合は、以下参照:
{\bf set encoding (p.~\pageref{set encoding})\index{encoding}}。
\subsection*{対数軸 (logscale)}
\addcontentsline{toc}{subsection}{対数軸 (logscale)}
\label{commands set logscale}%
\label{commands unset logscale}%
\label{commands show logscale}%
\label{set logscale}%
\label{unset logscale}%
\label{show logscale}%
\label{set log}%
\label{logscale}%
\index{logscale}%
\label{nologscale}%
\index{nologscale}%
書式:
\preverbatim
\begin{verbatim}
     set logscale <axes> {<base>}
     unset logscale <axes>
     show logscale
\end{verbatim}
\postverbatim

ここで、$<$axes$>$ (軸) は、{\bf x}, {\bf x2}, {\bf y}, {\bf y2}, {\bf z}, {\bf cb}, {\bf r} の任意の
順序の組み合せが可能です。$<$base$>$ は、対数目盛りの底です (デフォルトの
底は 10)。軸を指定しなかった場合は、{\bf r} 以外のすべての軸が対象となりま
す。コマンド {\bf unset logscale} は、すべての軸の対数目盛りを解除します。
対数軸に対してつけられる目盛りの刻みは、等間隔ではないことに注意してく
ださい。以下参照: {\bf set xtics (p.~\pageref{set xtics})\index{xtics}}。

例:

x, z 両軸について対数目盛りを設定する:
\preverbatim
\begin{verbatim}
     set logscale xz
\end{verbatim}
\postverbatim

y 軸について底 2 とする対数目盛りを設定する:
\preverbatim
\begin{verbatim}
     set logscale y 2
\end{verbatim}
\postverbatim

pm3d plot 用に z と色の軸に対数目盛りを設定する:
\preverbatim
\begin{verbatim}
     set logscale zcb
\end{verbatim}
\postverbatim

z 軸の対数目盛りを解除する:
\preverbatim
\begin{verbatim}
     unset logscale z
\end{verbatim}
\postverbatim
\subsection*{マクロ (macros)}
\addcontentsline{toc}{subsection}{マクロ (macros)}
\label{commands set macros}%
\label{set macros}%
現在のバージョンの gnuplot では、マクロ置換は常に有効です。コマンドラ
イン内の @$<$stringvariablename$>$ の形式の部分文字列は、文字列変数
$<$stringvariablename$>$ に含まれるテキスト文字列に置き換えられます。以下
参照: {\bf substitution (p.~\pageref{substitution})\index{substitution}}。
\subsection*{3 次元座標系 (mapping)}
\addcontentsline{toc}{subsection}{3 次元座標系 (mapping)}
\label{commands set mapping}%
\label{commands show mapping}%
\label{set mapping}%
\label{show mapping}%
\label{mapping}%
\index{mapping}%
データが {\bf splot} に球面座標や円柱座標で与えられた場合、{\bf set mapping}
コマンドは {\bf gnuplot} にそれをどのように扱うかを指定するのに使われます。

書式:
\preverbatim
\begin{verbatim}
     set mapping {cartesian | spherical | cylindrical}
\end{verbatim}
\postverbatim

デフォルトではカーテシアン座標 (通常の x,y,z 座標) が使われます。

球面座標では、データは 2 つか 3 つの列 (またはその個数の {\bf using} エン
トリ) として与えられます。最初の 2 つは、{\bf set angles} で設定された単位
での方位角 (theta) と仰角 (phi) (すなわち {\tt"}経度{\tt"} と {\tt"}緯度{\tt"}) とみなされ
ます。半径 r は、もし 3 列目のデータがあればそれが使われ、もしなければ
1 に設定されます。各変数の x,y,z との対応は以下の通りです:

\preverbatim
\begin{verbatim}
     x = r * cos(theta) * cos(phi)
     y = r * sin(theta) * cos(phi)
     z = r * sin(phi)
\end{verbatim}
\postverbatim

これは、{\tt"}極座標系{\tt"} というより、むしろ {\tt"}地学上の座標系{\tt"} (緯度、経度) に
相当することに注意してください (すなわち、phi は z 軸となす角、という
より赤道から計った仰角、になります)。

円柱座標では、データはやはり 2 つか 3 つの列で与えられ、最初の 2 つは
theta ({\bf set angle} で指定された単位の) と z と見なされます。半径 r は
球面座標の場合と同様、3 列目のデータがあればそれが、なければ 1 と設定
されます。各変数の x,y,z との対応は以下の通りです:

\preverbatim
\begin{verbatim}
     x = r * cos(theta)
     y = r * sin(theta)
     z = z
\end{verbatim}
\postverbatim

{\bf mapping} の効果は、{\bf splot} コマンド上の {\bf using} 指定で実現することも
可能ですが、多くのデータファイルが処理される場合は {\bf mapping} の方が便
利でしょう。しかし、{\bf mapping} を使っていても、もしファイルのデータの順
番が適切でなかったら結局 {\bf using} が必要になってしまいます。

{\bf mapping} は {\bf plot} では何もしません。
\href{http://www.gnuplot.info/demo/world.html}{\tt world.dem: mapping のデモ。
}

\subsection*{周囲の余白 (margin)}
\addcontentsline{toc}{subsection}{周囲の余白 (margin)}
\label{commands set margins}%
\label{commands show margins}%
\label{set margin}%
\label{set margins}%
\label{show margins}%
\label{margins}%
\index{margins}%
{\bf margin} (周囲の余白) とは、描画領域の境界からキャンバスの一番外側まで
の間隔のことです。この余白の大きさは自動的にとられますが、コマンド
{\bf set margin} で変更することもできます。{\bf show margin} は現在の設定を表
示します。描画領域の境界から内側の描画要素までの間隔を変更したい場合は
以下参照: {\bf set offsets (p.~\pageref{set offsets})\index{offsets}}。

書式:
\preverbatim
\begin{verbatim}
     set lmargin {{at screen} <margin>}
     set rmargin {{at screen} <margin>}
     set tmargin {{at screen} <margin>}
     set bmargin {{at screen} <margin>}
     set margins <left>, <right>, <bottom>, <top>
     show margin
\end{verbatim}
\postverbatim

$<$margin$>$ のデフォルトの単位には、適切と思われる、文字の高さと幅が使わ
れます。正の値は余白の絶対的な大きさを定義し、負の値 (または無指定) は
{\bf gnuplot} によって自動計算される値を使うことになります。3 次元描画では
左の余白 (lmargin) のみが文字の大きさを単位として設定できます。

キーワード {\bf at screen} は、その余白の指定が全体の描画領域に対する割合
であることを意味します。これは、多重描画 (multiplot) モードでの 2D, 3D
グラフの角を正確に揃えるのに使えます。この配置は現在の {\bf set origin} や
や {\bf set size} の値を無視するようになっていて、それは多重描画内のグラフ
の配置の別の方法として使われることを意図しています。

描画の余白は通常目盛り、目盛りの見出し、軸の見出し、描画のタイトル、
日付、そして境界の外にある場合の凡例 (key) のサイズ等を元に計算されま
す。しかし、目盛りの刻みが境界でなく軸の方についている場合 (例えば
{\bf set xtics axis} によって)、目盛りの刻み自身とその見出しは余白の計算に
は含まれませんし、余白に書かれる他の文字列の位置の計算にも含まれません。
これは、軸と境界が非常に近い場合、軸の見出しが他の文字列を上書きする可
能性を示唆します。
\subsection*{Micro}
\addcontentsline{toc}{subsection}{Micro}
\label{commands set micro}%
\label{commands show micro}%
\label{commands unset micro}%
\label{set micro}%
\label{show micro}%
\label{unset micro}%
\label{micro}%
\index{micro}%
デフォルトでは、軸の刻みラベルの生成に使用する科学系出力のための書式指
定子 {\tt"}\%c{\tt"} は、「マイクロ」(10\verb+^+-6) を示す接頭辞として小文字の u を使い
ます。コマンド {\bf set micro} は、それとは異なる印字用文字 (unicode
U+00B5) を使用するよう gnuplot に指示します。その文字を表現するのに使
用されるバイト列は、現在の encoding に依存します。以下参照:
{\bf format specifiers (p.~\pageref{format specifiers})\index{specifiers}}, {\bf encoding (p.~\pageref{encoding})\index{encoding}}。

現在のエンコーディングによるデフォルトが満足いかない場合、欲しい表現を
生成する文字列をオプションとして与えることもできます。これは、latex 系
の出力形式では有用で、例えば以下のようにできます。
\preverbatim
\begin{verbatim}
    set micro "{\textmu}"
\end{verbatim}
\postverbatim

\subsection*{Minussign}
\addcontentsline{toc}{subsection}{Minussign}
\label{commands set minussign}%
\label{commands show minussign}%
\label{commands unset minussign}%
\label{set minussign}%
\label{show minussign}%
\label{unset minussign}%
\label{minussign}%
\index{minussign}%
gnuplot はほとんどの書式付き入力は C 言語のライブラリルーチンである
sprintf() で処理します。しかし、gnuplot には独自の書式化ルーチン
{\bf gprintf()} もあり、それは軸の刻み文字列の生成に使われています。C のラ
イブラリルーチンは、-7 のような負の数の表示には常にハイフン文字 (ASCII
$\backslash$055) を使用しますが、むしろその目的では、それとは異なる印字用のマイナ
ス符号文字 (Unicode U+2212) を使い −7 のように表示したいと多くの人々
は思うでしょう (訳注: 原文では '7' の前は Unicode の「マイナス記号」が
使われているが、ここでは JIS の全角マイナス記号 245D を用いた)。コマン
ド

\preverbatim
\begin{verbatim}
    set minussign
\end{verbatim}
\postverbatim

は、gprintf() の数字の出力に、ハイフンの代わりにマイナス符号文字を使用
するよう指示します。UTF-8 ロケールではそれは Unicode U+2212 に対応する
マルチバイト文字列になり、Window コードページ 1252 ロケールでは、これ
は 8 ビット文字の ALT+150 ({\tt"}en dash{\tt"}) になります。コマンド
{\bf set minussign} は、軸の刻みのラベルと、gprintf を明示的に呼び出して生
成された文字列に影響を与えますが、その他の場合のハイフンを含む文字列に
は何ら影響を与えません。以下参照: {\bf gprintf (p.~\pageref{gprintf})\index{gprintf}}。

LaTeX は、それ自身が負の符号を自前で処理する仕組みを持っているため、こ
のコマンドは、LaTeX 系の出力形式を使用している場合は無視されることに注
意してください。postscript 出力形式を使用する場合も、gnuplot の
postscript 用前処理ルーチンが ascii のハイフンコード $\backslash$055 を {\bf minus}
という名前の異なる文字に変換するので、このコマンドは必要はありません。

例 (utf8 ロケールを仮定):

\preverbatim
\begin{verbatim}
    set minus
    A = -5
    print "A = ",A                 # ハイフンを含む文字列を出力
    print gprintf("A = %g",A)      # U+2212 文字を含む文字列を出力
    set label "V = -5"             # ハイフンを含むラベル
    set label sprintf("V = %g",-5) # ハイフンを含むラベル
    set label gprintf("V = %g",-5) # U+2212 を含むラベル
\end{verbatim}
\postverbatim
\subsection*{白黒モード (monochrome)}
\addcontentsline{toc}{subsection}{白黒モード (monochrome)}
\label{commands set monochrome}%
\label{set monochrome}%
\label{monochrome}%
\index{monochrome}%
書式:
\preverbatim
\begin{verbatim}
    set monochrome {linetype N <linetype properties>}
\end{verbatim}
\postverbatim

コマンド {\bf set monochrome} は、線種群の別の設定法を選択しますが、それは
色の違いではなく、点線/破線パターンや線幅の違いによるものです。このコ
マンドは、gnuplot の以前のバージョンのある出力形式で monochrome オプシ
ョンとして提供していたものに置き換わるもので、後方互換性のため、それら
の出力形式で {\tt"}mono{\tt"} オプションを指定すると、暗黙で {\bf set monochrome} を
呼び出します。
例えば、
\preverbatim
\begin{verbatim}
    set terminal pdf mono
\end{verbatim}
\postverbatim
は、以下と同等です。
\preverbatim
\begin{verbatim}
    set terminal pdf
    set mono
\end{verbatim}
\postverbatim

白黒モード (monochrome) の選択は、明示的な RGB 色、パレット色を使用し
てのカラーの線の描画を妨げるものではありませんが、以下も参照:
{\bf set palette gray (p.~\pageref{set palette gray})\index{gray}}。
デフォルトでは 6 つの白黒線種が定義されていますが、それらの属性を変更
したり、白黒線種を追加することは、フル形式でそのコマンドを使用すること
でできます。白黒線種にほどこされた変更は、カラーの線種には影響を与えま
せんし、その逆も同様です。カラー線種に復帰するには、{\bf unset monochrome}
か、{\bf set color} としてください。
\subsection*{マウス (mouse)}
\addcontentsline{toc}{subsection}{マウス (mouse)}
\label{commands set mouse}%
\label{commands unset mouse}%
\label{set mouse}%
\label{unset mouse}%
\label{mousing}%
\index{mousing}%
\label{mouse}%
\index{mouse}%
\label{nomouse}%
\index{nomouse}%
コマンド {\bf set mouse} は、現在の対話型出力形式に対してマウス機能を有効
にします。これがデフォルトです。

マウスモードは 2 種類用意されています。2 次元モードは、{\bf plot} コマンド
と {\bf splot} の 2 次元射影 (すなわち、z の回転角が 0, 90, 180, 270, 360
度の {\bf set view}、および {\bf set view map}) で動作します。このモードでは、
マウス位置が追跡され、マウスボタンや矢印キーを使って拡大したり視点移動
したりできます。グラフに対応する凡例のタイトルや別なウィジェットアイコ
ンなどをクリックすることで、個々のグラフの描画をオン/オフに切り替える
ことをサポートする出力形式もあります。

{\bf splot} による 3 次元グラフに対しては、グラフの視方向 (view) と縮尺の
変更が、それぞれマウスボタン 1 と 2 (によるドラッグ) で行えます。ボタ
ン 2 の垂直方向のドラッグを shift キーと同時に行うと、z 軸の一番下の位
置 ({\bf xyplane}) を上下します。これらのボタンにさらに $<$ctrl$>$ キーを押す
と、座標軸は表示されますが、データの表示は消えます。これは大きなデータ
に対して有用でしょう。マウスボタン 3 は、z 軸の向き (azimuth) を制御し
ます (以下参照: {\bf set view azimuth (p.~\pageref{set view azimuth})\index{azimuth}})。

書式:
\preverbatim
\begin{verbatim}
     set mouse {doubleclick <ms>} {nodoubleclick}
               {{no}zoomcoordinates}
               {zoomfactors <xmultiplier>, <ymultiplier>}
               {noruler | ruler {at x,y}}
               {polardistance{deg|tan} | nopolardistance}
               {format <string>}
               {mouseformat <int> | <string> | function <f(x,y)>}
               {{no}labels {"labeloptions"}}
               {{no}zoomjump} {{no}verbose}
     unset mouse
\end{verbatim}
\postverbatim

オプション {\bf noruler} と {\bf ruler} は、定規 (ruler) 機能を off, on にしま
す。{\bf ruler} には座標を与えて原点を設定することもできます。{\bf ruler} が
on の間、ruler の原点からマウスまでのユーザ単位での距離が連続的に表示
されます。デフォルトでは、ruler のトグルスイッチは 'r' にキー割り当て
されています。

オプション {\bf polardistance} は、マウスカーソルから定規 (ruler) までの距
離を極座標でも表示 (距離、および角度または傾き) するかどうかを決定しま
す。これはデフォルトのキー割り当て '5' に対応します。

\index{labels}%
ボタン 2 の gnuplot の永続的なラベルを定義するには、オプション
{\bf labels} を使用します。デフォルトは {\bf nolabels} で、ボタン 2 は単に一時
的なラベルをマウス位置に描画します。ラベルは現在の {\bf mouseformat} の設
定に従って書かれます。{\bf labeloptions} 文字列は、コマンド {\bf set label} コ
マンドに渡されます。そのデフォルトは {\tt"}point pointtype 1{\tt"} で、これはラ
ベル位置に小さいプラス ({\bf +}) を描画します。一時的なラベルは、その次の
{\bf replot}、またはマウスズーム操作では現れません。永続的なラベルは、ラベ
ルの点の上で Ctrl キーを押してボタン 2 をクリックすることで消すことが
できます。実際のラベルの位置にどれ位近くでクリックしなければいけないか
の閾値も {\bf pointsize} で決定されます。

オプション {\bf verbose} が ON の場合、実行時の報告コマンドが表示されます。
このオプションはドライバウィンドウ上で {\bf 6} を打つことで ON/OFF がスイ
ッチできます。デフォルトでは {\bf verbose} は OFF になっています。

ドライバウィンドウ上で 'h' を打つと、マウスとキー割り当ての説明を表示
します。これは、ユーザ定義のキー割り当て、すなわち {\bf bind} コマンドによ
る {\bf hotkeys} も表示します。ユーザ定義のキー割り当てはデフォルトのキー
割り当てを無効にすることに注意してください。以下も参照: {\bf bind (p.~\pageref{bind})\index{bind}}。
\subsubsection*{Doubleclick}
\addcontentsline{toc}{subsubsection}{Doubleclick}
\label{set mouse doubleclick}%
\label{mouse doubleclick}%
ダブルクリックの解像度はミリ秒 (ms) 単位で与えます。これは、ボタン 1
用のもので、現在のマウス位置をクリップボード ({\bf clipboard}) にコピーす
るのに使う出力形式があります。デフォルトの値は 300 ms です。これを 0
ms に設定するとシングルクリックでそのコピーを行うようになります。
\subsubsection*{Format}
\addcontentsline{toc}{subsubsection}{Format}
\label{set mouse format}%
\label{mouse format}%
コマンド {\bf set mouse format} は、sprintf() に対する書式文字列の指定で、
マウスカーソルの [x,y] 座標を描画ウィンドウとクリップボードにどのよう
に表示するかを決定します。デフォルトは {\tt"}\% \#g{\tt"} です。

この設定は、{\tt"}set mouse mouseformat{\tt"} を置き換えるものです。
\subsubsection*{Mouseformat}
\addcontentsline{toc}{subsubsection}{Mouseformat}
\label{set mouse mouseformat}%
\label{mouseformat}%
\index{mouseformat}%
書式:
\preverbatim
\begin{verbatim}
    set mouse mouseformat i
    set mouse mouseformat "custom format"
    set mouse mouseformat function string_valued_function(x, y)
\end{verbatim}
\postverbatim
このコマンドは、現在のマウス位置を報告するのに使用する書式を制御します。
整数を指定することで、下の表の書式オプションの一つを選択できます。
文字列を指定すると、それを書式オプション 7 の sprintf() に対する書式と
して使用しますが、x, y に対応する 2 つの実数指定子を持つ必要があります。

最後の文字列を返すカスタム関数の指定は「試験段階」です。それは、スクリ
ーン座標からグラフ座標への逆の対応が x, y の両方を組で考慮する必要があ
るような座標系の読み出しを可能にします。例については、map\_projection
デモを参照してください。

例:
\preverbatim
\begin{verbatim}
    set mouse mouseformat "mouse x,y = %5.2g, %10.3f"
\end{verbatim}
\postverbatim
この文字列をまたオフにするには、{\bf set mouse mouseformat {\tt"}{\tt"}} とします。

以下の書式が利用可能です:

\preverbatim
\begin{verbatim}
0   デフォルト (1 と同じ)
1   軸の座標                            1.23, 2.45
2   グラフ座標 (0 から 1 まで)         /0.00, 1.00/
3   x = timefmt     y = 軸座標         [(`set timefmt` の設定), 2.45]
4   x = 日付        y = 軸座標         [31. 12. 1999, 2.45]
5   x = 時刻        y = 軸座標         [23:59, 2.45]
6   x = 日付/時刻   y = 軸座標         [31. 12. 1999 23:59, 2.45]
7   `set mouse mouseformat <format-string>` による書式
8   `set mouse mouseformat function <func>` による書式
\end{verbatim}
\postverbatim
\subsubsection*{マウススクロール (scrolling)}
\addcontentsline{toc}{subsubsection}{マウススクロール (scrolling)}
\label{set mouse scrolling}%
\label{mouse scrolling}%
\label{mouse wheel}%
\label{scrolling}%
\index{scrolling}%
\label{mousewheel}%
\index{mousewheel}%
マウスホイールは、2 次元、3 次元の両方のグラフで、x 軸、y 軸の範囲を調
節します。この調節は、デフォルトでは現在の範囲の 10\% の増加ですが、こ
れは、{\bf set mouse zoomfactor $<$x-multiplier$>$,$<$y-multiplier$>$} で変更でき
ます。
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 $<$wheel-up$>$ は y と y2 軸範囲を現在の範囲をわずかに上スクロール
\item
 $<$wheel-down$>$ は y と y2 軸範囲を現在の範囲をわずかに下スクロール
\item
 $<$shift+wheel-up$>$ は左スクロール (x と x2 軸範囲を減少)
\item
 $<$shift+wheel-down$>$ は右スクロール (x と x2 軸範囲を増加)
\item
 $<$control+wheel-up$>$ は現在のマウス位置中心にズームイン
\item
 $<$control+wheel-down$>$ は現在のマウス位置中心にズームアウト
\item
 $<$shift+control+wheel-up$>$ は x, x2 軸のみをズームイン
\item
 $<$shift+control+wheel-down$>$ は x, x2 軸のみをズームアウト
\end{itemize}
\subsubsection*{Zoom}
\addcontentsline{toc}{subsubsection}{Zoom}
\label{mouse zoom}%
\label{zoom}%
\index{zoom}%
現在のマウス位置中心のズームイン/ズームアウトの比率は、マウスホイール
で制御します (以下参照: {\bf scrolling (p.~\pageref{scrolling})\index{scrolling}})。

2 次元グラフの選択した領域を広げるには、マウスのドラッグで拡大範囲の線
引きを行い、そして左マウスボタンを押すことで行います。グラフウィンドウ
上でホットキー 'u' をタイプすることで元のグラフに復元できます。ホット
キー 'p' と 'n' は、拡大操作の履歴を後方と前方にたどります。

オプション {\bf zoomcoordinates} は、拡大の際に、拡大の枠の端にその座標を
書くかどうかを決定し、デフォルトでは ON になっています。

オプション {\bf zoomjump} が ON の場合、ボタン 3 による拡大範囲の選択を開
始すると、マウスポインタは自動的に少しだけずれた位置に移動します。これ
は、ごく小さい (または空でさえある) 拡大範囲を選択してしまうことを避け
るのに便利でしょう。デフォルトでは {\bf zoomjump} は OFF です。

\subsection*{Mttics}
\addcontentsline{toc}{subsection}{Mttics}
\label{commands set mttics}%
\label{commands unset mttics}%
\label{commands show mttics}%
\label{set mttics}%
\label{unset mttics}%
\label{show mttics}%
\label{mttics}%
\index{mttics}%
\label{nomttics}%
\index{nomttics}%
極座標グラフの周囲の小目盛り刻みの印は {\bf set mttics} で制御されます。以
下参照: {\bf set mxtics (p.~\pageref{set mxtics})\index{mxtics}}。
\subsection*{多重描画モード (multiplot)}
\addcontentsline{toc}{subsection}{多重描画モード (multiplot)}
\label{commands set multiplot}%
\label{commands unset multiplot}%
\label{set multiplot}%
\label{unset multiplot}%
\label{multiplot}%
\index{multiplot}%
\label{nomultiplot}%
\index{nomultiplot}%
\label{layout}%
\index{layout}%
コマンド {\bf set multiplot} は {\bf gnuplot} を多重描画モードにします。これ
は、複数のグラフを同じページや同じスクリーンウィンドウに隣り同士に並
べて表示します。

書式:
\preverbatim
\begin{verbatim}
     set multiplot
         { title <page title> {font <fontspec>} {enhanced|noenhanced} }
         { layout <rows>,<cols>
           {rowsfirst|columnsfirst} {downwards|upwards}
           {scale <xscale>{,<yscale>}} {offset <xoff>{,<yoff>}}
           {margins <left>,<right>,<bottom>,<top>}
           {spacing <xspacing>{,<yspacing>}}
         }
     set multiplot {next|previous}
     unset multiplot
\end{verbatim}
\postverbatim

出力形式 (terminal) によっては、コマンド {\bf unset multiplot} が与えられ
るまで何の描画も表示されないことがあります。この場合このコマンドにより
ページ全体の描画が行なわれ、gnuplot は標準の単一描画モードになります。
それ以外の出力形式では、各 {\bf plot} コマンドがそれぞれ表示を更新します。

\index{inset}%
コマンド {\bf clear} は、次の描画に使う長方形領域を消すのに使えます。典型
的には、大きいグラフの内部に小さなグラフを挿入するような場合に必要です。

定義済の見出しやベクトルは、各描画において、毎回現在のサイズと原点に従
って書かれます (それらが {\bf screen} 座表系で定義されていない場合)。それ
以外の全ての {\bf set} で定義されるものも各描画すべてに適用されます。もし
1 度の描画にだけ現われて欲しいものを作りたいなら、それが例えば日付
(timestamp) だとしたら、{\bf set multiplot} と {\bf unset multiplot} で囲まれ
たブロック内の {\bf plot} (または {\bf splot}, {\bf replot}) 命令の一つを
{\bf set time} と {\bf unset time} ではさんでください。

multiplot のタイトルは、個々の描画タイトルがあったとしても、それとは別
のもので、ページの上部にそのためのキャンバス全体の幅にわたるスペースが
確保されます。

layout が指定されていない場合、あるいはより良い位置決めをしたい場合は、
コマンド {\bf set origin} と {\bf set size} 各描画で正しい位置に設定する必要が
あります。詳細は、以下参照: {\bf set origin (p.~\pageref{set origin})\index{origin}}, {\bf set size (p.~\pageref{set size})\index{size}}。

例:
\preverbatim
\begin{verbatim}
     set multiplot
     set size 0.4,0.4
     set origin 0.1,0.1
     plot sin(x)
     set size 0.2,0.2
     set origin 0.5,0.5
     plot cos(x)
     unset multiplot
\end{verbatim}
\postverbatim

これは、cos(x) のグラフを、sin(x) の上に積み重ねて表示します。

{\bf set size} と {\bf set origin} は全体の描画領域を参照し、それは各描画で利
用されます。以下も参照: {\bf set term size (p.~\pageref{set term size})\index{size}}。描画境界を一列に揃えたいなら
ば、{\bf set margin} コマンドで、境界の外の余白サイズを同じサイズに揃える
ことが出来ます。その使用に関しては、以下参照: {\bf set margin (p.~\pageref{set margin})\index{margin}}。余白サイズ
は文字サイズ単位の絶対的な数値単位を使用することに注意してください。よ
って残ったスペースに描かれるグラフは表示するデバイスの表示サイズに依存
します。例えば、プリンタとディスプレイの表示は多分違ったものになるでし
ょう。

オプション {\bf layout} により、各描画の前にそれぞれ与えていた {\bf set size}
や {\bf set origin} コマンドなしに、単純な複数グラフの描画を作成できます。
それらの設定は自動的に行なわれ、いつでもその設定を変更できます。
{\bf layout} では表示は $<$rows$>$ 行と $<$cols$>$ 列の格子に分割され、各格子は、
その後に続く対応する名前のオプションによって行 (rowsfirst)、あるいは列
(columnsfirst) が先に埋められて行きます。描画グラフの積み上げは下方向
({\bf downwards}) に、または上方向 ({\bf upwards}) に伸びるようにできます。デ
フォルトは {\bf rowsfirst} で {\bf downwards} です。
コマンド {\bf set multiplot next} と {\bf set multiplot previous} は、レイアウ
トオプションを使用している場合のみに関係します。{\bf next} は、格子内の次
の位置をスキップし、空白を残します。{\bf prev} は、直前に描画した位置の直
前の格子位置に戻ります。

各描画は {\bf scale} で伸縮を、{\bf offset} で位置の平行移動を行なうことができ
ます。scale や offset の y の値が省略された場合は、x の値がそれに使用
されます。{\bf unset multiplot} により自動配置機能はオフになり、そして
{\bf set size} と {\bf set origin} の値は {\bf set multiplot layout} の前の状態に
復帰されます。

例:
\preverbatim
\begin{verbatim}
     set size 1,1
     set origin 0,0
     set multiplot layout 3,2 columnsfirst scale 1.1,0.9
     [ ここには 6 つまでの描画コマンド ]
     unset multiplot
\end{verbatim}
\postverbatim

上の例では 6 つの描画が 2 列の中に上から下へ、左から右へと埋められて行
きます。各描画は水平サイズが 1.1/2、垂直サイズが 0.9/3 となります。

他にも、そのレイアウト内のすべてのグラフに一様なマージンをオプション
{\bf layout margins} と {\bf spacing} で設定することができますが、これは一緒に
使う必要があります。{\bf margins} は、格子配置の複数グラフ全体の外側に対す
るマージンを設定します。

{\bf spacing} は、隣接する部分グラフ間の隙間を与えますが、{\bf character} か
{\bf screen} 単位で指定することもできます。単一の値を指定すると、それは x,
y の両方の方向に使用されますが、2 つの異なる値を指定することもできます。

一つの値に単位がなければ、直前のマージン設定のものを使用します。

例:
\preverbatim
\begin{verbatim}
     set multiplot layout 2,2 margins 0.1, 0.9, 0.1, 0.9 spacing 0.0
\end{verbatim}
\postverbatim

この場合、左にあるグラフの左の境界は、スクリーン座標の 0.1 に置かれ、
右にあるグラフの右の境界はスクリーン座標 0.9 の場所に置かれる、等とな
ります。各グラフの隙間は 0 に指定しているので、内側の境界線は重なりま
す。

例:
\preverbatim
\begin{verbatim}
     set multiplot layout 2,2 margins char 5,1,1,2 spacing screen 0, char 2
\end{verbatim}
\postverbatim

これは、左のグラフの境界は、キャンバスの左端から 5 文字幅の場所に、右
のグラフの右の境界は、キャンバスの端から 1 文字幅の場所にあるようなレ
イアウトを生成します。下のマージンは 1 文字分の高さ、上のマージンは 2
文字分の高さになります。グラフ間の水平方向の隙間はありませんが、縦方向
には 2 文字分の高さに等しい隙間があります。

例:
\preverbatim
\begin{verbatim}
     set multiplot layout 2,2 columnsfirst margins 0.1,0.9,0.1,0.9 spacing 0.1
     set ylabel 'ylabel'
     plot sin(x)
     set xlabel 'xlabel'
     plot cos(x)
     unset ylabel
     unset xlabel
     plot sin(2*x)
     set xlabel 'xlabel'
     plot cos(2*x)
     unset multiplot
\end{verbatim}
\postverbatim

以下参照: {\bf remultiplot (p.~\pageref{remultiplot})\index{remultiplot}}, {\bf new multiplots (p.~\pageref{new multiplots})\index{multiplots}}。また以下も参照
\href{http://www.gnuplot.info/demo/multiplt.html}{\tt multiplot のデモ (multiplt.dem)
}

\subsection*{Mx2tics}
\addcontentsline{toc}{subsection}{Mx2tics}
\label{commands set mx2tics}%
\label{commands unset mx2tics}%
\label{commands show mx2tics}%
\label{set mx2tics}%
\label{unset mx2tics}%
\label{show mx2tics}%
\label{mx2tics}%
\index{mx2tics}%
\label{nomx2tics}%
\index{nomx2tics}%
x2 (上) 軸の小目盛り刻みの印は {\bf set mx2tics} で制御されます。以下参照:
{\bf set mxtics (p.~\pageref{set mxtics})\index{mxtics}}。
\subsection*{小目盛り刻み (mxtics)}
\addcontentsline{toc}{subsection}{小目盛り刻み (mxtics)}
\label{commands set mxtics}%
\label{commands unset mxtics}%
\label{commands show mxtics}%
\label{set mxtics}%
\label{unset mxtics}%
\label{show mxtics}%
\label{mxtics}%
\index{mxtics}%
\label{nomxtics}%
\index{nomxtics}%
x 軸の小目盛り刻みの印は {\bf set mxtics} で制御されます。{\bf unset mxtics}
によってそれを表示させなくすることが出来ます。同様の制御コマンドが各軸
毎に用意されています。

書式:
\preverbatim
\begin{verbatim}
     set mxtics <freq>
     set mxtics default
     set mxtics time <N> <units>
     unset mxtics
     show mxtics
\end{verbatim}
\postverbatim

これらの書式は {\bf mytics}, {\bf mztics}, {\bf mx2tics}, {\bf my2tics}, {\bf mrtics},
{\bf mttics}, {\bf mcbtics} に対しても同じです。

$<$freq$>$ は、大目盛り間の、小目盛りによって分割される区間の数であり、小
目盛りの数ではありません。通常の線形軸に対するデフォルトの値は、2 (目
盛り 1 つ) か 5 (目盛り 4 つ) で、これは大目盛りの間隔によって決まりま
す。

{\bf default} を指定すると小目盛りの数はデフォルトの値に戻ります。

{\bf set mxtics time $<$N$>$ $<$units$>$} は、大目盛りが時刻モードの場合にのみ適用
します。以下参照: {\bf set mxtics time (p.~\pageref{set mxtics time})\index{time}}。

軸が対数軸である場合、分割区間の数はデフォルトでは有意な数にセットされ
ます (10 個の長さを元にして)。$<$freq$>$ が与えられていればそちらが優先さ
れます。しかし、対数軸では通常の小目盛り (例えば 1 から 10 までの 2, 3,
..., 8, 9 の刻み) は、9 つの部分区間しかありませんが、$<$freq$>$ の設定は
10 とすることでそうなります。

小目盛りを任意の位置に設定するには、({\tt"}$<$label$>${\tt"} $<$pos$>$ $<$level$>$, ...) の
形式を {\bf set \{x$|$x2$|$y$|$y2$|$z\}tics} で使用してください。ただし、$<$label$>$ は
空 ({\tt"}{\tt"}) で、$<$level$>$ を 1 にします。

コマンド {\bf set m\{x$|$x2$|$y$|$y2$|$z\}tics} は、大目盛りが一様の間隔の場合にのみ
働きます。もし全ての大目盛りが {\bf set \{x$|$x2$|$y$|$y2$|$z\}tics} によって手動で
配置された場合は、この小目盛りのコマンドは無視されます。自動的な大目盛
りの配置と手動の小目盛りの配置は、{\bf set \{x$|$x2$|$y$|$y2$|$z\}tics} と
{\bf set \{x$|$x2$|$y$|$y2$|$z\}tics add} とを使うことで共存できます。

例:
\preverbatim
\begin{verbatim}
     set xtics 0, 5, 10
     set xtics add (7.5)
     set mxtics 5
\end{verbatim}
\postverbatim
この場合、大目盛りは 0,5,7.5,10、小目盛りは 1,2,3,4,6,7,8,9 の場所
\preverbatim
\begin{verbatim}
     set logscale y
     set ytics format ""
     set ytics 1e-6, 10, 1
     set ytics add ("1" 1, ".1" 0.1, ".01" 0.01, "10^-3" 0.001, \
                    "10^-4" 0.0001)
     set mytics 10
\end{verbatim}
\postverbatim
この場合、大目盛りは指定された書式で、小目盛りは対数的に配置

デフォルトでは小目盛りの表示は、線形軸ではオフで、対数軸ではオンになっ
ています。その設定は、大目盛りに対する {\bf axis$|$border} と {\bf \{no\}mirror}
の指定を継承します。これらに関する情報については、以下参照:
{\bf set xtics (p.~\pageref{set xtics})\index{xtics}}。
\subsubsection*{Mxtics time}
\addcontentsline{toc}{subsubsection}{Mxtics time}
\label{set mxtics time}%
\label{mxtics time}%
書式:
\preverbatim
\begin{verbatim}
    set mxtics time <N> {seconds|minutes|hours|days|weeks|months|years}
\end{verbatim}
\postverbatim

これは、gnuplot バージョン 6 で導入された新しいコマンドオプションです。
これは、小目盛りの刻みを、大目盛り区間に対する分割位置ではなく、時刻単
位のある整数番号の場所に正確に配置します。

大目盛りが時刻モード ({\bf set xdata time} か {\bf set xtics time}) の場合は、
小目盛りを生成しないのが新しいデフォルトです。

{\bf set mxtics} や {\bf set mxtics $<$freq$>$} で、6 より前のバージョンの挙動に戻
せますが、これには常に問題を抱えていました。例えば、72 年間隔に対して
自動分割機能は大目盛りを 12 年間隔に、小目盛りを 5 年間隔にしてしまっ
ていました。

しかし {\bf set mxtics time 2 years} を使えば、正確に 1 年置きの年始めのと
ころに小目盛り刻みを置きます。{\bf set mxtics time 1 month} は、各月の日数
が等しくないですが、1 月 1 日、2 月 1 日、3 月 1 日、... の各月 1 日の
場所に正しく刻みを置きます。

\subsection*{My2tics}
\addcontentsline{toc}{subsection}{My2tics}
\label{commands set my2tics}%
\label{commands unset my2tics}%
\label{commands show my2tics}%
\label{set my2tics}%
\label{unset my2tics}%
\label{show my2tics}%
\label{my2tics}%
\index{my2tics}%
\label{nomy2tics}%
\index{nomy2tics}%
y2 (右) 軸の小目盛り刻みの印は {\bf set my2tics} で制御されます。以下参照:
{\bf set mxtics (p.~\pageref{set mxtics})\index{mxtics}}。
\subsection*{Mytics}
\addcontentsline{toc}{subsection}{Mytics}
\label{commands set mytics}%
\label{commands unset mytics}%
\label{commands show mytics}%
\label{set mytics}%
\label{unset mytics}%
\label{show mytics}%
\label{mytics}%
\index{mytics}%
\label{nomytics}%
\index{nomytics}%
y 軸の小目盛り刻みの印は {\bf set mytics} で制御されます。以下参照:
{\bf set mxtics (p.~\pageref{set mxtics})\index{mxtics}}。
\subsection*{Mztics}
\addcontentsline{toc}{subsection}{Mztics}
\label{commands set mztics}%
\label{commands unset mztics}%
\label{commands show mztics}%
\label{set mztics}%
\label{unset mztics}%
\label{show mztics}%
\label{mztics}%
\index{mztics}%
\label{nomztics}%
\index{nomztics}%
z 軸の小目盛り刻みの印は {\bf set mztics} で制御されます。以下参照:
{\bf set mxtics (p.~\pageref{set mxtics})\index{mxtics}}。
\subsection*{Nonlinear}
\addcontentsline{toc}{subsection}{Nonlinear}
\label{commands set nonlinear}%
\label{set nonlinear}%
\label{nonlinear}%
\index{nonlinear}%
書式:
\preverbatim
\begin{verbatim}
     set nonlinear <axis> via f(axis) inverse g(axis)
     unset nonlinear <axis>
\end{verbatim}
\postverbatim

このコマンドはコマンド {\bf set link} に似ていますが、2 つのリンクされた軸
の一方のみを表示する点が違います。隠される軸は線形軸のままです。表示す
る軸に沿う座標は、g(x) を適用して隠れている軸の座標から割り当てられ、
f(x) は表示する軸の座標を隠れている線形軸に対応させます。変換式と逆変
換式の両方を指定する必要があります。

これがどのように機能するかを理解するには、x2 軸が対数軸の場合を考えて
みてください。

\preverbatim
\begin{verbatim}
     set x2ange [1:1000]
     set nonlinear x2 via log10(x) inverse 10**x
\end{verbatim}
\postverbatim

この例は、{\bf set log x2} と同じ効果を生みます。この場合隠れている軸は、
[log10(xmin):log10(xmax)] を計算することで [0:3] の範囲になります。

変換関数 f(), g() は、非線形軸毎に適切なダミー変数を使って定義する必要
があります。
\preverbatim
\begin{verbatim}
   axis: x x2   dummy variable x
   axis: y y2   dummy variable y
   axis: z cb   dummy variable z
   axis: r      dummy variable r
\end{verbatim}
\postverbatim

\label{set nonlinear examples}%
\label{nonlinear examples}%
例:

\preverbatim
\begin{verbatim}
     set xrange [-3:3]
     set nonlinear x via norm(x) inverse invnorm(x)
\end{verbatim}
\postverbatim

この例は確率スケール ({\tt"}プロビット{\tt"}) の x 軸を作成し、累積正規分布関数
Phi(x) のグラフが線形の y 軸に対して直線となります。

\index{logit}%
例:

\preverbatim
\begin{verbatim}
     logit(p) = log(p/(1-p))
     logistic(a) = 1. / (1. + exp(-a))
     set xrange [.001 : .999]
     set nonlinear y via logit(y) inverse logistic(y)
     plot logit(x)
\end{verbatim}
\postverbatim

この例はロジットスケールの y 軸を作成し、線形の x 軸に対する logit(x)
のグラフが直線になります。

\index{broken axis}%
例:

\preverbatim
\begin{verbatim}
     f(x) = (x <= 100) ? x : (x < 500) ? NaN : x-390
     g(x) = (x <= 100) ? x : x+390
     set xrange [0:1000] noextend
     set nonlinear x via f(x) inverse g(x)
     set xtics add (100,500)
     plot sample [x=1:100] x, [x=500:1000] x
\end{verbatim}
\postverbatim

この例は {\tt"}切断軸{\tt"} を作成します。x 座標は左に 0 から 100、右に 500 から
1000 が並び、その間に 10 幅の小さな隙間ができます。100 $<$ x $<$ 500 の間
のデータは描画されず、これは期待通りの動作をします。
\subsection*{図形オブジェクト (object)}
\addcontentsline{toc}{subsection}{図形オブジェクト (object)}
\label{objects}%
\index{objects}%
\label{commands set object}%
\label{commands show object}%
\label{set object}%
\label{object depthorder}%
\label{show object}%
コマンド {\bf set object} は、その後のすべてのグラフに現れる単一のオブジェ
クトを定義します。オブジェクトはいくつでも定義できます。オブジェクトの
型は、現在は {\bf rectangle} (長方形)、{\bf circle} (円)、{\bf ellipse} (楕円) を
サポートしています。長方形は、コマンド {\bf set style rectangle} によって
設定されたスタイルの属性の組 (塗り潰し、色、境界) をデフォルトとして受
け継ぎます。個々のオジェクトは、定義時、または後からのコマンドで別々の
スタイル属性を与えることが可能です。

2 次元グラフのオブジェクトは、軸座標、グラフ座標 ({\bf graph})、極座標、ス
クリーン座標 ({\bf screen}) のいずれの組み合わせでも定義できます。
3 次元グラフのオブジェクト指定では、グラフ座標は使えません。3 次元の長
方形と楕円は、スクリーン座標だけに制限されています。

書式:
\preverbatim
\begin{verbatim}
   set object <index>
       <object-type> <object-properties>
       {front|back|behind|depthorder}
       {clip|noclip}
       {fc|fillcolor <colorspec>} {fs <fillstyle>}
       {default} {lw|linewidth <width>} {dt|dashtype <dashtype>}
   unset object <index>
\end{verbatim}
\postverbatim

$<$object-type$>$ は、{\bf rectangle}, {\bf ellipse}, {\bf circle}, {\bf polygon} のいずれ
かです。個々のオブジェクトの型は、その型に特有の性質もいくつか持ってい
ます。

オプション {\bf front}, {\bf back}, {\bf behind} は、グラフ自身の描画の前、あるい
は後のどちらに描くかを制御します。以下参照: {\bf layers (p.~\pageref{layers})\index{layers}}。
{\bf front} を指定すると、オブジェクトはすべての描画要素の前 (上) に描画さ
れますが、{\bf front} と指定されたラベルよりは後ろ (下) になります。{\bf back}
を指定すると、すべての描画要素、すべてのラベルの後ろに配置されます。
{\bf behind} は、軸や {\bf back} の長方形を含むすべてのものの後ろに配置されま
す。よって、
\preverbatim
\begin{verbatim}
   set object rectangle from screen 0,0 to screen 1,1 behind
\end{verbatim}
\postverbatim
は、グラフやページ全体の背景に色をつけるのに利用できます。

デフォルトでは、オブジェクトは、少なくとも 1 つの頂点がスクリーン座標
で与えられていない限り、グラフ境界でクリッピングされます。{\bf noclip} と
設定すると、グラフ境界でのクリッピングは無効になりますが、スクリーンサ
イズに対するクリッピングは行われます。

オブジェクトの塗り潰しの色は $<$colorspec$>$ で指定します。{\bf fillcolor} は
{\bf fc} と省略できます。塗り潰しスタイルは $<$fillstyle$>$ で指定します。詳細
は、以下参照: {\bf colorspec (p.~\pageref{colorspec})\index{colorspec}}, {\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}}。キーワード {\bf default} を指定す
ると、これらの属性は描画が実際に行われるときのデフォルトの設定を受け継
ぎます。以下参照: {\bf set style rectangle (p.~\pageref{set style rectangle})\index{rectangle}}。
\subsubsection*{長方形 (rectangle)}
\addcontentsline{toc}{subsubsection}{長方形 (rectangle)}
\label{rectangle}%
\index{rectangle}%
\label{commands set object rectangle}%
\label{commands show object rectangle}%
\label{set object rectangle}%
\label{show object rectangle}%
書式:
\preverbatim
\begin{verbatim}
   set object <index> rectangle
       {from <position> {to|rto} <position> |
        center <position> size <w>,<h> |
        at <position> size <w>,<h>}
\end{verbatim}
\postverbatim

長方形の位置は、対角に向かい合う 2 つの頂点 (左下と右上) の位置、ある
いは中心点の位置と横幅 ($<$w$>$) と縦幅 ($<$h$>$) で指定できます。いずれの場合
も点の位置は、軸の座標 ({\bf first}, {\bf second})、グラフ領域内の相対座標
({\bf graph})、スクリーン座標 ({\bf screen}) のいずれかを使用できます
(以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}})。オプション {\bf at} と {\bf center} は同じ意味です。

例:
\preverbatim
\begin{verbatim}
   # 座標軸で囲まれた領域全体の背景を水色に
   set object 1 rect from graph 0, graph 0 to graph 1, graph 1 back
   set object 1 rect fc rgb "cyan" fillstyle solid 1.0
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
   # 左下角が 0,0, 右上角が 2,3 の赤い四角を一つ置く
   set object 2 rect from 0,0 to 2,3 fc lt 1
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
   # 青い境界の空 (塗り潰さない) 長方形を置く
   set object 3 rect from 0,0 to 2,3 fs empty border rgb "blue"
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
   # 頂点は移動しないまま、塗り潰しと色をデフォルトに変更
   set object 2 rect default
\end{verbatim}
\postverbatim

スクリーン座標で長方形の角を指定すると、それは現在のグラフ領域の端を越
えることも可能ですが、その他の場合は長方形はグラフ内に収まるようにクリ
ッピングされます。

\subsubsection*{楕円 (ellipse)}
\addcontentsline{toc}{subsubsection}{楕円 (ellipse)}
\label{ellipse}%
\index{ellipse}%
\label{commands set object ellipse}%
\label{commands show object ellipse}%
\label{set object ellipse}%
\label{show object ellipse}%
書式:
\preverbatim
\begin{verbatim}
   set object <index> ellipse {at|center} <position> size <w>,<h>
       {angle <orientation>} {units xy|xx|yy}
       {<other-object-properties>}
\end{verbatim}
\postverbatim

楕円の位置は、中心を指定し、その後ろに幅と高さ (主軸と副軸) を指定しま
す。キーワード {\bf at} と {\bf center} は同じ意味です。中心の位置の指定には、
軸の座標 ({\bf first}, {\bf second})、グラフ領域内の相対座標 ({\bf graph})、スクリ
ーン座標 ({\bf screen}) のいずれかを使用できます (以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}})。
主軸と副軸の長さは、軸の座標で与えなければいけません。楕円の向き
(orientation) は、水平軸と楕円の主軸との間の角度で指定します。角度を与
えなければ、デフォルトの楕円の向きが代わりに使われます (以下参照:
{\bf set style ellipse (p.~\pageref{set style ellipse})\index{ellipse}})。キーワード {\bf units} は、楕円の軸の縮尺の制御に使
用します。{\bf units xy} は、主軸は x 軸の単位で、副軸は y 軸の単位で計算
しますが、{\bf units xx} は両軸とも x 軸の単位で縮尺し、{\bf units yy} は両軸
とも y 軸の単位になります。
デフォルトは {\bf xy} ですが、{\bf set style ellipse units} の設定でいつでも変
更できます。

注意: x 軸と y 軸の縮尺が等しくない場合 (そして {\bf units xy} の場合)、回
転後の主軸と副軸の比は正しくはなりません。

{\bf set object ellipse size $<$2r$>$,$<$2r$>$} と {\bf set object circle $<$r$>$} とは、
一般には同じことにはならないことに注意してください。circle の半径は常
に x 軸の単位で計られ、よって x 軸と y 軸の縮尺が違ったり、描画のアス
ペクト比が 1 でなくても、常に円が生成されます。{\bf units} が {\bf xy} に設定
されていれば、'set object ellipse' では、最初の $<$2r$>$ は x 軸の単位で、
後ろの $<$2r$>$ は y 軸の単位で計られますが、これは x 軸と y 軸の縮尺が同
じで、かつ描画のアスペクト比が 1 である場合のみ円を生成することを意味
します。しかし、{\bf units} を {\bf xx} や {\bf yy} にセットすれば、コマンド
{\bf set object} で指定した直径は同じ単位で計算されるので、楕円は正しいア
スペクト比を持ち、描画をリサイズしてもそのアスペクト比は保持されます。

\subsubsection*{円 (circle)}
\addcontentsline{toc}{subsubsection}{円 (circle)}
\label{circle}%
\index{circle}%
\label{commands set object circle}%
\label{commands show object circle}%
\label{set object circle}%
\label{show object circle}%
書式:
\preverbatim
\begin{verbatim}
   set object <index> circle {at|center} <position> size <radius>
       {arc [<begin>:<end>]} {no{wedge}}
       {<other-object-properties>}
\end{verbatim}
\postverbatim

円の位置は、中心を指定し、その後ろに半径を指定します。キーワード {\bf at}
と {\bf center} は同じ意味です。2 次元グラフでは、位置と半径は任意の座標系
で指定できます。以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。3 次元グラフの円にはグラフ座
標は使えません。そのどの場合でも、半径は軸、グラフ、スクリーンの水平方
向の縮尺に対して計られ、水平方向と垂直方向の縮尺にずれがあっても、結果
が常に正しく円になるように直されます。円をグラフの座標で描きたい (つま
り水平軸と垂直軸のスケールが違う場合にはそれが楕円として表示されるよう
にしたい) 場合は、代わりに {\bf set object ellipse} を使ってください。

デフォルトでは、完全な円が描画されます。オプションの {\bf arc} に開始角と
終了角を度を単位として指定すると円弧を描画します。円弧は、常に反時計回
りに描かれます。

以下も参照: {\bf set style circle (p.~\pageref{set style circle})\index{circle}}, {\bf set object ellipse (p.~\pageref{set object ellipse})\index{ellipse}}。

\subsubsection*{多角形 (polygon)}
\addcontentsline{toc}{subsubsection}{多角形 (polygon)}
\label{polygon}%
\index{polygon}%
\label{commands set object polygon}%
\label{commands show object polygon}%
\label{set object polygon}%
\label{show object polygon}%
書式:
\preverbatim
\begin{verbatim}
   set object <index> polygon
       from <position> to <position> ... {to <position>}
\end{verbatim}
\postverbatim
または
\preverbatim
\begin{verbatim}
       from <position> rto <position> ... {rto <position>}
\end{verbatim}
\postverbatim

多角形の位置は、頂点の位置の列を与えることで指定できます。それらには、
任意の座標系が使えます。相対的な座標 (rto) を指定する場合は、その座標
系は前の頂点と同じ座標系でなければいけません。以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。

例:
\preverbatim
\begin{verbatim}
   set object 1 polygon from 0,0 to 1,1 to 2,0
   set object 1 fc rgb "cyan" fillstyle solid 1.0 border lt -1
\end{verbatim}
\postverbatim
\paragraph*{Depthorder}
\addcontentsline{toc}{paragraph}{Depthorder}
\label{polygon depthorder}%
\label{set object depthorder}%
オプション {\bf set object N depthorder} は、3 次元多角形オブジェクトのみ
に適用されます。オブジェクトを front/back/behind のレイヤではなく、ソ
ートされた pm3d 四辺形のリストの中に入れ、{\bf set pm3d depthorder} の深さ
の順に描画します。pm3d 曲面で使う場合、両面の色付けは object fillcolor
を linestyle で指定することで生成できます。この場合、多角形の最初の 3
つの頂点の順序が「表裏」を決定します。

3 次元多角形ではないオブジェクトにこの機能を設定すると、それは多分全く
描画されません。
\subsection*{グラフ位置の調整 (offsets)}
\addcontentsline{toc}{subsection}{グラフ位置の調整 (offsets)}
\label{commands set offsets}%
\label{commands unset offsets}%
\label{commands show offsets}%
\label{set offsets}%
\label{unset offsets}%
\label{show offsets}%
\label{offsets}%
\index{offsets}%
\label{nooffsets}%
\index{nooffsets}%
自動縮尺は、x 軸と y 軸の範囲を描画されるデータの座標に合わせます。オ
フセットは、この範囲を広げる仕組みを提供し、それによりデータと描画範囲
の境界の間に隙間を作るようにします。そうすると、自動縮尺機能は、それが
{\bf set autoscale noextend} や {\bf set xrange noextend} によって抑えられてい
ない場合は、軸の次の目盛りに達っするまでさらにそれぞれの範囲を拡張しま
す。以下参照: {\bf noextend (p.~\pageref{noextend})\index{noextend}}。
オフセットは、x1, y1 軸の縮尺にのみ影響を与えます。

書式:
\preverbatim
\begin{verbatim}
     set offsets <left>, <right>, <top>, <bottom>
     unset offsets
     show offsets
\end{verbatim}
\postverbatim

各オフセットは定数、または数式が使え、それらのデフォルトの値は 0 です。
デフォルトでは、左右のオフセットは x1 軸と同じ単位で指定し、上下のオフ
セットは y1 軸と同じ単位で指定しますが、キーワード {\tt"}graph{\tt"} を用いるこ
とで全グラフサイズに対する割合としてオフセットを指定することもできます。
非線形軸 (nonlinear axes) に対しては、{\tt"}graph{\tt"} によるオフセットのみ可能
です。

正のオフセットの値は、軸の範囲を指定された方向へ伸ばします。例えば正の
下方向のオフセットは y の最小値をより小さな値にします。負のオフセット
値は、自動縮尺とクリッピングに対して悪く影響します。

例:
\preverbatim
\begin{verbatim}
     set autoscale noextend
     set offsets graph 0.05, 0, 2, 2
     plot sin(x)
\end{verbatim}
\postverbatim

この sin(x) のグラフの y の範囲は [-3:3] になります。それは、関数の y
の範囲は [-1:1] に自動縮尺されますが、垂直方向のオフセットが端にそれぞ
れ 2 を追加するためです。x の範囲は [-11:10] になりますが、これはデフ
ォルトが [-10:10] で、左に全範囲の 0.05 の割合分広げられるためです。
\subsection*{グラフ位置の指定 (origin)}
\addcontentsline{toc}{subsection}{グラフ位置の指定 (origin)}
\label{commands set origin}%
\label{commands show origin}%
\label{set origin}%
\label{show origin}%
\label{origin}%
\index{origin}%
コマンド {\bf set origin} はスクリーン上で曲面描画の原点を指定 (すなわち、
グラフとその余白) するのに使用します。その座標系はスクリーン座標系
({\bf screen}) で与えます。この座標系に関する情報については、以下参照:
{\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。

書式:
\preverbatim
\begin{verbatim}
     set origin <x-origin>,<y-origin>
\end{verbatim}
\postverbatim
\subsection*{出力先指定 (output)}
\addcontentsline{toc}{subsection}{出力先指定 (output)}
\label{commands set output}%
\label{commands show output}%
\label{set output}%
\label{show output}%
\label{output}%
\index{output}%
\label{output file}%
書式:
\preverbatim
\begin{verbatim}
     set output {"<filename>"}
     unset output
     show output
\end{verbatim}
\postverbatim

非対話型出力形式では、デフォルトでは生成したグラフは {\bf stdout} に送りま
す。コマンド {\bf set output} は、その出力を指定したファイルやデバイスにリ
ダイレクトします。このコマンドで開いたファイルは、次の set/unset
output コマンド、または次の出力形式の変更、または gnuplot を終了するま
で開いたままになっています。

対話型出力形式では、{\bf set output} は無視します。

\preverbatim
\begin{verbatim}
ファイル名は引用符で囲まなければなりません。ファイル名を省略した場合、
\end{verbatim}
\postverbatim
そのコマンドは {\bf unset output} と同じになり、それは直前の {\bf set output}
で開いた任意の出力ファイルを閉じ、新しい出力は {\bf stdout} に送ります。

{\bf set terminal} と {\bf set output} の両方を指定する場合、{\bf set terminal} を
先に指定する方が安全です。それは、ある種の terminal では、OS が必要と
するフラグをセットすることがあるからです。例えば、バイナリファイルに対
して別々の open コマンドを必要とするような OS などがそれに該当します。

パイプをサポートする環境では、パイプ出力も有用です。例えば以下の通りで
す:

\preverbatim
\begin{verbatim}
     set output "|lpr -Plaser filename"
     set term png; set output "|display png:-"
\end{verbatim}
\postverbatim

MS-DOS では、{\bf set output {\tt"}PRN{\tt"}} とすると標準のプリンタに出力されます。
\subsection*{Overflow}
\addcontentsline{toc}{subsection}{Overflow}
\label{overflow}%
\index{overflow}%
\label{commands set overflow}%
\label{commands unset overflow}%
\label{set overflow}%
\label{unset overflow}%
\label{show overflow}%
書式:
\preverbatim
\begin{verbatim}
    set overflow {float | NaN | undefined}
    unset overflow
\end{verbatim}
\postverbatim

gnuplot のこのバージョンは、64 ビット整数演算をサポートします。これは、
2\verb+^+53 から 2\verb+^+63 (おおまかには 10\verb+^+16 から 10\verb+^+19) の整数評価の方が、IEEE
754 の浮動小数演算を使用する評価よりも精度の高い値を保持することを意味
します。しかし IEEE 浮動小数表現は、精度は犠牲にする代わりに、おおまか
には [-10\verb+^+307 : 10\verb+^+307] の全範囲をカバーしますが、整数演算は、その結果
が [-2\verb+^+63 : 2\verb+^+63] の範囲外になる場合はオーバーフローします。そのオーバ
ーフローが起きた場合に何をさせるかはコマンド {\bf set overflow} により制御
できます。そのオプションは、以下を参照してください。

{\bf set overflow} は、{\bf set overflow float} と同じで、結果を整数として返す
代わりに実数値として返します。これがデフォルトです。

コマンド {\bf unset overflow} は、整数演算のオーバーフローを無視するように
します。エラーは出ません。32 ビット整数演算しかできない環境で、5.4 よ
り前のバージョンの gnuplot の挙動に近づけたい場合は、これを使用すると
いいでしょう。

コマンド {\bf reset} は、オーバーフロー処理の状態に影響を与えません。

前のバージョンの gnuplot は、32 ビット演算に制限され、整数オーバーフロ
ーは無視していました。しかし、組み込み演算の一部は、整数引数を与えても
完全に整数演算を行うとは限らないことに注意してください。これには、指数
演算 N**M や、和の演算 (以下参照: {\bf summation (p.~\pageref{summation})\index{summation}}) などが含まれます。これ
らの演算は、現在は整数引数を与えた場合は整数値を返し、それらを内在的に
オーバーフローの影響を受けやすくすることで {\bf set overflow} の状態に支配
されるようにしています。
\subsubsection*{Float}
\addcontentsline{toc}{subsubsection}{Float}
\label{set overflow float}%
\label{overflow float}%
整数演算式が制限範囲 (64 ビット整数では [-2\verb+^+63 : 2\verb+^+63]) をオーバーフロ
ーした場合、その結果は代わりに浮動小数値として返します。これは、エラー
としては扱われません。
例:
\preverbatim
\begin{verbatim}
    gnuplot> set overflow float
    gnuplot> A = 2**62 - 1;  print A, A+A, A+A+A
    4611686018427387903 9223372036854775806 1.38350580552822e+19
\end{verbatim}
\postverbatim
\subsubsection*{NaN}
\addcontentsline{toc}{subsubsection}{NaN}
\label{set overflow NaN}%
\label{overflow NaN}%
\label{overflow nan}%
整数演算式が制限範囲 (64 ビット整数では [-2\verb+^+63 : 2\verb+^+63]) をオーバーフロ
ーした場合、その結果は NaN (非数) を返します。これは、エラーとしては扱
われません。
例:
\preverbatim
\begin{verbatim}
    gnuplot> set overflow NaN
    gnuplot> print 10**18, 10**19
    1000000000000000000 NaN
\end{verbatim}
\postverbatim
\subsubsection*{Undefined}
\addcontentsline{toc}{subsubsection}{Undefined}
\label{set overflow undefined}%
\label{overflow undefined}%
整数演算式が制限範囲 (64 ビット整数では [-2\verb+^+63 : 2\verb+^+63]) をオーバーフロ
ーした場合、その結果は未定義値となります。これは、エラーとして扱われま
す。
例:
\preverbatim
\begin{verbatim}
    gnuplot> set overflow undefined
    gnuplot> A = 10**19
                 ^
             undefined value
\end{verbatim}
\postverbatim
\subsubsection*{Affected operations}
\addcontentsline{toc}{subsubsection}{Affected operations}
\label{set overflow affected_operations}%
\label{overflow affected_operations}%
{\bf set overflow} の状態は、以下の整数演算
\preverbatim
\begin{verbatim}
    + - * / **
\end{verbatim}
\postverbatim
と、組み込みの和演算 {\bf sum} に影響します。

これらの演算はすべて、引数がすべて整数ならば、その評価でオーバーフロー
が起きない限り、整数値の結果を返します。

{\bf set overflow} は、以下の論理演算、ビット演算には影響しません。
\preverbatim
\begin{verbatim}
    << >>  | ^ &
\end{verbatim}
\postverbatim

和の評価の過程のどこかでオーバーフローが起きた場合は、
{\bf set overflow float} とすると、最終的な和が整数の制限範囲内におさまる
場合であっても、実数値を返すようになります。
\subsection*{パレット (palette)}
\addcontentsline{toc}{subsection}{パレット (palette)}
\label{commands set palette}%
\label{set palette}%
\index{palette}%
パレットは、色の集合で、通常は一つ以上の段階的なグラデーションの形式で
順序づけられ、{\bf pm3d} 曲面や温度分布図 (heatmap)、その他の描画要素を色
付けするのに使われます。plot の z 座標か、追加のデータ列の灰色階調値が
現在のパレットの色に自動的に写像されます。
現在のパレットは、デフォルトでは描画スタイル {\bf pm3d} を使用するグラフの
隣に別のカラーボックス ({\bf colorbox}) として表示されます。カラーボックス
は、カスタマイズしたり無効にしたりできます。以下参照: {\bf set colorbox (p.~\pageref{set colorbox})\index{colorbox}}。
以下も参照: {\bf show palette (p.~\pageref{show palette})\index{palette}}, {\bf test palette (p.~\pageref{test palette})\index{palette}}。

書式:
\preverbatim
\begin{verbatim}
     set palette
     set palette {
                { gray | color }
                { gamma <gamma> }
                {   rgbformulae <r>,<g>,<b>
                  | defined { ( <gray1> <color1> {, <grayN> <colorN>}... ) }
                  | file '<filename>' {datafile-modifiers}
                  | colormap <colormap-name>
                  | functions <R>,<G>,<B>
                }
                { cubehelix {start <val>} {cycles <val>} {saturation <val>} }
                { viridis }
                { model { RGB | CMY | HSV {start <radians>} } }
                { positive | negative }
                { nops_allcF | ps_allcF }
                { maxcolors <maxcolors> }
              }
\end{verbatim}
\postverbatim

パレットは、いくつかの方法で定義できます。
\gpinsetfigure{figure_palette1}
- 赤、緑、青の要素に対する公式を、0 から 1 の灰色階調変数の関数として
与えること。
{\bf set palette rgbformulae} により、あらかじめ定義されている 36 個の公式
から選ぶことができます。{\bf set palette functions} により、あなた自身の関
数を定義することもできます。
\\
 - z の範囲全体を、部分的に 1 つ、または複数の滑らかなグラデーションで
覆うよう指定するために {\bf set palette defined} を使うこと。
\\
 - 事前に保存したパレットを、現在のパレットに読み込む (load) こと。
{\bf set palette file} は、保存したパレットをファイルから読み込みます。
{\bf set palette colormap} は、保存したカラーマップから RGB の成分を展開し
ます。
\\
 - 必要ならカスタマイズ用の追加パラメータ付きで名前付きパレットを指定。
現在提供している名前付きパレットは、{\bf cubehelix} (パターンの族でカスタ
マイズ可能) と {\bf viridis} です。

オプションのない {\bf set palette} は、デフォルト値に戻します。

{\bf set palette negative} は、パレットの方向を逆転します。例えば、
{\bf set palette viridis negative} は、青から黄色ではなく、黄色から青への
グラデーションを作成します。

{\bf set palette gray} は、灰色階調のパレットに切り替えます。
{\bf set palette color} は最も最近のカラーパレットに戻します。

{\bf pm3d} カラー曲面では、各微小四辺形の 4 つの角の z 座標の平均値を、範
囲 [min\_z, max\_z] から灰色階調値の範囲 (常に [0:1]) への写像で変換する
ことにより、その四辺形の灰色階調値が得られます。パレットは、その灰色階
調値から RGB 色への写像です。

パレット色を、明示的な色指定でも言及できます (以下参照: {\bf colorspec (p.~\pageref{colorspec})\index{colorspec}})。
これは、オブジェクトかラベルにパレット色を割り当てるときに便利です。

パレットは、3 種類の色空間 RGB, CMY, HSV のいずれでも定義できます。以
下参照: {\bf set palette model (p.~\pageref{set palette model})\index{model}}。
いずれの色空間でも、その色成分はすべて [0,1] の範囲に制限されています。

\subsubsection*{Rgbformulae}
\addcontentsline{toc}{subsubsection}{Rgbformulae}
\label{commands set palette rgbformulae}%
\label{set palette rgbformulae}%
\label{palette rgbformulae}%
\label{rgbformulae}%
\index{rgbformulae}%
\index{colors}%
\preverbatim
\begin{verbatim}
    set palette rgbformulae <function 1>, <function 2>, <function 3>
\end{verbatim}
\postverbatim
この名前とは関係なく、このオプションは全ての色空間に適用されます。
あなたは、各色成分に対して、あらかじめ登録されている 36 個の割り当て関
数のうちの一つを指定しなければいけません。有効な割り当て関数の一覧は、
{\bf show palette rgbformulae} で見ることができます。デフォルトは、
{\bf set palette rgbformulae 7,5,15} です。RGB の色空間では、これは 7 番の
関数を赤の成分の写像に使用し、5 番の関数を緑成分の写像、15 番の関数を
青成分の写像に使用します。関数番号として負の値を使用すると、それは割り
当てを逆、すなわち f(gray) でなく、f(1-gray) の写像による成分にします。

\gpinsetfigure{figure_palette2}
RGB の色空間では、いくつかの良い割り当て公式があります:
\preverbatim
\begin{verbatim}
  7,5,15   ... デフォルト (黒-青-赤-黄)
  3,11,6   ... 緑-赤-紫
  23,28,3  ... 海 (緑-青-白)
  21,22,23 ... 温度色 (黒-赤-黄-白)
  30,31,32 ... 黒-青-紫-黄-白
  33,13,10 ... 虹 (青-緑-黄-赤)
  34,35,36 ... AFM 温度色 (黒-赤-黄-白)
\end{verbatim}
\postverbatim

HSV 色空間でのフルカラーパレット:
\preverbatim
\begin{verbatim}
  3,2,2    ... 赤-黄-緑-水色-青-紫-赤
\end{verbatim}
\postverbatim

\subsubsection*{Defined}
\addcontentsline{toc}{subsubsection}{Defined}
\label{commands set palette defined}%
\label{set palette defined}%
\label{palette defined}%
\index{colors}%
灰色から RGB への対応は {\bf palette defined} を使うことで手動で設定できま
す: グラデーションは RGB の値を与えるために定義され使用されます。
グラデーションは、[0,1] の灰色値から [0,1]x[0,1]x[0,1] の RGB 空間への
区分的に線形な写像です。その線形補間に使われる灰色値と RGB 値の組を指
定する必要があります:

書式:
\preverbatim
\begin{verbatim}
     set palette  defined { ( <gray1> <color1> {, <grayN> <colorN>}... ) }
\end{verbatim}
\postverbatim

ここで N ≧ 2 で、$<$grayN$>$ は [0,1] に割り当てる灰色値です。それに対応
する RGB 色 $<$colorN$>$ は、3 種類の方法で指定できます:

\preverbatim
\begin{verbatim}
    <color> :=  { <r> <g> <b> | '<color-name>' | '#rrggbb' }
\end{verbatim}
\postverbatim

赤、緑、青に対応する空白で区切られた 3 つの値 (それぞれ [0,1] 内)、引
用符でくくられた色名、または引用符でくくられた X 形式の指定方式、のい
ずれかです。グラデーションの定義では、これらの 3 種の型を自由に組み合
わせることができますが、色空間として RGB でないものが選択された場合色
名 {\tt"}red{\tt"} は少し違ったものになるでしょう。使用できる色名は
{\bf show colornames} でその一覧を見ることができます。

$<$gray$>$ の値は実数の昇順に並べる必要があります。その列の値は自動的に
[0,1] に変換されます。

カッコつきのグラデーションの定義なしで {\bf set palette defined} とした場
合、RGB 色空間にし、あらかじめ設定されたフルスペクトルグラデーションを
使用します。グラデーションを表示するには {\bf show palette gradient} を使
用してください。

例:

灰色のパレット (役に立たないが教訓的な) を生成するには:
\preverbatim
\begin{verbatim}
     set palette model RGB
     set palette defined ( 0 "black", 1 "white" )
\end{verbatim}
\postverbatim

青-黄-赤のパレット (全てが等価の) を生成するには:
\preverbatim
\begin{verbatim}
     set palette defined ( 0 "blue", 1 "yellow", 2 "red" )
     set palette defined ( 0 0 0 1, 1 1 1 0, 2 1 0 0 )
     set palette defined ( 0 "#0000ff", 1 "#ffff00", 2 "#ff0000" )
\end{verbatim}
\postverbatim

HSV 色空間でのフルカラースペクトル:
\preverbatim
\begin{verbatim}
     set palette model HSV
     set palette defined ( 0 0 1 1, 1 1 1 1 )
     set palette defined ( 0 0 1 0, 1 0 1 1, 6 0.8333 1 1, 7 0.8333 0 1)
\end{verbatim}
\postverbatim

赤以外のある色相で巻き進めた HSV フルカラースペクトル
\preverbatim
\begin{verbatim}
     set palette model HSV start 0.15
     set palette defined ( 0 0 1 1, 1 1 1 1 )
\end{verbatim}
\postverbatim

等間隔な少しの色だけのパレットを生成するには:
\preverbatim
\begin{verbatim}
     set palette model RGB maxcolors 4
     set palette defined ( 0 "yellow", 1 "red" )
\end{verbatim}
\postverbatim

'交通信号' (滑らかではなく gray = 1/3, 2/3 で跳びを持つ):
\preverbatim
\begin{verbatim}
     set palette model RGB
     set palette defined (0 "dark-green", 1 "green", \
                          1 "yellow",     2 "dark-yellow", \
                          2 "red",        3 "dark-red" )
\end{verbatim}
\postverbatim

\subsubsection*{Functions}
\addcontentsline{toc}{subsubsection}{Functions}
\label{commands set palette functions}%
\label{set palette functions}%
\label{palette functions}%
\preverbatim
\begin{verbatim}
    set palette functions <f1(gray)>, <f2(gray)>, <f3(gray)>
\end{verbatim}
\postverbatim
このオプションは、{\bf set palette rgbformulae} に似ていますが、各色成分に
対して、定義済みの関数番号を指定する代わりに実際の関数を与えることが違
います。各関数のダミー変数が必要なら、それは {\tt"}gray{\tt"} としなければいけま
せん。関数は、[0,1] の範囲の gray の値を、[0,1] 内の値に写像しなればな
りません。

例:

フルカラーパレットを生成するには:
\preverbatim
\begin{verbatim}
     set palette model HSV functions gray, 1, 1
\end{verbatim}
\postverbatim

黒から金色への良いパレット:
\preverbatim
\begin{verbatim}
     set palette model RGB functions 1.1*gray**0.25, gray**0.75, 0
\end{verbatim}
\postverbatim

ガンマ補正の白黒のパレット:
\preverbatim
\begin{verbatim}
     gamma = 2.2
     map(gray) = gray**(1./gamma)
     set palette model RGB functions map(gray), map(gray), map(gray)
\end{verbatim}
\postverbatim
\subsubsection*{Gray}
\addcontentsline{toc}{subsubsection}{Gray}
\label{commands set palette gray}%
\label{set palette gray}%
\label{set palette grey}%
\label{palette gray}%
{\bf set palette gray} は、0.0 = 黒から 1.0 = 白への灰色階調 (グレイスケー
ル) パレットに切り替えます。灰色階調パレットから、直前のカラーパレット
にまた戻すには、{\bf set palette color} とするのが簡単です。
\subsubsection*{Cubehelix}
\addcontentsline{toc}{subsubsection}{Cubehelix}
\label{commands set palette cubehelix}%
\label{set palette cubehelix}%
\label{cubehelix}%
\index{cubehelix}%
オプション {\tt"}cubehelix{\tt"} はあるパレット族を定義しますが、これは、灰色階
調値が 0 から 1 に増加すると正味の感覚光度が単調に増加する一方、そのパ
レットの色相 (hue) は標準色相環を回って変化します。
\preverbatim
\begin{verbatim}
     D A Green (2011) http://arxiv.org/abs/1108.5083
\end{verbatim}
\postverbatim
{\bf start} は、色相環に沿った開始点をラジアン単位で決定します。
{\bf cycles} は、パレットの範囲を渡って色相環を何回回るかを決定します。
{\bf saturation} (彩度) が大きいと、よりあざやかな色になります。1 より大き
い彩度は、個々の RGB 成分をクリッピングすることになり、光度は単調では
なくなってしまいます。{\bf set palette gamma} もパレットに影響を与えます。
デフォルト値は以下の通りです。
\preverbatim
\begin{verbatim}
     set palette cubehelix start 0.5 cycles -1.5 saturation 1
     set palette gamma 1.5
\end{verbatim}
\postverbatim
\subsubsection*{Viridis}
\addcontentsline{toc}{subsubsection}{Viridis}
\label{commands set palette viridis}%
\label{set palette viridis}%
\label{viridis}%
\index{viridis}%
\preverbatim
\begin{verbatim}
     set palette viridis
\end{verbatim}
\postverbatim
パレット {\tt"}viridis{\tt"} は、色覚に障害のあるユーザ向けの青から黄色へのグラ
デーションです。viridis は、Ste'fan van der Walt と Nathaniel Smith に
より開発されました。それは、感覚的な明るさ (輝度) の近似的に線形なグラ
デーションとなります。gnuplot が使用するカラーマップ版は、以下に基づい
ています。
\preverbatim
\begin{verbatim}
     "Viridis - Colorblind-Friendly Color Maps for R", Garnier et al (2021)
     https://CRAN.R-project.org/package=viridis
\end{verbatim}
\postverbatim
\subsubsection*{Colormap}
\addcontentsline{toc}{subsubsection}{Colormap}
\label{commands set palette colormap}%
\label{palette colormap}%
{\bf set palette colormap $<$name$>$} は、事前に colormap として保存した定義済
みのグラデーションを読み込みます。そのカラーマップのアルファチャンネル
(透過) 情報 は、それがあったとしても、色の値がパレット定義にコピーされ
る際に失われます。
以下参照: {\bf colormap (p.~\pageref{colormap})\index{colormap}}。
\subsubsection*{File}
\addcontentsline{toc}{subsubsection}{File}
\label{commands set palette file}%
\label{set palette file}%
\label{palette file}%
{\bf set palette file} は基本的に {\bf set palette defined ($<$gradient$>$)} と同
じで、この $<$gradient$>$ をデータファイル、またはデータブロックから読み込
みます。色の値は、単一の RGB 3 つ組の 24 ビット整数 ({\bf using} 列が 1 つ
か 2 つの場合) か、または 3 つの別々な R, G, B 成分の実数値 ({\bf using}
列が 3 つか 4 つの場合) のいずれかで与えられます。最初の入力列に明示的
な灰色値が与えられない場合は、行番号をそれとして使います。これは、色軸
に沿って等間隔なパレットを生成します。

ファイルは通常のデータファイルとして読むので、全てのデータファイル修飾
子が使えます。HSV 色空間が選択されている場合には、{\bf R} は実際には {\bf H}
を指すことに注意してください。

グラデーションを表示するには {\bf show palette gradient} を使用してくださ
い。

例:

RGB のパレットを [0,255] の範囲で読み込む:
\preverbatim
\begin{verbatim}
     set palette file 'some-palette' using ($1/255):($2/255):($3/255)
\end{verbatim}
\postverbatim

等間隔の虹色 (青-緑-黄-赤) パレット:
\preverbatim
\begin{verbatim}
     set palette model RGB file "-" using 1:2:3
     0 0 1
     0 1 0
     1 1 0
     1 0 0
     e
\end{verbatim}
\postverbatim

明示的な灰色値指定と RGB 値指定で同じことを:
\preverbatim
\begin{verbatim}
     set palette model RGB file "-" using 1:2
     1  0x0000ff
     2  0x00ff00
     3  0xffff00
     4  0xff0000
     e
\end{verbatim}
\postverbatim

バイナリパレットファイルも同様にサポートされています。以下参照:
{\bf binary general (p.~\pageref{binary general})\index{general}}。R,G,B の double のデータの 64 個の 3 つ組をファイル
palette.bin に出力し、それを読み込む例:
\preverbatim
\begin{verbatim}
     set palette file "palette.bin" binary record=64 using 1:2:3
\end{verbatim}
\postverbatim

\subsubsection*{ガンマ補正 (gamma correction)}
\addcontentsline{toc}{subsubsection}{ガンマ補正 (gamma correction)}
\label{commands set palette gamma-correction}%
\label{set palette gamma-correction}%
\label{palette gamma-correction}%
\label{gamma-correction}%
\index{gamma correction}%
{\bf set palette gamma $<$gamma$>$} は灰色階調写像 ({\bf set palette gray}) と
{\bf cubehelix} のカラーパレット形式に対して自動的なガンマ補正を行います。
gamma = 1 は、線形の光度グラデーションを生成します。以下参照:
{\bf test palette (p.~\pageref{test palette})\index{palette}}。

灰色階調写像に対して $<$gamma$>$ のデフォルトは 1.5 で、通常は適切な値です。

ガンマ補正は、cubehelix カラーパレット形式には適用されますが、他の色形
式には適用されません。しかし、明示的な色関数にガンマ補正を実装するのは
難しくありません。

例:
\preverbatim
\begin{verbatim}
     set palette model RGB
     set palette functions gray**0.64, gray**0.67, gray**0.70
\end{verbatim}
\postverbatim

補間されたグラデーションを使ってガンマ補正を行うには、適当な色に中間の
値を指定します。

\preverbatim
\begin{verbatim}
     set palette defined ( 0 0 0 0, 1 1 1 1 )
\end{verbatim}
\postverbatim

の代わりに例えば以下を指定してください:

\preverbatim
\begin{verbatim}
     set palette defined ( 0 0 0 0, 0.5 .73 .73 .73, 1 1 1 1 )
\end{verbatim}
\postverbatim

または、線形補間が {\tt"}ガンマ補正{\tt"} の補間に十分良く適合するまでより良い中
間の点を探してください。
\subsubsection*{最大色数 (maxcolors)}
\addcontentsline{toc}{subsubsection}{最大色数 (maxcolors)}
\label{commands set palette maxcolors}%
\label{set palette maxcolors}%
\label{palette maxcolors}%
{\bf set palette maxcolors $<$N$>$} はパレットを、連続なパレットの等間隔な区間
からサンプリングした N 個の離散的な色に制限します。離散的な N 個の色を
不等間隔にしたい場合は、単一の連続パレットの代わりに
{\bf set palette defined} を使ってください。

これの第一の使用目的は、離散的な色それぞれが値の範囲を代表するもので、
それによって温度分布図を生成することです。

2 つ目の使用目的は、限定された色数 (例えば gif や sixel では 256 色)
しかサポートしない出力形式での処理です。gnuplot のデフォルトの線種色は
そのうちのいくつかまでを使用するので、パレットが利用できる色数はさらに
制限されます。よって、複数のパレットを使用する multiplot では、最初の
パレットが利用可能な色位置を使い切ってしまって失敗します。これは、それ
ぞれのパレットで使用できる色数を制限することで、回避できます。
\subsubsection*{色空間モデル (color model)}
\addcontentsline{toc}{subsubsection}{色空間モデル (color model)}
\label{commands set palette model}%
\label{set palette model}%
\label{palette model}%
\label{color model}%
\label{HSV}%
\index{HSV}%
\label{RGB}%
\index{RGB}%
\label{CMY}%
\index{CMY}%
\preverbatim
\begin{verbatim}
    set palette model { RGB | CMY | HSV {start <radians>} }
\end{verbatim}
\postverbatim
色空間は、{\bf model} を {\bf RGB}, {\bf HSV}, {\bf CMY} とすることで変更できます。
RGB は、標準的な赤 (Red)、緑 (Green)、青 (Blue) に、CMY は水色 (Cyan)、
紫 (Magenta)、黄色 (Yellow) に、HSV は 色相(Hue)、彩度 (Saturation)、
明度 (Value) に基づく色空間です。HSV 色空間では、H が 0 から 1 に変化
するのに応じて色相環全体を一回りし、よって H=0 と H=1 は同じ色を示すこ
とになります。デフォルトでは、その回転の開始と終了位置は赤です。オプシ
ョンパラメータ {\bf start} はそれをずらすので、よって
{\bf set palette model HSV start 0.3} の後では、H=0 と H=1 はいずれも緑に
対応します。

カラーモデルに関するさらなる情報については、以下を参照してください:
\href{http://en.wikipedia.org/wiki/Color_space}{\tt           http://en.wikipedia.org/wiki/Color\_space
}

(訳注: 日本語では {\tt"}http://ja.wikipedia.org/wiki/色空間{\tt"} があります。)

パレットオプションに関するマニュアルは、RGB 色空間について書かれていま
したが、例えばそれの {\bf R} は「最初の色成分」を意味し、よって実際に使用
している色空間によっては {\bf H}、{\bf C} であることに注意してください。
\subsubsection*{Postscript}
\addcontentsline{toc}{subsubsection}{Postscript}
\label{commands set palette postscript}%
\label{set palette postscript}%
このセクションの内容は、{\bf set term postscript color} からの出力のみに関
連しています。パレットを {\bf set palette rgbforumulae} で定義している場合、
gnuplot は要求した解析的な成分関数の postscript での実装を、pm3d の描
画の直前にヘッダとして書きます。/g や /cF の定義を参照してください。通
常は、palette が使用する 3 つの公式の定義のみを書き出せばそれでよくて、
それがデフォルトのオプション {\bf nops\_allcF} です。オプション {\bf ps\_allcF}
は、その代わりに 36 個の公式全ての定義を書き出します。これにより、一つ
のグラフ内で曲面毎に違うパレットを使うために postscript ファイルを編集
することが可能になります。

postscript ファイルに pm3d 曲面を書き出す場合、その後で gnuplot に付属
する awk スクリプト {\bf pm3dCompress.awk} を実行するとそのファイルサイズ
を小さくできるかもしれません。データが四角形の格子状になっている場合は、
awk スクリプト {\bf pm3dConvertToImage.awk} を使うことでより大きな圧縮率が
得られる可能性があります。
いずれもスクリプトも gnuplot とともに配布されています。
使用法:
\preverbatim
\begin{verbatim}
   awk -f pm3dCompress.awk thefile.ps >smallerfile.ps
   awk -f pm3dConvertToImage.awk thefile.ps >smallerfile.ps
\end{verbatim}
\postverbatim

\subsection*{媒介変数モード (parametric)}
\addcontentsline{toc}{subsection}{媒介変数モード (parametric)}
\label{commands set parametric}%
\label{commands unset parametric}%
\label{commands show parametric}%
\label{set parametric}%
\label{unset parametric}%
\label{show parametric}%
\label{parametric}%
\index{parametric}%
\label{noparametric}%
\index{noparametric}%
{\bf set parametric} コマンドは {\bf plot} および {\bf splot} の意味を通常の関数描
画から媒介変数表示 (parametric) 関数描画に変更します。{\bf unset parametric}
を使えば元の描画モードに戻ります。

書式:
\preverbatim
\begin{verbatim}
     set parametric
     unset parametric
     show parametric
\end{verbatim}
\postverbatim

2 次元グラフにおいては、媒介変数表示関数はひとつの媒介変数に対する 2
つの関数で定められます。例としては plot sin(t),cos(t) とすることによっ
て円が描けます (アスペクト比が正しく設定されていれば。以下参照:
{\bf set size (p.~\pageref{set size})\index{size}})。{\bf gnuplot} は、両方の関数が媒介変数による {\bf plot} のために
与えられていなければエラーメッセージを出します。

3 次元グラフにおいては面は x = f(u,v), y = g(u,v), z = h(u,v) で定め
られます。よって 3 つの関数を組で指定する必要があります。例としては、
{\bf cos(u)*cos(v),cos(u)*sin(v),sin(u)} とすることによって球面が描けます。
{\bf gnuplot} は、3 つ全部の関数が媒介変数による {\bf splot} のために与えられ
ていなければエラーメッセージを出します。

これによって表現できる関数群は、単純な f(x) 型の関数群の内包することに
なります。なぜならば、2 つ (3 つ) の関数は x, y (, z) の値を独立に計算
する記述ができるからです。実際、t,f(t) のグラフは、一番目の関数のよう
な恒等関数を用いて x の値が計算される場合に f(x) によって生成されるグ
ラフと等価です。同様に、3 次元での u,v,f(u,v) の描画は、f(x,y) と等価
です。

媒介変数表示関数は、x の関数、y の関数 (、z の関数)の順に指定し、それ
らは共通の媒介変数およびその変域で定義されることに留意して下さい。

さらに、{\bf set parametric} の指定は、新しい変数変域を使用することを暗に
宣言します。通常の f(x) や f(x,y) が xrange、yrange (、zrange) を使用
するのに対して、媒介変数モードではそれに加えて、trange, urange, vrange
を使用します。これらの変域は {\bf set trange}, {\bf set urange}, {\bf set vrange}
によって直接指定することも、{\bf plot} や {\bf splot} で指定することもできます。
現時点では、これらの媒介変数のデフォルトの変域は [-5:5] となっています。
将来的にはこれらのデフォルト値をもっと有意なものに変更する予定です。
\subsection*{平行描画軸設定 (paxis)}
\addcontentsline{toc}{subsection}{平行描画軸設定 (paxis)}
\label{paxis}%
\index{paxis}%
\label{commands set paxis}%
\label{set paxis}%
\label{show paxis}%
書式:
\preverbatim
\begin{verbatim}
     set paxis <axisno> {range <range-options> | tics <tic-options>}
     set paxis <axisno> label <label-options> { offset <radial-offset> }
     show paxis <axisno> {range | tics}
\end{verbatim}
\postverbatim
コマンド {\bf set paxis} は、平行座標描画 (parallel axis) とクモの巣グラフ
(spiderplot) の p1, p2, ... 軸の一つに作用すること以外は、{\bf set xrange}
や {\bf set xtics} と同じです。以下参照: {\bf parallelaxes (p.~\pageref{parallelaxes})\index{parallelaxes}}, {\bf set xrange (p.~\pageref{set xrange})\index{xrange}},
{\bf set xtics (p.~\pageref{set xtics})\index{xtics}}。range と tics コマンドへの通常のオプションは、平行座標描
画スタイルには意味のないものもありますが、一応すべてを受けつけます。

{\bf set paxis $<$axisno$>$ label $<$label-options$>$} は、spiderplot 用で、その他
では無視されます。平行座標描画の軸は、plot コマンドの {\bf title} オプショ
ンでラベル付けできます。これは xtic ラベルを生成するので、{\bf set xtics}
も必要となることに注意してください。

軸の線種属性は、{\bf set style parallelaxis} で制御します。
\subsection*{Pixmap}
\addcontentsline{toc}{subsection}{Pixmap}
\label{pixmap}%
\index{pixmap}%
\label{set pixmap}%
\label{unset pixmaps}%
\label{show pixmaps}%
\label{commands set pixmap}%
書式:
\preverbatim
\begin{verbatim}
     set pixmap <index> {"filename" | colormap <name>}
                at <position>
                {width <w> | height <h> | size <w>,<h>}
                {front|back|behind} {center}
     show pixmaps
     unset pixmaps
     unset pixmap <index>
\end{verbatim}
\postverbatim

コマンド {\bf set pixmap} は、その後に続く plot で表示されるオブジェクトを
定義するコマンド {\bf set object} と似ています。そのピクスマップを構成する
R/G/B/alpha の値の長方形配列が png, jpeg, gif ファイルのいずれかから読
み込まれます。gnuplot 出力上の位置とピクスマップが占有する範囲は、任意
の座標系 (以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}) で指定できます。{\bf at $<$position$>$} で
与えた座標は、キーワード {\bf center} が指定されていない限り、ピクスマップ
の左下角を意味します。

{\bf width $<$x-extent$>$} を使用して描画するピクスマップの x の範囲を 指定し
た場合、元の画像のアスペクト比が保持され、軸のスケールや回転ではアスペ
クト比もピクスマップの向きも変更しません。{\bf height $<$y-extent$>$} を使用し
て y の範囲を指定した場合も同様です。{\bf size $<$x-extent$>$ $<$y-extent$>$} を使
用して x と y の範囲の両方を指定した場合、元のアスペクト比を変更します。
サイズを指定しなければピクセル単位での元のサイズを使用します (よってそ
の実際のサイズは、出力形式に依存します)。

ピクスマップは、グラフの境界でクリッピングしません。オブジェクトやレイ
ヤの一般的な挙動に対する例外として、{\bf behind} レイヤに割り当てたピクス
マップは、multiplot では最初の plot でのみ描画します。これは、一つの背
景用のピクスマップを、multiplot のすべてのパネルで共有することを可能に
します。

例:
\preverbatim
\begin{verbatim}
     # すべてのグラフの背景としてグラデーションを使用
     # キャンバス全体を埋めるよう x, y の両方をリサイズする
     set pixmap 1 "gradient.png"
     set pixmap 1 at screen 0, 0 size screen 1, 1 behind
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # グラフの各ページの右下にロゴをを配置
     set pixmap 2 "logo.jpg"
     set pixmap 2 at screen 0.95, 0 width screen 0.05 behind
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # ある 3 次元座標に小さい画像を配置
     # それは描画されている曲面に張り付いているように移動するが、
     # 常に前を向き直立し続ける
     set pixmap 3 "image.png" at my_x, my_y, f(my_x,my_y) width screen .05
     splot f(x,y)
\end{verbatim}
\postverbatim
\subsubsection*{カラーマップから作る pixmap (pixmap from colormap)}
\addcontentsline{toc}{subsubsection}{カラーマップから作る pixmap (pixmap from colormap)}
\label{pixmap colormap}%
\label{set pixmap colormap}%
pixmap のもう一つの利用目的は、現在有効なパレットに対して自動的に作ら
れるカラーボックスとは別に、名前付きカラーマップに対するカラーボックス
を作ることです。

\preverbatim
\begin{verbatim}
    set pixmap <index> colormap <name> at <position> size <width>, <height>
\end{verbatim}
\postverbatim
\subsection*{Pm3d}
\addcontentsline{toc}{subsection}{Pm3d}
\label{commands set pm3d}%
\label{commands show pm3d}%
\label{set pm3d}%
\label{show pm3d}%
\label{pm3d}%
\index{pm3d}%
pm3d は {\bf splot} の一つのスタイルで、パレットに割り付けられた 3 次元、
4 次元データを、カラー/灰色の色地図や曲面として描画します。これは、格
子状のデータや非格子状のデータを前処理なしに描画できます。pm3d のスタ
イルオプションは、他の 3 次元描画要素を構築するのに使われる単色多角形
にも影響を与えます。

書式 (オプションは任意の順で与えることができます):
\preverbatim
\begin{verbatim}
     set pm3d {
                { at <position> }
                { interpolate <steps/points in scan, between scans> }
                { scansautomatic | scansforward | scansbackward
                                 | depthorder {base} }
                { flush { begin | center | end } }
                { ftriangles | noftriangles }
                { clip | clip1in | clip4in }
                { {no}clipcb }
                { corners2color
                  { mean|geomean|harmean|rms|median|min|max|c1|c2|c3|c4 }
                }
                { {no}lighting
                  {primary <fraction>} {specular <fraction>}
                  {spec2 <fraction>}
                }
                { {no}border {retrace} {<linestyle-options>}}
                { implicit | explicit }
                { map }
              }
     show pm3d
     unset pm3d
\end{verbatim}
\postverbatim

pm3d の曲面は、splot コマンドに与えた順に連続して描画することに注意し
てください。先に描かれたグラフは、後のグラフで隠される可能性があります。
それを避けるために、scan オプションの {\bf depthorder} を使用することがで
きます。

pm3d 曲面は、表示枠の天井 ({\bf top}) や底面 ({\bf bottom}) に射影できます。
以下参照: {\bf pm3d position (p.~\pageref{pm3d position})\index{position}}。
以下のコマンドは、異なった高さで 3 つの色付きの曲面を描きます:
\preverbatim
\begin{verbatim}
     set border 4095
     set pm3d at s
     splot 10*x with pm3d at b, x*x-y*y, x*x+y*y with pm3d at t
\end{verbatim}
\postverbatim

以下も参照: {\bf set palette (p.~\pageref{set palette})\index{palette}}, {\bf set cbrange (p.~\pageref{set cbrange})\index{cbrange}}, {\bf set colorbox (p.~\pageref{set colorbox})\index{colorbox}}。そしてデモフ
ァイル {\bf demo/pm3d.dem} も参考になるでしょう。

\subsubsection*{With pm3d (明示的な pm3d; pm3d explicit)}
\addcontentsline{toc}{subsubsection}{With pm3d (明示的な pm3d; pm3d explicit)}
\label{pm3d explicit}%
\label{with pm3d}%
\label{splot with pm3d}%
\label{plotting styles pm3d}%
\label{splot with pm3d zclip}%
\label{pm3d zclip}%
\label{zclip}%
\index{zclip}%

書式
\preverbatim
\begin{verbatim}
    splot DATA using (x):(y):(z){:(color)} with pm3d
               { at <position>}
               {fs|fillstyle <fillstyle>} {fc|fillcolor <colorspec>}
               {zclip [zmin:zmax]}
\end{verbatim}
\postverbatim

すべての pm3d 曲面の描画属性は、{\bf set pm3d} を使って制御できます。デフ
ォルトでは、曲面全体を四辺形の格子として描画し、各格子は z 座標に割り
当てられるパレット色で色付けします。4 番目の入力列を与えると、パレット
の割り当ては z の値でなくその値を使用します。以下参照:
{\bf pm3d fillcolor (p.~\pageref{pm3d fillcolor})\index{fillcolor}}, {\bf pm3d color\_assignment (p.~\pageref{pm3d color_assignment})\index{color assignment}}。

{\bf set pm3d implicit} が有効な状態で {\bf with pm3d} 以外の描画スタイルを使
用するのではなく、plot コマンドで明示的に {\bf with pm3d} を使用する場合、
描画オプションを追加することが可能です。これにより、同じグラフ上で、違
う曲面に別々の色付けの仕組みを使うことが可能になります。

試験段階: このバージョンの gnuplot は、オプション {\bf zclip} を導入してい
て、それは z の値の境界で曲面を滑らかな曲面を生成するようにクリッピン
グします。以下の例は、2 色の 3 次元曲面の頂上の部分を徐々に消していく
アニメーションを表示します。
\preverbatim
\begin{verbatim}
    set style line 101 lc "gray"
    set style line 102 lc "blue"
    set pm3d depthorder
    do for [i=0:N] {
        splot f(x,y) with pm3d fillcolor ls 101 zclip [* : zmax-(i*delta)]
        pause 0.2  # アニメーションフレーム間隔は 1/5 秒
    }
\end{verbatim}
\postverbatim

\subsubsection*{暗黙的な pm3d (pm3d implicit)}
\addcontentsline{toc}{subsubsection}{暗黙的な pm3d (pm3d implicit)}
\label{pm3d implicit}%

splot コマンドで明示的に {\bf with pm3d} を指定した場合、またはデータや関
数描画スタイル ({\bf style}) が大域的に pm3d にセットされている場合、ある
いは、pm3d モードが {\bf set pm3d implicit} となっている場合は、pm3d のカ
ラー曲面を描画します。後の 2 つの場合は、plot コマンドで指定したスタイ
ルで生成する網目に pm3d 曲面を追加する形で描画します。例えば、
\preverbatim
\begin{verbatim}
     splot 'fred.dat' with lines, 'lola.dat' with lines
\end{verbatim}
\postverbatim
は、各データ集合毎に折れ線による網目と pm3d 曲面の両方を描画します。
オプション {\bf explicit} (明示的) が ON (または {\bf implicit} が OFF) の場合
は、属性 {\bf with pm3d} を指定したグラフのみが pm3d 曲面として描画されま
す。例えば
\preverbatim
\begin{verbatim}
     splot 'fred.dat' with lines, 'lola.dat' with pm3d
\end{verbatim}
\postverbatim
は、'freq.dat' は折れ線で (線のみで)、'lola.dat' は pm3d 曲面で描画し
ます。

gnuplot の起動時はそのモードは {\bf explicit} (明示的) になっています。歴
史的、そして互換性のために、コマンド {\bf set pm3d;} (すなわちオプションが
ない場合) と {\bf set pm3d at X ...} (すなわち {\bf at} が最初のオプションの場
合) はモードを {\bf implicit} (暗黙的) に変更します。コマンド {\bf set pm3d;}
は、その他のオプションをそれらのデフォルトの状態に設定します。

デフォルトのデータ/関数の描画スタイルを {\bf pm3d} にしたい場合は、例えば
\preverbatim
\begin{verbatim}
     set style data pm3d
\end{verbatim}
\postverbatim
とします。この場合、オプション {\bf implicit} と {\bf explicit} は効力を持ちま
せん。
\subsubsection*{Pm3d のアルゴリズム (algorithm)}
\addcontentsline{toc}{subsubsection}{Pm3d のアルゴリズム (algorithm)}
\label{pm3d algorithm}%

まず、地図/曲面がどのように描かれるのかについて記述します。入力データ
は、関数を評価して得られるかまたは {\bf splot data file} から得られます。
曲面は、走査 (孤立線) の繰り返しで構成されます。pm3d アルゴリズムでは、
最初の走査で検出された隣り合う 2 点と、次の走査で検出された他の 2 点の
間の領域が、これら 4 点の z の値 (または追加された 'color' 用の列の値、
以下参照: {\bf using (p.~\pageref{using})\index{using}}) に従って灰色で (または カラーで) 塗られます。デフォ
ルトでは 4 つの角の値の平均値が使われますが、それはオプション
{\bf corners2color} で変更できます。それなりの曲面を描くためには、隣り合う
2 点の走査が交差してはいけなくて、近接点走査毎の点の数が違いすぎてはい
けません。もちろん、最も良いのは走査の点の数が同じことです。他には何も
必要ではありません (例えばデータは格子状である必要もない)。他にもこの
pm3d アルゴリズムは、入力された (計測された、あるいは計算された) 領域
の外には何も描かない、という長所があります。

曲面の色づけは、以下のような入力データに関して行われます:

1. 関数、または 1 つか 3 つのデータ列からなるデータの splot: 上に述べ
た四角形の 4 つの角の z 座標の平均値 (または {\bf corners2color}) から、灰
色の範囲 [0:1] を与える {\bf zrange} または {\bf cbrange} の範囲
[min\_color\_z,max\_color\_z] への対応により、灰色/カラーの値が得られます。
この値は、直接灰色の色地図用の灰色の値として使うことができます。正規化
された灰色の値をカラーに対応させることもできます。完全な説明は、以下
参照: {\bf set palette (p.~\pageref{set palette})\index{palette}}。

2. 2 つか 4 つのデータ列からなるデータの splot: 灰色/カラーの値は、z
の値の代わりに最後の列の座標を使って得られますので、色と z 座標が独立
なものになります。これは 4 次元データの描画に使うことができます。

他の注意:

1. 物理学者の間では、gnuplot の文書やソースに現われる 'iso\_curve' (孤
立線) という言葉よりも、上で言及した '走査 (scan)' という言葉の方が使
われています。1 度の走査と他の走査の記録により色地図を評価する、という
のはそういう意味です。

2. 'gray' や 'color' の値 (scale) は、滑らかに変化するカラーパレットへ
の、連続な変数の線形写像です。その写像の様子は描画グラフの隣に長方形で
表示されます。この文書ではそれを {\tt"}カラーボックス (colorbox){\tt"} と呼び、
その変数をカラーボックス軸の変数と呼びます。以下参照: {\bf set colorbox (p.~\pageref{set colorbox})\index{colorbox}},
{\bf set cbrange (p.~\pageref{set cbrange})\index{cbrange}}。
\subsubsection*{光源モデル (lighting)}
\addcontentsline{toc}{subsubsection}{光源モデル (lighting)}
\label{lighting}%
\index{lighting}%
\label{pm3d lighting}%
\label{pm3d nolighting}%
\label{set pm3d lighting}%
\label{spotlight}%
\index{spotlight}%
\label{pm3d spotlight}%
\label{set pm3d spotlight}%
書式:
\preverbatim
\begin{verbatim}
    set pm3d lighting {primary <frac>} {specular <frac>} {spec2 <frac>}
    set pm3d spotlight {rgb <color>} {rot_x <angle>} {rot_z <angle>}
                       {Phong <value>} {default}
\end{verbatim}
\postverbatim

デフォルトでは、pm3d の色の割り当ては、向きや視方位には依存しません。
その状態は {\bf set pm3d nolighting} に対応します。
一方、コマンド {\bf set pm3d lighting} は、一点の点光源からの照明からの
50\% の光による単純な光源モデルを選択します。周囲の明るさに対するその光
源の強度は {\bf set pm3d lighting primary $<$fraction$>$} で調整できます。反射
光 (specular) を含ませる度合いは、その比率 (fraction) の設定ができます:
\preverbatim
\begin{verbatim}
    set pm3d lighting primary 0.50 specular 0.0   # ハイライトなし
    set pm3d lighting primary 0.50 specular 0.6   # 強いハイライト
\end{verbatim}
\postverbatim
ベタ塗り (solid color) の pm3d 曲面は、反射光のハイライトがないととて
も平らに見える傾向があります。

主光源のハイライトは曲面の片側にしか影響を与えないので、他の方向から光
る 2 番目のスポットライトの照明を追加するといい場合があります。この 2
番目のスポットライトの強さは、{\tt"}spec2 $<$fraction$>${\tt"} (比率) で設定します。
2 番目のスポットライトは、spec2 が生の場合にのみ光源モデルに含まれます。
その方向、色、反射モデルは、{\tt"}set pm3d spotlight{\tt"} で制御します。このス
ポットライトの利用法と位置取りは、対話形式のデモ {\bf spotlight.dem} で説
明しています。
hidden\_compare.dem も参照してください。
\href{http://www.gnuplot.info/demo/hidden_compare.html}{\tt (単色塗り曲面の hidden3d と pm3d の処理の比較)
}

例:
\preverbatim
\begin{verbatim}
    set pm3d lighting primary 0.8 spec 0.4 spec2 0.4
    set pm3d spot rgb "blue"
\end{verbatim}
\postverbatim
\subsubsection*{Pm3d の位置 (position)}
\addcontentsline{toc}{subsubsection}{Pm3d の位置 (position)}
\label{pm3d position}%
\label{set pm3d position}%
pm3d の色付け曲面は、その曲面の本当の z の位置、または底面か天井の平面
に射影を描くことができます。これは、オプション {\bf at} に、{\bf b}, {\bf t}, {\bf s}
の 6 つまでの組合せの文字列をつけて指定することで制御できます。例えば
{\bf at b} は底面のみに描画しますし、{\bf at st} は最初に曲面に描いてそれから
天井面に描きますし、{\bf at bstbst} は ... 役には立たないでしょう。

塗られた四角形は、次から次へと描画されて行きます。これは、後に描く四角
形が、以前に描いた四角形を覆ったり、重なったりします。最初に走査される
データを最初に描くか最後に描くかを切り替えるスイッチオプション
{\bf scansforward} と {\bf scansbackward} を試してみてください。デフォルトは
{\bf scansautomatic} で、これは gnuplot 自身に走査の順を推測させます。オプ
ション {\bf depthorder} は四角形の順序を視点からの距離でソートすることで完
全に再構成します。これによりかなり複雑な曲面でも視覚的なものにすること
ができます。詳細は、以下参照: {\bf pm3d depthorder (p.~\pageref{pm3d depthorder})\index{depthorder}}。
\subsubsection*{走査の順番 (scanorder)}
\addcontentsline{toc}{subsubsection}{走査の順番 (scanorder)}
\label{pm3d scanorder}%
\label{pm3d depthorder}%
\label{pm3d flush}%
\label{pm3d ftriangles}%
\label{set pm3d scanorder}%
\label{set pm3d depthorder}%
\label{set pm3d flush}%
\label{set pm3d ftriangles}%
\label{depthorder}%
\index{depthorder}%
\index{flush}%
\label{scansforward}%
\index{scansforward}%
\label{scansautomatic}%
\index{scansautomatic}%
\label{scansbackward}%
\index{scansbackward}%
\index{ftriangles}%
\preverbatim
\begin{verbatim}
    set pm3d {scansautomatic | scansforward | scansbackward | depthorder}
\end{verbatim}
\postverbatim

デフォルトでは、pm3d の単色塗り曲面を構成する四角形は、それらが曲面の
格子点に沿って出会う順番に塗り潰されます。この順番は、オプション
{\bf scansautomatic}$|${\bf scansforward}$|${\bf scansbackward} で制御できます。これら
の走査 (scan) オプションは、一般には隠面処理とは両立しません。

2 回の連続する走査で点の数が同じでなかった場合、四角形の点の取り始めを、
両方の走査の最初から ({\bf flush begin}) にするか、最後から ({\bf flush end})
にするか、真中から ({\bf flush center}) にするかを決定しなければいけません。
{\bf flush (center$|$end)} は {\bf scansautomatic} とは両立せず、よって
{\bf flush center} または {\bf flush end} を指定して {\bf scansautomatic} が設定さ
れた場合、それは無言で {\bf scansforward} に変更されます。

2 回の連続する走査で点の数が同じでなかった場合、個々の走査で点が足りな
い場合に、走査の最後に色三角形を描くかどうかをオプション {\bf ftriangles}
は指示します。これは滑らかな色地図の境界を描くのに使われます。

gnuplot は、曲面の単色塗りにおいては、本当の隠面処理は行いませんが、た
いていは遠い方から近い方へ順に四角形要素を塗り潰すことで十分なできあが
りになります。このモードは、以下のオプションを使うことで選択できます:
\preverbatim
\begin{verbatim}
     set pm3d depthorder
\end{verbatim}
\postverbatim
大域的なオプションである {\bf set hidden3d} は、pm3d 曲面には影響しないこ
とに注意してください。

オプション {\bf depthorder} は、{\bf splot with boxes} で作った細長い長方形に
適用すると、良くない結果を生む傾向があります。その場合、キーワード
{\bf base} を追加することで、z=0 の平面と箱の共通部分で深さのソートを行う
ため少しましになります。その形式のグラフは、光源モデル (lighting) を追
加すれば更に改善できます。
例:
\preverbatim
\begin{verbatim}
    set pm3d depthorder base
    set pm3d lighting
    set boxdepth 0.4
    splot $DATA using 1:2:3 with boxes
\end{verbatim}
\postverbatim

\subsubsection*{クリッピング (clipping)}
\addcontentsline{toc}{subsubsection}{クリッピング (clipping)}
\label{pm3d clipping}%
\label{set pm3d clipping}%
\label{clipcb}%
\index{clipcb}%
\label{clip1in}%
\index{clip1in}%
\label{clip4in}%
\index{clip4in}%
\label{pm3d clipcb}%
\label{noclipcb}%
\index{noclipcb}%
\label{pm3d noclipcb}%
書式:
\preverbatim
\begin{verbatim}
    set pm3d {clip | clip1in | clip4in}
    set pm3d {no}clipcb
\end{verbatim}
\postverbatim

pm3d 曲面や他の 3 次元オブジェクトを構成する四辺形は、デフォルトでは現
在の zrange に関して滑らかにクリッピングします。これは、gnuplot 5.0 以
前とは異なる挙動です。2 次元射影 ({\bf set view map}) では、このモードは
xrange と yrange に対してもクリッピングします。

それとは別に、4 つの角全部が x, y, z の範囲内である四辺形全体
({\bf set pm3d clip4in})、または少なくとも 1 つの角が x, y, z の範囲内であ
る四辺形全体 ({\bf set pm3d clip1in})を描画することにより、クリッピングす
ることもできます。オプション {\bf clip}, {\bf clip1in}, {\bf clip4in} は相互に排他
的です。

空間座標 x, y, z ベースのクリッピングとは別に、四辺形を描画するかどう
かを最終的なパレットカラー値で決定することもできます。
{\bf clipcb}: (デフォルト) cbmin 未満のパレットカラー値は cbmin として、
cbmax より大きいパレットカラー値は cbmax として扱います。
{\bf noclipcb}: cbrange 外のパレットカラー値の四辺形は何も描画しません。

\subsubsection*{色の割り当て}
\addcontentsline{toc}{subsubsection}{色の割り当て}
\label{pm3d color_assignment}%
デフォルトでは、pm3d の色は、その曲面の格子の各 4 辺形毎に個別に割り当
てられます。曲面全体に一様な色を割り当てるような他の彩色の仕組みについ
ては、以下参照: {\bf pm3d fillcolor (p.~\pageref{pm3d fillcolor})\index{fillcolor}}。

各四辺形には一つの灰色/カラー値 (グラデーションではない) を割り当てま
す。その値は、{\bf corners2color $<$option$>$} に従って四辺形の 4 つの角の z
座標から計算します。そして、その値を現在のパレットから色を選択するのに
使用します。以下参照: {\bf set palette (p.~\pageref{set palette})\index{palette}}。
一つの {\bf splot} コマンド内でパレットを変更することはできません。

4 列目にデータを与えた場合、個々の四角形の彩色は上と同様に行いますが、
色の値は z の値とは別とみなされます。別の彩色オプションにより、4 列目
のデータに RGB 色を与えることもできます。以下参照: {\bf rgbcolor variable (p.~\pageref{rgbcolor variable})\index{variable}}。
この場合、描画コマンドは以下のようにする必要があります:

\preverbatim
\begin{verbatim}
     splot ... using 1:2:3:4 with pm3d lc rgb variable
\end{verbatim}
\postverbatim

z の値の範囲と曲面の色の値の範囲は、{\bf set zrange}, {\bf set cbrange},
{\bf set log z}, {\bf set log cb} 等によって独立に調整し得ることに注意してくだ
さい。
\subsubsection*{Corners2color}
\addcontentsline{toc}{subsubsection}{Corners2color}
\label{pm3d corners2color}%
\label{set pm3d corners2color}%
\label{corners2color}%
\index{corners2color}%
\index{mean}%
\index{geomean}%
\index{harmean}%
\index{median}%
\index{min}%
\index{max}%
\index{rms}%
pm3d 曲面の各四角形の色は、その 4 つの頂点の色の値に基づいて割り当てら
れます。$<$option$>$ は 'mean' (デフォルト)、'geomean', 'harmean', 'rms',
'median' で、曲面のカラーの平滑化に幾つかの種類を与え、'min','max' は
それぞれ最小値、最大値を選択します。これらは鋭敏な、あるいは急激なピー
ク値を持つようなピクセルイメージや色地図を作るときには必要ありません。
そのような場合には、むしろオプション 'c1', 'c2', 'c3', 'c4' を使って、
四角形の色の割当にただ一つの角の z 座標を使うようにすればいいでしょう。
どの角が 'c1' に対応するのかを知るためには何回か実験してみる必要がある
でしょう。その向きは描画の方向に依存しています。
pm3d アルゴリズムは、カラー曲面を入力データ点の範囲の外には描かないの
で、オプション 'c$<$j$>$' は、格子の 2 つのへりに沿ったピクセルが、どの四
角形の色にも寄与しない、という結果をもたらします。例えば、pm3d アルゴ
リズムを 4x4 のデータ点の格子に適用するスクリプト {\bf demo/pm3d.dem} (是
非見てください) では、(4-1)x(4-1)=9 色しかない長方形が生成されます。
\subsubsection*{Border}
\addcontentsline{toc}{subsubsection}{Border}
\label{set pm3d hidden3d}%
\label{pm3d hidden3d}%
\label{set pm3d border}%
\label{pm3d border}%
\preverbatim
\begin{verbatim}
    set pm3d border {retrace} {line-properties}
    set pm3d noborder
\end{verbatim}
\postverbatim

このオプションは、各四角形の境界線を、四角形が描かれているように描画し
ます。追加の線属性 (線種、色、線幅) は任意で、デフォルトでは、幅 1 の
黒の実線で境界を書きます。

{\bf set pm3d border retrace} は、四辺形の塗るのと同じ色で境界を塗らせます。
これは、結果として {\bf noborder} と同じことになりますが、出力モードによっ
ては、隣接した塗り潰し四辺形の間のアンチエイリアスによる副産物に苦しむ
かもしれません。境界を再描画 (retrace) することで、出力ファイルは大き
くなってしまいますが、これらの副産物を隠すことができます。
\subsubsection*{Fillcolor}
\addcontentsline{toc}{subsubsection}{Fillcolor}
\label{pm3d fillcolor}%
\preverbatim
\begin{verbatim}
    splot FOO with pm3d fillcolor <colorspec>
\end{verbatim}
\postverbatim

描画スタイル {\bf with pm3d} は、splot コマンド上で fillcolor 追加オプショ
ンを受けつけます。その指定は、pm3d 曲面全体に適用されます。以下参照:
{\bf colorspec (p.~\pageref{colorspec})\index{colorspec}}。たいていの fillcolor 指定では単一色の単色塗りになりますが
曲面の表裏の要素を区別するための光源モデルが存在しない場合は見た目を解
釈するのが難しいでしょう。以下参照: {\bf pm3d lighting (p.~\pageref{pm3d lighting})\index{lighting}}。

2,3 特別な例を紹介します。{\bf with pm3d fillcolor palette} は、デフォルト
の pm3d のパレットベースの配色と全く同じ結果を生成しますので、役に立つ
オプションではありません。
{\bf with pm3d fillcolor linestyle N} は多少意味があります。これは、
gnuplot の {\bf hidden3d} モードを使った場合の配色の仕組みと同様、pm3d 曲
面の上側と下側に異なる色を割り当てる変種です。線種 N を上側の曲面に、
線種 N+1 を下側の曲面に使用します。「上側」と「下側」は、走査 (scan)
順序に依存しますので、{\bf pm3d scansbackward} と {\bf pm3d scansforward} では
配色が逆になることに注意してください。この配色オプションは、
{\bf pm3d depthorder} とでは最適に機能しますが、それは残念ながら走査順序の
制御を許しませんので、代わりに線種 N と N+1 で定義される色を入れ替えな
いといけないかもしれません。
\subsubsection*{Interpolate}
\addcontentsline{toc}{subsubsection}{Interpolate}
\label{set pm3d interpolate}%
\label{pm3d interpolate}%
オプション {\bf interpolate m,n} は、より細かな網目を作るために格子点間を
補間します。データ描画に対しては、これは色の曲面を滑らかにし、その曲面
の尖りを補正します。関数描画に対しては、この補間はほとんど意味はありま
せんから、関数描画の場合は普通 {\bf samples} や {\bf isosamples} を使って標本
数を増加させるのがいいでしょう。

正の m, n に対しては各四角形、または三角形は、それぞれの方向に m 回、
n 回補間されます。負の m, n では補間の頻度は、少なくとも $|$m$|$, $|$n$|$ 点が
描画されるように選択されます。これは特別な格子関数と見なすことができま
す。

注意: {\bf interpolate 0,0} は、自動的に最適な補間曲面点数を選択します。

注意: corners2color で幾何平均 (geomean) のような非線形評価が設定され
ていたとしても、現在の色の補間は常に線形補間で行われます。
\subsubsection*{非推奨なオプション}
\addcontentsline{toc}{subsubsection}{非推奨なオプション}
\label{set pm3d deprecated_options}%
\label{pm3d deprecated_options}%
\label{set pm3d map}%
\label{pm3d map}%
\label{map}%
\index{map}%
非推奨なオプション {\bf set pm3d map} は、以下と同等です。
{\bf set pm3d at b; set view map; set style data pm3d; set style func pm3d;}

非推奨なオプション {\bf set pm3d hidden3d N} は、以下と同等です。
{\bf set pm3d border ls N}
\subsection*{Pointinterval の箱サイズ (pointintervalbox)}
\addcontentsline{toc}{subsection}{Pointinterval の箱サイズ (pointintervalbox)}
\label{commands set pointintervalbox}%
\label{set pointintervalbox}%
\label{pointintervalbox}%
\index{pointintervalbox}%
線属性 {\bf pointinterval}, {\bf pointnumber} は、描画スタイル {\bf linespoints}
でのみ使われます。pointinterval や pointnumber の値を負、例えば -N と
すると、点の記号を描く前に、各点の記号の後ろの箱 (実際には円) の部分
を背景色で塗りつぶすことで消します。コマンド {\bf set pointintervalbox} は
その消す領域の大きさ (半径) を制御します。指定する値はデフォルトの半径
(= pointsize) に対する倍率です。{\bf unset pointintervalbox} は、点記号の
背景の削除をやめます。
\subsection*{点サイズ (pointsize)}
\addcontentsline{toc}{subsection}{点サイズ (pointsize)}
\label{commands set pointsize}%
\label{commands show pointsize}%
\label{set pointsize}%
\label{show pointsize}%
\label{pointsize}%
\index{pointsize}%
コマンド {\bf set pointsize} は描画で使われる点の大きさを変更します。

書式:
\preverbatim
\begin{verbatim}
     set pointsize <multiplier>
     show pointsize
\end{verbatim}
\postverbatim

デフォルトは 1.0 倍です。画像データ出力では、大きいポイントサイズの方
が見やすいでしょう。

一つの描画に対するポイントサイズは {\bf plot} コマンドの上でも変更できます。
詳細は、以下参照: {\bf plot with (p.~\pageref{plot with})\index{with}}。

ポイントサイズの設定は、必ずしも全ての出力形式でサポートされているわけ
ではないことに注意してください。
\subsection*{極座標モード (polar)}
\addcontentsline{toc}{subsection}{極座標モード (polar)}
\label{commands set polar}%
\label{commands unset polar}%
\label{commands show polar}%
\label{set polar}%
\label{unset polar}%
\label{show polar}%
\label{polar}%
\index{polar}%
\label{nopolar}%
\index{nopolar}%
コマンド {\bf set polar} はグラフの描画方法を xy 直交座標系から極座標系に
変更します。

書式:
\preverbatim
\begin{verbatim}
     set polar
     set polar grid <grid options>
     unset polar
     show polar
\end{verbatim}
\postverbatim

極座標モードでは、仮変数 (t) は角度θを意味します。t のデフォルトの範
囲は [0:2*pi] ですが、単位として度が選択されていれば [0:360] となりま
す (以下参照: {\bf set angles (p.~\pageref{set angles})\index{angles}})。

コマンド {\bf unset polar} は描画方法をデフォルトの xy 直交座標系に戻しま
す。

{\bf set polar} コマンドは 2 次元描画にのみ効力を持ちます。同様の 3 次元機
能のコマンドについては、以下参照: {\bf set mapping (p.~\pageref{set mapping})\index{mapping}}。

極座標モードでは t の数式の意味は r=f(t) となり、t は回転角となります。
trange は関数の定義域 (角度) を制御し、rrange, xrange, yrange はそれぞ
れグラフの x,y 方向の範囲を制御することになります。これらの範囲と
rrange は自動的に設定されるか、または明示的に設定できます。詳細に関し
ては、以下参照: {\bf set rrange (p.~\pageref{set rrange})\index{rrange}}, {\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。

例:
\preverbatim
\begin{verbatim}
     set polar
     plot t*sin(t)
     set trange [-2*pi:2*pi]
     set rrange [0:3]
     plot t*sin(t)
\end{verbatim}
\postverbatim

最初の {\bf plot} はデフォルトの角度の範囲の 0 から 2*pi を使います。動径
方向とグラフのサイズは自動的に伸縮されます。2 番目の {\bf plot} は角度の定
義域を拡張し、グラフのサイズを原点から 3 の幅に制限します。これは x,y
のそれぞれの方向を [-3:3] に制限することになります。

デフォルトでは極座標グラフは角度 0 (θ=0) が右向きで、増加は反時計回り
となるように向きづけられています。その 0 の向きと増加方向の両方を明示
的に変更可能です。以下参照: {\bf set theta (p.~\pageref{set theta})\index{theta}}。

{\bf set size square} とすると {\bf gnuplot} はアスペクト比 (縦横の比) を 1 に
するので円が (楕円でなく) 円に見えるようになります。同心円の周囲の目盛
りの刻みは、{\bf set ttics} で指定できます。
以下も参照
\href{http://www.gnuplot.info/demo/polar.html}{\tt 極座標のデモ (polar.dem)
}

および
\href{http://www.gnuplot.info/demo/poldat.html}{\tt 極座標データの描画 (poldat.dem)。
}

\subsubsection*{極座標格子 (polar grid)}
\addcontentsline{toc}{subsubsection}{極座標格子 (polar grid)}
\label{commands set polar grid}%
\label{set polar grid}%
\label{polar grid}%
書式:
\preverbatim
\begin{verbatim}
     set polar grid {<theta_segments>, <radial_segments>}
                    { qnorm {<power>} | gauss | cauchy | exp | box | hann }
                    { kdensity } { scale <scale> }
                    {theta [min:max]} {r [min:max]}
\end{verbatim}
\postverbatim

極座標格子の設定は、描画スタイル {\bf with surface} と組み合わせて極座標の
点集合から温度分布図 (heat map) を生成するのに使います。面は、円を埋め
尽くす格子からなり、それによりθと r の離散的な範囲で形作る部分で円を
分割します。

各部分には、個々の散在点 [x,y,z] の入力集合からフィルタ操作の適用によ
り導かれる値を割り当てます。デフォルトのフィルタは {\bf qnorm 1} で、これ
は各点の、格子部分の中心からその点までの距離の逆数で重みづけされた z
値の平均を取ることを意味します。

他のフィルタ操作 gauss, cauchy, exp, box, hann に関しては、ほかの場所
で詳しく説明しています。以下参照: {\bf dgrid3d (p.~\pageref{dgrid3d})\index{dgrid3d}}。

{\bf kdensity}: このキーワードは、gnuplot に、重みつきの平均の代わりに、
すべての点からの寄与の重み付きの和を使用することを指示します。

{\bf scale}: このスケール因子 (デフォルトは 1.0) は、重み計算で値を使う前
に、すべての距離に対してスケーリングを適用します。

マスキング: すべての入力点を、格子値を計算するのに使用します。完全に
格子の張られた面は、常にθの範囲 [0:360] 、および自動縮尺、または前に
実行されたコマンド {\bf set rrange} で定義される動径範囲に渡ります。しかし
面の実際にグラフに現れる部分は、θや r の下限、上限によって切り落した
くさび型状に制限できます。θの範囲は度単位で与える必要があります。

\gpinsetfigure{figure_polar_grid}
例えば、以下のコマンドは、サイズにおいて自動縮尺されたすべての入力点
を示すグラフを生成します。すべての入力点の寄与は平均ではなく和であっ
て ({\bf kdensity})、結果としての格子面のくさび部分のみを表示します。

\preverbatim
\begin{verbatim}
    set rrange [0:*]
    set polar grid qnorm kdensity theta [0:190]
    plot DATA with surface, DATA with points
\end{verbatim}
\postverbatim

\subsection*{Print コマンドの出力先 (print)}
\addcontentsline{toc}{subsection}{Print コマンドの出力先 (print)}
\label{commands set print}%
\label{commands show print}%
\label{set print}%
\label{show print}%
コマンド {\bf set print} は {\bf print} コマンドの出力をリダイレクトします。

書式:
\preverbatim
\begin{verbatim}
     set print
     set print "-"
     set print "<filename>" [append]
     set print "|<shell_command>"
     set print $datablock [append]
\end{verbatim}
\postverbatim

パラメータなしの {\bf set print} は、出力を $<$STDERR$>$ に復帰させます。{\tt"}-{\tt"}
という $<$filename$>$ は $<$STDOUT$>$ を意味します。{\bf append} フラグはファイル
を追加 (append) モードで開くことを意味します。パイプをサポートするプラ
ットホーム上では、$<$filename$>$ が {\tt"}$|${\tt"} で始まっていたら、$<$shell\_command$>$
へのパイプが開かれます。

コマンド {\bf print} の対象は名前付きデータブロックでも構いません。データ
ブロック名は '\$' で始まります。以下参照: {\bf inline data (p.~\pageref{inline data})\index{data}}。
データブロックへ文字列を出力する場合、改行文字が入っていると、それは
複数のデータブロック行を生成するように展開されます。
\subsection*{PostScript 定義ファイルパス (psdir)}
\addcontentsline{toc}{subsection}{PostScript 定義ファイルパス (psdir)}
\label{commands set psdir}%
\label{commands show psdir}%
\label{set psdir}%
\label{show psdir}%
\label{psdir}%
\index{psdir}%
コマンド {\bf set psdir $<$directory$>$} は、postscript 出力形式が prologue.ps
や文字エンコード用のファイルを探すのに使用する検索パスを制御します。こ
の仕組みは、別にローカルにカスタマイズした prolog ファイル群と切り替え
るのに使えます。検索の順番は以下のようになっています。
\preverbatim
\begin{verbatim}
     1) `set psdir` を指定した場合はそのディレクトリ
     2) 環境変数 GNUPLOT_PS_DIR で指定したディレクトリ
     3) 組み込まれたヘッダー、またはデフォルトのシステムディレクトリ
     4) `set loadpath` で指定したディレクトリ
\end{verbatim}
\postverbatim
\subsection*{極座標の動径軸 (raxis)}
\addcontentsline{toc}{subsection}{極座標の動径軸 (raxis)}
\label{commands set raxis}%
\label{raxis}%
\index{raxis}%
\label{set raxis}%
\label{unset raxis}%
コマンド {\bf set raxis} と {\bf unset raxis} は、動径軸を格子線と x 軸から分
離して描画するかどうかを切り替えます。現在の rrange の最小値が 0 でな
い (そして自動縮尺でない) 場合、グラフと軸が原点に達しないことを示す白
丸が極座標グラフの中心に描かれます。軸の線は、グラフの境界と同じ線種で
描画されます。以下参照: {\bf polar (p.~\pageref{polar})\index{polar}}, {\bf rrange (p.~\pageref{rrange})\index{rrange}}, {\bf rtics (p.~\pageref{rtics})\index{rtics}}, {\bf rlabel (p.~\pageref{rlabel})\index{rlabel}},
{\bf set grid (p.~\pageref{set grid})\index{grid}}。
\subsection*{Rgbmax}
\addcontentsline{toc}{subsection}{Rgbmax}
\label{commands set rgbmax}%
\label{set rgbmax}%
\label{rgbmax}%
\index{rgbmax}%
\label{unset rgbmax}%
\index{rgbimage}%
書式:
\preverbatim
\begin{verbatim}
    set rgbmax {1.0 | 255}
    unset rgbmax
\end{verbatim}
\postverbatim
rgbimage グラフの RGB (赤、緑、青) 色成分は、デフォルトでは [0:255] の
範囲の整数値であるとみなします。{\bf set rgbmax 1.0} とすると、gnuplot は
{\bf rgbimage} や {\bf rgbalpha} でのグラフの色成分の生成に使うデータ値を、
[0:1] の範囲の実数値であるとみなします。{\bf unset rgbmax} は、それをデフ
ォルトの整数値の範囲 [0:255] に戻します。
\subsection*{Rlabel}
\addcontentsline{toc}{subsection}{Rlabel}
\label{commands set rlabel}%
\label{rlabel}%
\index{rlabel}%
\label{set rlabel}%
\label{unset rlabel}%
このコマンドは、r 軸の上にラベルを配置します。そのラベルは、グラフが極
座標モード (polar) であるか否かに関わらず表示されます。追加の指定キー
ワードについては以下参照: {\bf set xlabel (p.~\pageref{set xlabel})\index{xlabel}}。
\subsection*{Rmargin}
\addcontentsline{toc}{subsection}{Rmargin}
\label{commands set rmargin}%
\label{set rmargin}%
\label{rmargin}%
\index{rmargin}%
コマンド {\bf set rmargin} は右の余白のサイズをセットします。
詳細は、以下参照: {\bf set margin (p.~\pageref{set margin})\index{margin}}。
\subsection*{Rrange}
\addcontentsline{toc}{subsection}{Rrange}
\label{commands set rrange}%
\label{commands show rrange}%
\label{set rrange}%
\label{show rrange}%
\label{rrange}%
\index{rrange}%
コマンド {\bf set rrange} は極座標モードのグラフの動径方向の範囲を設定しま
す。これは xrange と yrange の両方も設定してしまいます。両者は、
[-(rmax-rmin) : +(rmax-rmin)] になります。しかし、これの後で xrange や
yrange を変更しても (例えば拡大するために)、それは rrange を変更しない
ので、データ点は rrange に関してクリッピングされたままとなります。他の
軸とは違い、r 軸の自動縮尺では常に rmin = 0 となります。{\bf reverse} では
自動縮尺フラグは無視されます。
注意: rmin を負の値を設定すると、予期せぬ結果を生む可能性があります。
\subsection*{Rtics}
\addcontentsline{toc}{subsection}{Rtics}
\label{commands set rtics}%
\label{commands show rtics}%
\label{set rtics}%
\label{show rtics}%
\label{rtics}%
\index{rtics}%
コマンド {\bf set rtics} は、動径軸に沿って目盛りを配置します。目盛りとそ
の見出しは原点の右側に描かれます。キーワード {\bf mirror} は、それらを原点
の左側にも描きます。その他のキーワードに関する話については以下参照:
{\bf polar (p.~\pageref{polar})\index{polar}}, {\bf set xtics (p.~\pageref{set xtics})\index{xtics}}, {\bf set mxtics (p.~\pageref{set mxtics})\index{mxtics}}。
\subsection*{サンプル数 (samples)}
\addcontentsline{toc}{subsection}{サンプル数 (samples)}
\label{commands set samples}%
\label{commands show samples}%
\label{set samples}%
\label{show samples}%
\label{samples}%
\index{samples}%
関数のグラフは、与えられた個数の x の値での関数値のサンプリングと、そ
れらの値 f(x0)..f(x1)..f(x2).. を結ぶ線分を描画することで構成していま
す。関数、またはデータの補間に関するデフォルトのサンプリング数は、コマ
ンド {\bf set samples} で変更できます。{\bf plot} や {\bf splot} コマンドの個々の
要素のサンプリング範囲 (sampling range) を変更するには、以下参照:
{\bf plot sampling (p.~\pageref{plot sampling})\index{sampling}}。

書式:
\preverbatim
\begin{verbatim}
     set samples <samples_1> {,<samples_2>}
     show samples
\end{verbatim}
\postverbatim

デフォルトではサンプル数は 100 点と設定されています。この値を増やすと
より正確な描画が出来ますが遅くなります。このパラメータはデータファイル
の描画には何の影響も与えませんが、補間/近似のオプションが使われている
場合はその限りではありません。以下参照: {\bf plot smooth (p.~\pageref{plot smooth})\index{smooth}}, {\bf set cntrparam (p.~\pageref{set cntrparam})\index{cntrparam}},
{\bf set dgrid3d (p.~\pageref{set dgrid3d})\index{dgrid3d}}。

2 次元のグラフ描画が行なわれるときは $<$samples\_1$>$ の値のみが関係します。

隠線処理なしで曲面描画が行なわれるときは、samples の値は孤立線毎に評価
されるサンプル数の指定になります。各 v-孤立線は $<$samples\_1$>$ 個のサンプ
ル点を持ち、u-孤立線は $<$samples\_2$>$ 個のサンプル数を持ちます。$<$samples\_1$>$
のみ指定すると、$<$samples\_2$>$ の値は $<$samples\_1$>$ と同じ値に設定されます。
以下も参照: {\bf set isosamples (p.~\pageref{set isosamples})\index{isosamples}}。
\subsection*{グラフ領域サイズ (size)}
\addcontentsline{toc}{subsection}{グラフ領域サイズ (size)}
\label{commands set size}%
\label{commands show size}%
\label{set size}%
\label{show size}%
\label{size}%
\index{size}%
\label{aspect ratio}%
\label{set size square}%
\label{set size ratio}%
\label{ratio}%
\index{ratio}%
\label{square}%
\index{square}%
書式:
\preverbatim
\begin{verbatim}
     set size {{no}square | ratio <r> | noratio} {<xscale>,<yscale>}
     show size
\end{verbatim}
\postverbatim

$<$xscale$>$ と $<$yscale$>$ は描画全体の拡大の倍率で、描画全体とはグラフとラ
ベルと余白の部分を含みます。

{\bf 歴史的な注意}: gnuplot の以前の版では、{\bf set size} の値を、出力する描
画領域 (キャンバス) のサイズを制御するのにも使っていた出力形式もありま
したが、すべての出力形式がそうだったわけではありませんでした。現在は、
{\bf 'set size'} と {\bf 'set term ... size'} の 2 つは、はっきり違う属性を設
定します。

{\bf set term $<$terminal\_type$>$ size $<$x 単位$>$, $<$y 単位$>$} は、出力ファイルの
サイズ、または {\tt"}キャンバス{\tt"} のサイズを制御します。サイズパラメータの有
効な単位については、個々の出力形式のヘルプを参照してください。デフォル
トでは、グラフはそのキャンバス全体に描画されます。

{\bf set size $<$xscale$>$, $<$yscale$>$} は、描画自体をキャンバスのサイズに対して
相対的に伸縮させます。1.0 より小さい伸縮値を指定すると、グラフはキャン
バス全体を埋めず、1.0 より大きい伸縮値を指定すると、グラフの一部分のみ
がキャンバス全体に合うように描画されます。1 より大きい伸縮値を指定する
と、ある出力形式では問題が起こるかもしれません。

{\bf ratio} は、指定した $<$xscale$>$, $<$yscale$>$ の描画範囲内で、グラフのアスペ
クト比 (縦横比) を $<$r$>$ にします ($<$r$>$ は x 方向の長さに対する y 方向の
長さの比)。

$<$r$>$ の値を負にするとその意味は違って来ます。$<$r$>$=-1 のとき、x 軸、y 軸
の双方の単位 (つまり 1) の目盛りの長さが同一、すなわち等長 (isotropic)
になるよう設定します。以下も参照: {\bf set isotropic (p.~\pageref{set isotropic})\index{isotropic}}。
これは、3 次元用のコマンド {\bf set view equal xy} の 2 次元での同等物です。
$<$r$>$=-2 のとき、y 軸の単位目盛りの長さは x 軸の単位目盛りの長さの 2 倍
に設定されます。$<$r$>$ が負の値に関して以下同様です。以下も参照:
{\bf set isotropic (p.~\pageref{set isotropic})\index{isotropic}}。

{\bf gnuplot} が指定されたアスペクト比のグラフをちゃんと書けるかは選択され
る出力形式に依存します。グラフの領域は出力の指定された部分にちゃんと収
まり、アスペクト比が $<$r$>$ であるような最大の長方形となります (もちろん
適当な余白も残しますが)。
\index{square}%

{\bf set size square} は {\bf set size ratio 1} と同じ意味です。

{\bf noratio} と {\bf nosquare} はいずれもグラフをその出力形式 (terminal) での
デフォルトのアスペクト比に戻しますが、$<$xscale$>$ と $<$yscale$>$ はそのデフ
ォルトの値 (1.0) には戻しません。

{\bf ratio} と {\bf square} は 3 次元描画では意味を持ちませんが、{\bf set view map}
を使用した 3 次元描画の 2 次元射影には影響を与えます。 以下も参照:
{\bf set view equal (p.~\pageref{set view equal})\index{equal}}。これは、3 次元の x 軸と y 軸を強制的に同じスケールに
します。

例:

グラフが現在のキャンバスを埋めるような大きさに設定します:
\preverbatim
\begin{verbatim}
     set size 1,1
\end{verbatim}
\postverbatim

グラフを通常の半分の大きさで正方形にします:
\preverbatim
\begin{verbatim}
     set size square 0.5,0.5
\end{verbatim}
\postverbatim

グラフの高さを横幅の 2 倍にします:
\preverbatim
\begin{verbatim}
     set size ratio 2
\end{verbatim}
\postverbatim
\subsection*{クモの巣グラフ (spiderplot)}
\addcontentsline{toc}{subsection}{クモの巣グラフ (spiderplot)}
\label{set spiderplot}%
コマンド {\bf set spiderplot} は、座標の解釈を極座標に切り替え、各データ点
は、動径軸に沿った位置に割り当てられます。paxis 1 は通常鉛直向きで、2
から N までの軸は、時計回りに等間隔に配置されます。このコマンドは、描
画の前に発行しなければなりません。これは、グラフに以下と同様の効果も追
加します。
\preverbatim
\begin{verbatim}
    set style data spiderplot
    unset border
    unset tics
    set key noautotitle
    set size ratio 1.0
\end{verbatim}
\postverbatim
描画語にこれらを元の状態に復帰するには、{\bf reset} を使用してください。

\subsection*{描画スタイル設定 (style)}
\addcontentsline{toc}{subsection}{描画スタイル設定 (style)}
\label{set style}%
\label{show style}%
\label{unset style}%
デフォルトの描画スタイルは、{\bf set style data} と {\bf set style function}
で設定できます。関数やデータのデフォルトの描画スタイルを個々に変更す
る方法については、以下参照: {\bf plot with (p.~\pageref{plot with})\index{with}}。スタイルの一覧全体は、以下
参照: {\bf plotting styles (p.~\pageref{plotting styles})\index{styles}}, {\bf plot with (p.~\pageref{plot with})\index{with}}。

書式:
\preverbatim
\begin{verbatim}
     set style function <style>
     set style data <style>
     show style function
     show style data
\end{verbatim}
\postverbatim

指定できる描画要素のデフォルトスタイルも設定できます。

書式:
\preverbatim
\begin{verbatim}
     set style arrow <n> <arrowstyle>
     set style boxplot <boxplot style options>
     set style circle radius <size> {clip|noclip}
     set style ellipse size <size> units {xy|xx|yy} {clip|noclip}
     set style fill <fillstyle>
     set style histogram <histogram style options>
     set style line <n> <linestyle>
     set style rectangle <object options> <linestyle> <fillstyle>
     set style textbox {<n>} {opaque|transparent} {{no}border} {fillcolor}
     set style watchpoint labels <label options>
\end{verbatim}
\postverbatim

\subsubsection*{矢印スタイル設定 (set style arrow)}
\addcontentsline{toc}{subsubsection}{矢印スタイル設定 (set style arrow)}
\label{commands set style arrow}%
\label{commands unset style arrow}%
\label{commands show style arrow}%
\label{set style arrow}%
\label{unset style arrow}%
\label{show style arrow}%
\label{arrowstyle}%
\index{arrowstyle}%
矢印 (arrow) のスタイルの集合は {\bf set style arrow} を使って定義すること
ができます。各スタイルは、それ自身の幅、点種、色などを持ち、そのためそ
れらを後で使うときにいちいち同じ情報を繰り返して指定しなくても、それを
番号 $<$index$>$ で参照できます。

書式:
\preverbatim
\begin{verbatim}
     set style arrow <index> default
     set style arrow <index> {nohead | head | backhead | heads}
                             {size <length>,<angle>{,<backangle>} {fixed}}
                             {filled | empty | nofilled | noborder}
                             {front | back}
                             { {linestyle | ls <line_style>}
                               | {linetype | lt <line_type>}
                                 {linewidth | lw <line_width}
                                 {linecolor | lc <colorspec>}
                                 {dashtype | dt <dashtype>} }
     unset style arrow
     show style arrow
\end{verbatim}
\postverbatim

$<$index$>$ は整数で、それで矢のスタイル (arrowstyle) を特定します。

{\bf default} を指定すると、全ての arrow スタイルパラメータはそのデフォル
トの値になります。

$<$index$>$ の arrowstyle が既に存在する場合、他の全ては保存されたまま、与
えられたパラメータのみが変更されます。$<$index$>$ が存在しなければ、指定さ
れなかった値はデフォルトの値になります。

コマンド {\bf plot} または {\bf splot} から呼び出した arrow スタイルには、デー
タ毎可変な線色 ({\bf lc variable} や {\bf lc rgb variable}) を入れることもでき、
それはそれに対応する {\bf using} 指定によるデータの追加列が必要となります。
この場合、{\bf set arrow} で作成する個別の arrow に対しては、そのスタイル
は多分有益なものではありません。

{\bf nohead} を指定することで、矢先のない矢、すなわち線分を書くこともでき
ます。これは描画の上に線分を描く別な方法を与えます。デフォルトでは 1
つの矢先がついています。{\bf heads} の指定で線分の両端に矢先が描かれます。

矢先の大きさは {\bf size $<$length$>$,$<$angle$>$} または
{\bf size $<$length$>$,$<$angle$>$,$<$backangle$>$} で変更できます。{\bf $<$length$>$} は矢先
の各枝の長さで、{\bf $<$angle$>$} は矢先の枝と矢軸がなす角度 (単位は度) です。
{\bf $<$length$>$} の単位は x 軸と同じですが、それは {\bf $<$length$>$} の前に {\bf first},
{\bf second}, {\bf graph}, {\bf screen}, {\bf character} をつけることで変更できます。
詳細は、以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。

デフォルトでは、とても短い矢の矢先は小さくしますが、これは、{\bf size} コ
マンドの後ろに {\bf fixed} を使うことで無効にできます。

{\bf $<$backangle$>$} は、矢先の後ろの部分の矢軸との切り角 ({\bf $<$angle$>$} と同じ方
向、単位は度) になりますが、スタイルが {\bf nofilled} の場合はこれを無視し
ます。

{\bf filled} を指定すると、矢先の回りの線 (境界線) を描き、矢先を塗りつぶ
します。{\bf noborder} を指定すると、矢先は塗りつぶしますが、境界線は描き
ません。この場合、矢先の先端がベクトルの終点ピッタリの場所に置かれ、そ
の矢先は全体として少し小さくなります。点線で矢を描く場合は、点線の境界
線は汚いので、常に {\bf noborder} を使うべきです。矢先の塗りつぶしは、すべ
ての出力形式がサポートしているとは限りません。

線種はユーザの定義したラインスタイルのリストから選ぶこともできますし
(以下参照: {\bf set style line (p.~\pageref{set style line})\index{line}})、用意されている {\bf $<$line\_type$>$} の値 (デフ
ォルトのラインスタイルのリストの番号) そして {\bf $<$linewidth$>$} (デフォルト
の幅の倍数) を使ってここで定義することもできます。

しかし、ユーザー定義済のラインスタイルが選択された場合、その属性 (線種、
幅) は、単に他の {\bf set style arrow} コマンドで適当な番号や {\bf lt}, {\bf lw}
などを指定しても、変更はできないことに注意して下さい。

{\bf front} を指定すると、矢はグラフのデータの上に描かれます。{\bf back} が指
定された場合 (デフォルト) は矢はグラフのデータの下に描かれます。{\bf front}
を使えば、密集したデータで矢が見えなくなることを防ぐことができます。

例:

矢先がなく、倍の幅が矢を描くには:
\preverbatim
\begin{verbatim}
     set style arrow 1 nohead lw 2
     set arrow arrowstyle 1
\end{verbatim}
\postverbatim

その他の例については、以下参照: {\bf set arrow (p.~\pageref{set arrow})\index{arrow}}。

\subsubsection*{Boxplot スタイル指定 (boxplot)}
\addcontentsline{toc}{subsubsection}{Boxplot スタイル指定 (boxplot)}
\label{commands set style boxplot}%
\label{commands unset style boxplot}%
\label{commands show style boxplot}%
\label{set style boxplot}%
\label{unset style boxplot}%
\label{show style boxplot}%
コマンド {\bf set style boxplot} により、描画スタイル {\bf boxplot} で生成する
描画のレイアウトを変更できます。

書式:
\preverbatim
\begin{verbatim}
     set style boxplot {range <r> | fraction <f>}
                       {{no}outliers} {pointtype <p>}
                       {candlesticks | financebars}
                       {medianlinewidth <width>}
                       {separation <x>}
                       {labels off | auto | x | x2}
                       {sorted | unsorted}
\end{verbatim}
\postverbatim

boxplot の箱は、常にデータ点の第一四分位から第三四分位の値の範囲にかか
っています。箱から延長される箱ひげの限界は、2 つの異なる方法で制御でき
ます。デフォルトでは、箱ひげは、その箱のそれぞれの端から、四分位範囲の
1.5 倍 (すなわち、その箱の厳密な垂直方向の高さ) に等しい範囲にまで延長
されます。箱ひげそれぞれは、データ集合のある点に属する y の値で終了す
るように、メジアンに向かって切り捨てられます。四分位範囲の丁度 1.5 倍
の値の点がない場合もありますから、箱ひげはその名目上の範囲よりも短くな
る場合もあります。このデフォルトは以下に対応します。
\preverbatim
\begin{verbatim}
     set style boxplot range 1.5
\end{verbatim}
\postverbatim

もう一つの方法として、箱ひげがかかる点の総数の割合 (fraction) を指定す
ることができます。この場合、その範囲はメジアン値から、データ集合の指定
した分を囲い込むまで、対称に延長されます。このときも、個々の箱ひげはデ
ータ集合内の点の端までに制限されます。データ集合の 95\% の点をはるには
以下のようにします。
\preverbatim
\begin{verbatim}
     set style boxplot fraction 0.95
\end{verbatim}
\postverbatim

箱ひげの範囲の外にある任意の点は、外れ値 (outliers) と見なされます。デ
フォルトではそれらをひとつひとつ円 (pointtype 7) で描きますが、オプシ
ョン {\bf nooutliers} はこれを無効にします。
描かれない外れ値は、自動縮尺機能には影響を与えません。

デフォルトでは boxplot は candlesticks と似たスタイルで描画しますが、
financebars と似たスタイルで描画するためのオプションもあります。

箱の境界と同じ線種を使って、メジアンを示す横断線を描きますが、そのメジ
アン線をより太くしたければ、以下のようにできます。
\preverbatim
\begin{verbatim}
     set style boxplot medianlinewidth 2.0
\end{verbatim}
\postverbatim
メジアン線が必要なければ、それを 0 にセットしてください。

boxplot の using 指定が 4 列目を持つ場合、その列の値は、このデータ点が
所属する個々のカテゴリであると見なします。この場合、入力に存在するカテ
ゴリそれぞれに対して一つずつの boxplot を描きます。これらの boxplot は
x 軸方向に (x 軸の単位で) 1 の距離だけ間隔を空けて描画しますが、その間
隔は、オプション {\bf set style boxplot separation} で変更できます。

オプション {\bf labels} は、これらの boxplot (それぞれデータ集合のある部分
に対応する) のどこに、どのようにラベルをつけるかを決定します。デフォル
トではカテゴリ識別子を水平軸 (x か x2 のいずれか plot で使われている方)
の目盛ラベルとして使います。これはオプションの {\bf labels auto} に対応し
ます。オプション {\bf labels x}, {\bf labels x2} によって、強制的に x 軸、x2
軸にそれぞれ出力させることもできますし、{\bf labels off} でオフにすること
もできます。

デフォルトでは、異なるカテゴリに対する boxplot は、データファイルにそ
のカテゴリが現れる順番に描画します。この挙動はオプション {\bf unsorted} に
対応しますが、オプション {\bf sorted} が有効な場合は、まずカテゴリ指定子を
辞書順 (アルファベット順) にソートし、その順に boxplot を描画します。

オプション {\bf separation}, {\bf labels}, {\bf sorted}, {\bf unsorted} は、plot に 4
列目の指定を与えた場合のみ効力を持ちます。

以下参照: {\bf boxplot (p.~\pageref{boxplot})\index{boxplot}}, {\bf candlesticks (p.~\pageref{candlesticks})\index{candlesticks}}, {\bf financebars (p.~\pageref{financebars})\index{financebars}}。

\subsubsection*{データ描画スタイル指定 (set style data)}
\addcontentsline{toc}{subsubsection}{データ描画スタイル指定 (set style data)}
\label{commands set style data}%
\label{commands show style data}%
\label{set style data}%
\label{show style data}%
\label{data style}%
コマンド {\bf set style data} はデータ描画に対するデフォルトの描画スタイル
を変更します。

書式:
\preverbatim
\begin{verbatim}
     set style data <plotting-style>
     show style data
\end{verbatim}
\postverbatim

選択項目については、以下参照: {\bf plotting styles (p.~\pageref{plotting styles})\index{styles}}。{\bf show style data} は
現在のデフォルトのデータ描画スタイルを表示します。
\subsubsection*{塗り潰しスタイル指定 (set style fill)}
\addcontentsline{toc}{subsubsection}{塗り潰しスタイル指定 (set style fill)}
\label{commands set style fill}%
\label{commands show style fill}%
\label{set style fill}%
\label{show style fill}%
\label{fillstyle}%
\index{fillstyle}%
コマンド {\bf set style fill} は、boxes, histograms, candlesticks,
filledcurves での描画における描画要素のデフォルトのスタイルの設定に使
われます。このデフォルトは、個々の描画に塗り潰しスタイル (fillstyle)
を指定することで上書きできます。
{\bf set obj} で生成する長方形 (rectangle) の塗り潰しスタイルには、別のデ
フォルトがあることに注意してください。 以下参照: {\bf set style rectangle (p.~\pageref{set style rectangle})\index{rectangle}}。

書式:
\preverbatim
\begin{verbatim}
     set style fill {empty
                     | {transparent} solid {<density>}
                     | {transparent} pattern {<n>}}
                    {border {lt} {lc <colorspec>} | noborder}
\end{verbatim}
\postverbatim

デフォルトの塗りつぶしスタイル (fillstyle) は {\bf empty} です。

オプション {\bf solid} は、出力形式がサポートしている場合、その色での単色
塗りを行います。パラメータ $<$density$>$ は塗りつぶし色の強さを表していて
$<$density$>$ が 0.0 なら箱は空、$<$density$>$ が 1.0 なら箱はその内部は現在の
線種と完全に同じ色で塗られます。出力形式によっては、この強さを連続的に
変化させられるものもありますが、その他のものは、部分的な塗りつぶしの幾
つかのレベルを実装しているに過ぎません。パラメータ $<$density$>$ が与えら
れなかった場合はデフォルトの 1 になります。

オプション {\bf pattern} は、出力ドライバによって与えられるパターンでの塗
りつぶしを行います。利用できる塗りつぶしパターンの種類と数は出力ドライ
バに依存します。塗りつぶしの boxes スタイルで複数のデータ集合を描画す
る場合そのパターンは、複数の曲線の描画における線種の周期と同様、有効な
パターンを、パターン $<$n$>$ から始めて周期的に利用します。

オプション {\bf empty} は、箱を塗りつぶしませんが、これがデフォルトです。

\label{fillcolor}%
\index{fillcolor}%
\label{fc}%
\index{fc}%
塗り潰し色 ({\bf fillcolor $<$colorspec$>$}) は、塗り潰しスタイル (fill style)
から分離されています。すなわち、fillstyle は描画要素やオブジェクトで別
々の色を持ったまま共有することができます。fillstyle を受けつける大抵の
場所で fillcolor を指定できます。fillcolor は {\bf fc} の省略形も使えます。
指定しない場合は、塗り潰し色は現在の線種 (linetype) から取ります。
例:

\preverbatim
\begin{verbatim}
     plot FOO with boxes fillstyle solid 1.0 fillcolor "cyan"
\end{verbatim}
\postverbatim

\paragraph*{Set style fill border}
\addcontentsline{toc}{paragraph}{Set style fill border}
\label{commands set style fill border}%
\label{set style fill border}%
\label{fillstyle border}%
\index{border}%
キーワード {\bf border} は、塗り潰しオブジェクトを現在の線種と色の実線で囲
むようにします。その線の色は、linetype や linecolor を追加指定すれば変
更できます。{\bf noborder} は、境界の線を描かないようにします。
例:
\preverbatim
\begin{verbatim}
    # 塗り潰しは強度半分、境界は同じ色で全強度
    set style fill solid 0.5 border
    # 塗り潰しは半分透過、境界は実線の黒 (線種 -1)
    set style fill transparent solid 0.5 border -1
    # 現在の色でのパターン塗り潰し、境界は線種 5 の色で
    plot ... with boxes fillstyle pattern 2 border lt 5
    # 水色 (cyan) での領域の塗り潰し、境界は青
    plot ... with boxes fillcolor "cyan" fs solid border linecolor "blue"
\end{verbatim}
\postverbatim

注意: fill スタイルの border (境界) 属性は、デフォルトモードの closed
(閉曲線) の {\bf with filledcurves} のグラフにしか影響を与えません。
\paragraph*{透明化 (set style fill transparent)}
\addcontentsline{toc}{paragraph}{透明化 (set style fill transparent)}
\label{commands set style fill transparent}%
\label{set style fill transparent}%
\label{fillstyle transparent}%
\label{transparent}%
\index{transparent}%
いくつかの出力形式は、単色塗り領域の {\bf transparent} (透明化) 属性をサポ
ートしています。transparent solid の領域塗りつぶしでは、{\bf density}
(密度) パラメータはアルファ値として使用されます。つまり、密度 0 は完全
な透明を、密度 1 は完全な不透明を意味します。transparent pattern の塗
りつぶしでは、パターンの背景が完全な透明か完全な不透明のいずれかです。

透明な塗りつぶし領域を含むグラフを見たり作ったりするのには、別な制限が
ありうることに注意してください。例えば、png 出力形式では、{\tt"}truecolor{\tt"}
オプションが指定されている場合にのみ透明化の塗り潰しが利用できます。
PDF ファイルには透明化領域が正しく記述されていても、PDF の表示ソフトに
よってはそれを正しく表示できないこともありえます。実際に PostScript プ
リンタでは問題はないのに、Ghostscript/gv ではパターン塗りつぶし領域を
正しく表示できません。
\subsubsection*{関数描画スタイル指定 (set style function)}
\addcontentsline{toc}{subsubsection}{関数描画スタイル指定 (set style function)}
\label{commands set style function}%
\label{commands show style function}%
\label{set style function}%
\label{show style function}%
コマンド {\bf set style function} は関数描画に対するデフォルトの描画スタイ
ル (lines, points, filledcurves など) を変更します。以下参照:
{\bf plotting styles (p.~\pageref{plotting styles})\index{styles}}。

書式:
\preverbatim
\begin{verbatim}
     set style function <plotting-style>
     show style function
\end{verbatim}
\postverbatim
\subsubsection*{ヒストグラムスタイル指定 (set style histogram)}
\addcontentsline{toc}{subsubsection}{ヒストグラムスタイル指定 (set style histogram)}
\label{commands set style histogram}%
以下参照: {\bf histograms (p.~\pageref{histograms})\index{histograms}}。
\subsubsection*{線スタイル順指定 (set style increment)}
\addcontentsline{toc}{subsubsection}{線スタイル順指定 (set style increment)}
\label{commands set style increment}%
\label{set style increment}%
デフォルトでは、同じグラフ上の次の描画は、次の線種で行われます。
{\bf set style increment userstyles} はこれを変更し、代わりにユーザ定義ラ
インスタイル番号に沿って行うようにしていました。

非推奨: gnuplot が使用する線種の範囲を有用なものに再定義するには、これ
の代わりに {\bf set linetype} を使用してください。以下参照: {\bf set linetype (p.~\pageref{set linetype})\index{linetype}}。
\subsubsection*{線スタイル指定 (set style line)}
\addcontentsline{toc}{subsubsection}{線スタイル指定 (set style line)}
\label{commands set style line}%
\label{commands unset style line}%
\label{commands show style line}%
\label{set style line}%
\label{unset style line}%
\label{show style line}%
\label{linestyle}%
\index{linestyle}%
\label{linewidth}%
\index{linewidth}%
\index{linewidth}%
\index{interval}%
\index{linespoints}%
\index{pointinterval}%
\index{pointnumber}%
出力装置にはおのおのデフォルトの線種と点種の集合があり、それらはコマン
ド {\bf test} で見ることができます。{\bf set style line} は線種と線幅、点種と
点の大きさを、個々の呼び出しで、それらの情報を全部指定する代わりに、単
なる番号で参照できるようにあらかじめ定義するものです。

書式:
\preverbatim
\begin{verbatim}
     set style line <index> default
     set style line <index> {{linetype  | lt} <line_type> | <colorspec>}
                            {{linecolor | lc} <colorspec>}
                            {{linewidth | lw} <line_width>}
                            {{pointtype | pt} <point_type>}
                            {{pointsize | ps} <point_size>}
                            {{pointinterval | pi} <interval>}
                            {{pointnumber | pn} <max_symbols>}
                            {{dashtype | dt} <dashtype>}
                            {palette}
     unset style line
     show style line
\end{verbatim}
\postverbatim

{\bf default} は、全てのラインスタイルパラメータをそれと同じ index を持つ
線種 (linetype) に設定します。

$<$index$>$ の linestyle が既に存在する場合、他の全ては保存されたまま、与
えられたパラメータのみが変更されます。$<$index$>$ が存在しなければ、指定さ
れなかった値はデフォルトの値になります。

このようにつくられるラインスタイルは、デフォルトの型 (線種, 点種) を
別なものに置き換えることはしないので、ラインスタイル、デフォルトの型、
どちらも使えます。ラインスタイルは一時的なもので、コマンド {\bf reset} を
実行すればいつでもそれらは消え去ります。線種自体を再定義したい場合は、
以下参照: {\bf set linetype (p.~\pageref{set linetype})\index{linetype}}。

線種と点種は、その index 値をデフォルトとします。その index 値に対する
実際の記号の形は、出力形式によって異なり得ます。

線幅と点の大きさは、現在の出力形式のデフォルトの幅、大きさに対する乗数
です (しかし、ここでの $<$point\_size$>$ は、コマンド {\bf set pointsize} で与
えられる乗数には影響を受けないことに注意してください)。

{\bf pointinterval} は、スタイル {\bf linespoints} でグラフ中に描かれる点の間
隔を制御します。デフォルトは 0 です (すべての点が描画される)。例えば、
{\bf set style line N pi 3} は、点種が N、点の大きさと線幅は現在の出力形式
のデフォルトで、{\bf with linespoints} での描画では点は 3 番目毎に描画され
るようなラインスタイルを定義します。その間隔を負の値にすると、それは間
隔は正の値の場合と同じですが、点の記号の下になる線を書かないようにしま
す (出力形式によっては)。

{\bf pointnumber} 属性は、{\bf pointinterval} と似ていますが、N 個おきに描くよ
うにする代わりに、全体の点の個数を N 個に限定するところが違います。

全ての出力装置が {\bf linewidth} や {\bf pointsize} をサポートしているわけでは
ありません。もしサポートされていない場合はそれらのオプションは無視され
ます。

出力形式に依存しない色を {\bf linecolor $<$colorspec$>$} か {\bf linetype $<$colorspec$>$}
(省略形は {\bf lc}, {\bf lt}) のいずれかを使って割り当てることができます。この
場合、色は RGB の 3 つ組で与えるか、gnuplot の持つパレットの色名、現在
のパレットに対する小数指定、または cbrange への現在のパレットの対応に
対する定数値、のいずれかで与えます。以下参照: {\bf colors (p.~\pageref{colors})\index{colors}}, {\bf colorspec (p.~\pageref{colorspec})\index{colorspec}},
{\bf set palette (p.~\pageref{set palette})\index{palette}}, {\bf colornames (p.~\pageref{colornames})\index{colornames}}, {\bf cbrange (p.~\pageref{cbrange})\index{cbrange}}。

{\bf set style line $<$n$>$ linetype $<$lt$>$} は、出力形式に依存した点線/破線のパ
ターンと色の両方をセットします。{\bf set style line $<$n$>$ linecolor $<$colorspec$>$}
や {\bf set style line $<$n$>$ linetype $<$colorspec$>$} は、現在の点線/破線のパタ
ーンを変更せずに新しい線色を設定します。

3 次元モード({\bf splot} コマンド) では、{\tt"}linetype palette z{\tt"} の省略形とし
て特別にキーワード {\bf palette} を使うことも許されています。その色の値は、
splot の z 座標 (高さ) に対応し、曲線、あるいは曲面に沿って滑らかに変
化します。

例:
以下では、番号 1, 2, 3 に対するデフォルトの線種をそれぞれ赤、緑、青とし、
デフォルトの点の形をそれぞれ正方形、十字、三角形であるとします。このとき
以下のコマンド

\preverbatim
\begin{verbatim}
     set style line 1 lt 2 lw 2 pt 3 ps 0.5
\end{verbatim}
\postverbatim

は、新しいラインスタイルとして、緑でデフォルトの 2 倍の幅の線、および
三角形で半分の幅の点を定義します。また、以下のコマンド

\preverbatim
\begin{verbatim}
     set style function lines
     plot f(x) lt 3, g(x) ls 1
\end{verbatim}
\postverbatim

は、f(x) はデフォルトの青線で、g(x) はユーザの定義した緑の線で描画しま
す。同様に、コマンド

\preverbatim
\begin{verbatim}
     set style function linespoints
     plot p(x) lt 1 pt 3, q(x) ls 1
\end{verbatim}
\postverbatim

は、p(x) を赤い線で結ばれたデフォルトの三角形で、q(x) は緑の線で結ばれ
た小さい三角形で描画します。

\preverbatim
\begin{verbatim}
     splot sin(sqrt(x*x+y*y))/sqrt(x*x+y*y) w l pal
\end{verbatim}
\postverbatim

は、{\bf palette} に従って滑らかな色を使って曲面を描画します。これはそれを
サポートした出力形式でしかちゃんとは動作しないことに注意してください。
以下も参照: {\bf set palette (p.~\pageref{set palette})\index{palette}}, {\bf set pm3d (p.~\pageref{set pm3d})\index{pm3d}}。

\preverbatim
\begin{verbatim}
     set style line 10 linetype 1 linecolor rgb "cyan"
\end{verbatim}
\postverbatim

は、RGB カラーをサポートするすべての出力形式で、ラインスタイル 10 に実
線の水色を割り当てます。

\subsubsection*{円スタイル指定 (set style circle)}
\addcontentsline{toc}{subsubsection}{円スタイル指定 (set style circle)}
\label{commands set style circle}%
\label{commands unset style circle}%
\label{commands show style circle}%
\label{set style circle}%
\label{unset style circle}%
\label{show style circle}%

書式:
\preverbatim
\begin{verbatim}
     set style circle {radius {graph|screen} <R>}
                      {{no}wedge}
                      {clip|noclip}
\end{verbatim}
\postverbatim

このコマンドは、描画スタイル {\tt"}with circles{\tt"} で使われるデフォルトの半径
を設定します。これは、データ描画で 2 列のデータ (x,y) しか与えなかった
場合、あるいは関数描画のときに適用されます。デフォルトは、以下のように
なっています: {\tt"}set style circle radius graph 0.02{\tt"}。{\bf nowedge} は、扇形
の円弧部分から中心に向かう 2 本の半径を描かないようにしますが、デフォ
ルトは {\bf wedge} です。このパラメータは完全な円に対しては何もしません。
{\bf clip} は円を描画境界でクリッピングしますが、{\bf noclip} はこれを無効にし
ます。デフォルトは {\bf clip} です。

\subsubsection*{長方形スタイル指定 (set style rectangle)}
\addcontentsline{toc}{subsubsection}{長方形スタイル指定 (set style rectangle)}
\label{commands set style rectangle}%
\label{commands unset style rectangle}%
\label{commands show style rectangle}%
\label{set style rectangle}%
\label{unset style rectangle}%
\label{show style rectangle}%

コマンド {\bf set object} で定義された長方形には別々のスタイルを設定できま
す。しかし、個別のスタイル指定をしなければ、そのオブジェクトはコマンド
{\bf set style rectangle} によるデフォルトを受け継ぎます。

書式:
\preverbatim
\begin{verbatim}
   set style rectangle {front|back} {lw|linewidth <lw>}
                       {fillcolor <colorspec>} {fs <fillstyle>}
\end{verbatim}
\postverbatim

以下参照: {\bf colorspec (p.~\pageref{colorspec})\index{colorspec}}, {\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}}。{\bf fillcolor} は {\bf fc} と省略できます。

例:
\preverbatim
\begin{verbatim}
   set style rectangle back fc rgb "white" fs solid 1.0 border lt -1
   set style rectangle fc linestyle 3 fs pattern 2 noborder
\end{verbatim}
\postverbatim

デフォルトの設定は、背景色での単色塗り (solid fill) で、境界は黒になっ
ています。

\subsubsection*{楕円スタイル指定 (set style ellipse)}
\addcontentsline{toc}{subsubsection}{楕円スタイル指定 (set style ellipse)}
\label{commands set style ellipse}%
\label{commands show style ellipse}%
\label{set style ellipse}%
\label{unset style ellipse}%
\label{show style ellipse}%

書式:
\preverbatim
\begin{verbatim}
     set style ellipse {units xx|xy|yy}
                       {size {graph|screen} <a>, {{graph|screen} <b>}}
                       {angle <angle>}
                       {clip|noclip}
\end{verbatim}
\postverbatim

このコマンドは、楕円の直径を同じ単位で計算するかどうかを制御します。
デフォルトは {\bf xy} で、これは楕円の主軸 (第 1 軸) の直径は x (または x2)
軸と同じ単位で計算し、副軸 (第 2 軸) の直径は y (または y2) 軸の単位で
計算します。このモードでは、楕円の両軸の比は、描画軸のアスペクト比に依
存します。{\bf xx} か {\bf yy} に設定すれば、すべての楕円の両軸は同じ単位で計
算されます。これは、描画される楕円の両軸の比は、回転しても正しいままで
すが、水平方向か垂直方向の一方の縮尺の変更により正しくなくなることを意
味します。

これは、object として定義された楕円、コマンド {\bf plot} によって描画され
る楕円の両方に影響を与える全体的な設定ですが、{\bf units} の値は、描画毎、
オブジェクト毎に設定を再定義できます。

楕円のデフォルトのサイズも、キーワード {\bf size} で設定できます。デフォル
トのサイズは、2 列のみのデータ、または関数の plot 命令で適用されます。
2 つの値は、楕円の (2 つの主軸、2 つの副軸に向かい合う) 主軸直径と副軸
直径として使用されます。

デフォルトは、{\tt"}set style ellipse size graph 0.05,0.03{\tt"} です。

最後になりますが、デフォルトの向きをキーワード {\bf angle} で設定もできま
す。向きは、楕円の主軸とグラフの x 軸の方向となす角で、単位は度で与え
る必要があります。

{\bf clip} は楕円を描画境界でクリッピングしますが、{\bf noclip} はこれを無効に
します。デフォルトは {\bf clip} です。

楕円の object の定義に関しては以下も参照: {\bf set object ellipse (p.~\pageref{set object ellipse})\index{ellipse}}。2 次元
の描画スタイルに関しては以下参照: {\bf ellipses (p.~\pageref{ellipses})\index{ellipses}}。
\subsubsection*{平行座標スタイル指定 (set style parallelaxis)}
\addcontentsline{toc}{subsubsection}{平行座標スタイル指定 (set style parallelaxis)}
\label{commands set style parallelaxis}%
\label{set style parallelaxis}%
\label{show style parallelaxis}%

書式:
\preverbatim
\begin{verbatim}
     set style parallelaxis {front|back} {line-properties}
\end{verbatim}
\postverbatim

これは、{\bf with parallelaxes} グラフの垂直軸を書く際の線種とレイヤーを指
定します。以下参照: {\bf with parallelaxes (p.~\pageref{with parallelaxes})\index{parallelaxes}}, {\bf set paxis (p.~\pageref{set paxis})\index{paxis}}。
\subsubsection*{クモの巣グラフスタイル指定 (set style spiderplot)}
\addcontentsline{toc}{subsubsection}{クモの巣グラフスタイル指定 (set style spiderplot)}
\label{commands set style spiderplot}%
\label{set style spiderplot}%

書式:
\preverbatim
\begin{verbatim}
       set style spiderplot
                 {fillstyle <fillstyle-properties>}
                 {<line-properties> | <point-properties>}
\end{verbatim}
\postverbatim
このコマンドは、クモの巣グラフ (spider plot) のデフォルトの見た目を制
御します。塗り潰し、線分、点の属性は、plot コマンドの最初の要素で変更
できます。全体的なグラフの見た目は、{\bf set grid spiderplot} などの他の設
定の影響も受けます。以下も参照: {\bf set paxis (p.~\pageref{set paxis})\index{paxis}}、{\bf spiderplot (p.~\pageref{spiderplot})\index{spiderplot}}。
例:
\preverbatim
\begin{verbatim}
    # デフォルトのクモの巣グラフを太い境界で塗り潰しなしの多角形に
    set style spiderplot fillstyle empty border lw 3
    # 以下は各軸に円 (pt 6) を追加する
    plot for [i=1:6] DATA pointtype 6 pointsize 3
\end{verbatim}
\postverbatim

\subsubsection*{文字列ボックススタイル指定 (set style textbox)}
\addcontentsline{toc}{subsubsection}{文字列ボックススタイル指定 (set style textbox)}
\label{commands set style textbox}%
\label{commands show style textbox}%
\label{set style textbox}%
\label{unset style textbox}%
\label{show style textbox}%
\label{textbox}%
\index{textbox}%
\label{boxed}%
\index{boxed}%

書式:
\preverbatim
\begin{verbatim}
       set style textbox {<boxstyle-index>}
                 {opaque|transparent} {fillcolor <color>}
                 {{no}border {linecolor <colorspec>}}{linewidth <lw>}
                 {margins <xmargin>,<ymargin>}
\end{verbatim}
\postverbatim

このコマンドは、属性 {\bf boxed} による label の表示を制御します。箱付き文
字列をサポートしない出力形式はこのスタイルを無視します。
注意: いくつかの出力形式 (svg, latex) での実装は不完全です。
また、ほとんどの出力形式は、回転した文字列の箱付けが正しくできません。

番号付きの textbox スタイルを 3 種類定義できます。boxstyle 番号 $<$bs$>$
を指定しないと、デフォルトスタイル (番号なし) を変更します。
例:

\preverbatim
\begin{verbatim}
    # デフォルトのスタイルは、黒の境界線のみ
    set style textbox transparent border lc "black"
    # スタイル 2 (bs 2) を明るい青背景で境界なしに
    set style textbox 2 opaque fc "light-cyan" noborder
    set label 1 "I'm in a box" boxed
    set label 2 "I'm blue" boxed bs 2
\end{verbatim}
\postverbatim

\subsubsection*{ウォッチポイントスタイル指定 (set style watchpoint)}
\addcontentsline{toc}{subsubsection}{ウォッチポイントスタイル指定 (set style watchpoint)}
\label{commands set style watchpoint}%
\label{commands show style watchpoint}%
\label{set style watchpoint}%

書式:
\preverbatim
\begin{verbatim}
    set style watchpoint nolabels
    set style watchpoint labels {label-options}
\end{verbatim}
\postverbatim

ウォッチポイントの対象 {\tt"}mouse{\tt"} については常にグラフ上にラベルを出力し
ます。他のウォッチポイント対象には、スタイルが {\bf label} か {\bf nolabel} の
どちらに設定されているかによってラベルを表示、または非表示とします。

ウォッチポイントラベルの見た目は、他の gnuplot label のラベル属性にあ
るような全機能を使ってカスタマイズできます。例えばフォント、文字色や、
実際の x,y 座標をマークする点の点種、点サイズを設定できます。以下参照:
{\bf set label (p.~\pageref{set label})\index{label}}。

現在は、ラベルの文字列は、現在のグラフに対する軸の見出しに使用する書式
を使用して、常に文字列 {\tt"} x-座標 : y-座標{\tt"} を自動生成します。

例:
\preverbatim
\begin{verbatim}
    set style watchpoint labels point pt 4 ps 2
    set style watchpoint labels font ":Italic,6" textcolor "blue"
    set style watchpoint labels boxed offset 1, 0.5
\end{verbatim}
\postverbatim

\subsection*{曲面描画 (surface)}
\addcontentsline{toc}{subsection}{曲面描画 (surface)}
\label{commands set surface}%
\label{commands unset surface}%
\label{commands show surface}%
\label{set surface}%
\label{unset surface}%
\label{show surface}%
\label{surface}%
\index{surface}%
\label{nosurface}%
\index{nosurface}%
コマンド {\bf set surface} は 3 次元描画 ({\bf splot}) にのみ関係します。

書式:
\preverbatim
\begin{verbatim}
     set surface {implicit|explicit}
     unset surface
     show surface
\end{verbatim}
\postverbatim

{\bf unset surface} により {\bf splot} は、関数やデータファイルの点に対するど
んな点や線も描かなくなります。これは主に、等高線を作る曲面を描く代わり
に等高線のみを描く場合に有用です。その場合でも {\bf set contour} の設定に
よりますが、曲面上に等高線が描かれます。他のものは通常のままで、ある一
つの関数やデータファイルの曲面のみをオフにするには、{\bf splot} コマンド上
でキーワード {\bf nosurface} を指定してください。等高線を格子の土台に表示
したい場合は {\bf unset surface; set contour base} という組が便利でしょう。
以下も参照: {\bf set contour (p.~\pageref{set contour})\index{contour}}。

3 次元データの組が網目 (格子線) と認識されると、gnuplot はデフォルトで
は格子曲面を要求しているものとして、暗黙に {\bf with lines} の描画スタイル
を用います。以下参照: {\bf grid\_data (p.~\pageref{grid_data})\index{grid data}}。コマンド {\bf set surface explicit} は
この機能を抑制し、入力ファイルのデータの分離されたブロックで記述される
孤立線のみを描画します。この場合でも、splot で明示的に {\bf with surface}
とすれば格子曲面が描画されます。
\subsection*{テーブルデータ出力 (table)}
\addcontentsline{toc}{subsection}{テーブルデータ出力 (table)}
\label{commands set table}%
\label{set table}%
\label{table}%
\index{table}%
{\bf table} モードが有効な場合、{\bf plot} と {\bf splot} コマンドは、現在の出力形
式に対する実際の描画を生成する代わりに
\preverbatim
\begin{verbatim}
    X Y {Z} <flag>
\end{verbatim}
\postverbatim
の値の複数列からなる表形式のテキスト出力を行ないます。フラグ文字 $<$frag$>$
は、その点が有効な範囲内にある場合は {\tt"}i{\tt"}、範囲外の場合は {\tt"}o{\tt"}、未定義値
(undefined) の場合は {\tt"}u{\tt"} です。データの書式は、軸の刻みの書式 (以下
参照: {\bf set format (p.~\pageref{set format})\index{format}}) によって決まり、列は一つの空白で区切られます。これ
は、等高線を生成し、それを再利用のために保存したいときに便利です。この
方法は、補間されたデータを保存するのにも使うことができます (以下参照:
{\bf set samples (p.~\pageref{set samples})\index{samples}}, {\bf set dgrid3d (p.~\pageref{set dgrid3d})\index{dgrid3d}})。

書式:
\preverbatim
\begin{verbatim}
     set table {"outfile" | $datablock} {append}
               {separator {whitespace|tab|comma|"<char>"}}
     plot <whatever>
     unset table
\end{verbatim}
\postverbatim

この後の表形式の出力は、ファイル {\tt"}outfile{\tt"} を指定していればそれに書き
出しますが、そうでなければ標準出力か、現在の {\bf set output} が指定するも
のに出力します。{\bf outfile} が既に存在する場合は、{\bf append} キーワードを
指定すれば追加出力、指定しなければこの出力が上書きします。他に、表形式
出力を名前付きデータブロックにリダイレクトすることもできます。データブ
ロック名は '\$' で始まります。以下も参照: {\bf inline data (p.~\pageref{inline data})\index{data}}。現在の出力形式
の標準的な描画に戻すには、{\bf unset table} を明示的に行なう必要があります。

{\bf separator} 文字は、CSV ファイル (コンマ区切り) の出力に使えます。その
モードは、描画スタイル {\bf with table} にのみ影響を与えます。以下参照:
{\bf plot with table (p.~\pageref{plot with table})\index{table}}。

\subsubsection*{Plot with table}
\addcontentsline{toc}{subsubsection}{Plot with table}
\label{plot with table}%
\label{with table}%
以下の説明は、特別な描画スタイル {\bf with table} にのみ適用されます。

表データに変換される入力データに対する描画スタイルに依存する処理 (平滑
化、誤差線の延長、2 軸範囲のチェック等) を避けるため、あるいは表データ
に変換できる列の数を増やすには、通常の描画スタイルの代わりに {\tt"}table{\tt"}
キーワードを使ってください。この場合、範囲内/範囲外/未定義を意味するフ
ラグ {\bf i}, {\bf o}, {\bf u} を含む追加列は、出力にはつきません。その出力先は、
最初に {\bf set table $<$where$>$} で指定する必要があります。例:

\preverbatim
\begin{verbatim}
    set table $DATABLOCK1
    plot <file> using 1:2:3:4:($5+$6):(func($7)):8:9:10 with table
\end{verbatim}
\postverbatim

この場合、実際の描画スタイルがない状態なので、各列には特定の軸は対応し
ないことになり、よって xrange, yrange 等の設定は無視されます。

文字列に対して {\bf using} で評価した場合は、文字列も表データ化されます。
数値データは常に \%g の書式で書き出されますが、他の書式を使いたい場合は、
そのように書式化された文字列を生成するように sprintf か gprintf を使用
してください。

\preverbatim
\begin{verbatim}
    plot <file> using ("File 1"):1:2:3 with table
    plot <file> using (sprintf("%4.2f",$1)) : (sprintf("%4.2f",$3)) with table
\end{verbatim}
\postverbatim

\index{csv}%
CSV ファイルを生成するには、以下のようにします。
\preverbatim
\begin{verbatim}
    set table "tab.csv" separator comma
    plot <foo> using 1:2:3:4 with table
\end{verbatim}
\postverbatim

表データ化用にデータ点の一部分のみを選択するには、入力フィルタ条件
({\bf if $<$expression$>$}) を plot コマンドの一部として指定できます。

\preverbatim
\begin{verbatim}
    plot <file> using 1:2:($4+$5) with table if (strcol(3) eq "Red")
    plot <file> using 1:2:($4+$5) with table if (10. < $1 && $1 < 100.)
    plot <file> using 1:2:($4+$5) with table if (filter($6,$7) != 0)
\end{verbatim}
\postverbatim
\subsection*{出力形式 (terminal)}
\addcontentsline{toc}{subsection}{出力形式 (terminal)}
\label{commands set terminal}%
\label{commands show terminal}%
\label{set terminal}%
\label{set term}%
\label{show terminal}%
\label{show term}%
\label{set terminal push}%
\label{set term push}%
\label{terminal push}%
\label{term push}%
\label{push}%
\index{push}%
\label{set terminal pop}%
\label{set term pop}%
\label{terminal pop}%
\label{term pop}%
\label{pop}%
\index{pop}%
{\bf gnuplot} は数多くのグラフィック形式をサポートしています。コマンド
{\bf set terminal} を使って {\bf gnuplot} の出力の対象となる形式の種類を選んで
ください。出力先をファイル、または出力装置にリダイレクトするには
{\bf set output} を使ってください。

書式:
\preverbatim
\begin{verbatim}
     set terminal {<terminal-type> | push | pop}
     show terminal
\end{verbatim}
\postverbatim

$<$terminal-type$>$ が省略されると {\bf gnuplot} は利用可能な出力形式の一覧を
表示します。$<$terminal-type$>$ の指定には短縮形が使えます。

{\bf set terminal} と {\bf set output} の両方を使う場合、{\bf set terminal} を最初
にする方が安全です。それは、OS によっては、それが必要とするフラグをセ
ットする出力形式があるからです。

いくつかの出力形式はたくさんの追加オプションを持ちます。
各 {\bf $<$term$>$} に対し、直前の {\bf set term $<$term$>$ $<$options$>$} で使用されたオ
プションは記憶され、その後の {\bf set term $<$term$>$} がそれをリセットするこ
とはありません。これは例えば印刷時に有用です。幾つかの異なる出力形式を
切替える場合、前のオプションを繰り返し唱える必要はありません。

コマンド {\bf set term push} は、現在の出力形式とその設定を {\bf set term pop}
によって復帰するまで記憶しています。これは {\bf save term}, {\bf load term} と
ほぼ同等ですが、ファイルシステムへのアクセスは行わず、よって例えばこれ
は、印刷後にプラットホームに依存しない形で出力形式を復帰する目的に使え
ます。gnuplot の起動後、デフォルト、または {\bf startup} ファイルに書かれ
た出力形式が自動的に記憶 (push) されます。よって、明示的に出力形式を記
憶させることなく、任意のプラットホーム上でデフォルトの出力形式を
{\bf set term pop} によって復帰させる、という動作を期待したスクリプトを可
搬性を失わずに書くことが出来ます。

詳細は、以下参照: {\bf complete list of terminals (p.~\pageref{complete list of terminals})\index{terminals}}。

\subsection*{出力形式へのオプション (termoption)}
\addcontentsline{toc}{subsection}{出力形式へのオプション (termoption)}
\label{commands set termoption}%
\label{set termoption}%
\label{termoption}%
\index{termoption}%
コマンド {\bf set termoption} は、現在使用している出力形式の振舞いを、新た
な {\bf set terminal} コマンドの発行なしに変更することを可能にします。この
コマンド一つに対して一つのオプションのみが変更できます。そしてこの方法
で変更できるオプションはそう多くはありません。現在使用可能なオプション
は以下のもののみです。

\preverbatim
\begin{verbatim}
    set termoption {no}enhanced
    set termoption font "<fontname>{,<fontsize>}"
    set termoption fontscale <scale>
    set termoption {linewidth <lw>}{lw <lw>} {dashlength <dl>}{dl <dl>}
    set termoption {pointscale <scale>} {ps <scale>}
\end{verbatim}
\postverbatim

\subsection*{極座標方位制御 (theta)}
\addcontentsline{toc}{subsection}{極座標方位制御 (theta)}
\label{commands set theta}%
\label{set theta}%
\label{unset theta}%
\label{theta}%
\index{theta}%
極座標グラフは、デフォルトでは角の 0 の方向 (θ = 0) がグラフの右側を
指すよう向きづけられ、角の増加は反時計回りに行われ、θ = 90 が真上を向
くようになっています。{\bf set theta} により、極座標の角の座標に関する 0
の向きと増加方向を変更できます。
\preverbatim
\begin{verbatim}
    set theta {right|top|left|bottom}
    set theta {clockwise|cw|counterclockwise|ccw}
\end{verbatim}
\postverbatim
{\bf unset theta} は、デフォルトの状態 {\tt"}set theta right ccw{\tt"} に復帰します。
\subsection*{全軸目盛り制御 (tics)}
\addcontentsline{toc}{subsection}{全軸目盛り制御 (tics)}
\label{commands set tics}%
\label{commands unset tics}%
\label{commands show tics}%
\label{set tics scale}%
\label{set tics}%
\label{unset tics}%
\label{show tics}%
\label{tics}%
\index{tics}%
コマンド {\bf set tics} は、全ての軸の目盛りの刻みとラベルを一度に制御しま
す。

目盛りは {\bf unset tics} で消え、{\bf set tics} で目盛りがつきます (デフォル
ト)。個々の軸の目盛りは、これとは別のコマンド {\bf set xtics}, {\bf set ztics}
などを使って制御できます。

書式:
\preverbatim
\begin{verbatim}
     set tics {axis | border} {{no}mirror}
              {in | out} {front | back}
              {{no}rotate {by <ang>}} {offset <offset> | nooffset}
              {left | right | center | autojustify}
              {format "formatstring"} {font "name{,<size>}"} {{no}enhanced}
              { textcolor <colorspec> }
     set tics scale {default | <major> {,<minor>}}
     unset tics
     show tics
\end{verbatim}
\postverbatim

オプションは、個々の軸 (x, y, z, x2, y2, cb) にも適用できます。例:
\preverbatim
\begin{verbatim}
     set xtics rotate by -90
     unset cbtics
\end{verbatim}
\postverbatim

軸の刻みの線属性は、すべてグラフの境界 (以下参照: {\bf set border (p.~\pageref{set border})\index{border}}) と同じ
ものを使って描かれます。

tics の {\bf back} または {\bf front} の設定は、2D 描画 (splot は不可) にのみ
すべての軸に 1 度適用されます。これは、目盛りと描画要素が重なった場合
に目盛りを描画要素の前面に出すか、奥に置くかを制御します。

{\bf axis} と {\bf border} は {\bf gnuplot} に目盛り (目盛りの刻み自身とその見出し)
を、それぞれ軸につけるのか、境界につけるのかを指示します。軸が境界にと
ても近い場合、{\bf axis} を使用すると境界が表示されていれば (以下参照:
{\bf set border (p.~\pageref{set border})\index{border}}) 目盛りの見出し文字を境界の外に出してしまうでしょう。この
場合自動的なレイアウトアルゴリズムによる余白設定は大抵よくないものとな
ってしまいます。

{\bf mirror} は {\bf gnuplot} に反対側の境界の同じ位置に、見出しのない目盛りを
出力するよう指示します。{\bf nomirror} は、あなたが想像している通りのこと
を行ないます。

{\bf in} と {\bf out} は目盛りの刻みを内側に描くか外側に描くかを切り変えます。

{\bf set tics scale} は、目盛りの刻みの大きさを制御します。最初の $<$major$>$
の値には、自動的に生成され、またユーザも指定できる大目盛り (レベル 0)
を指定し、2 つ目の $<$minor$>$ の値には、自動的に生成され、またユーザも指
定できる小目盛り (レベル 1) を指定します。$<$major$>$ のデフォルトは 1.0
で、$<$minor$>$ のデフォルトは $<$major$>$/2 です。さらに値を追加すれば、レベ
ル 2, 3, ... の目盛りの大きさになります。{\bf set tics scale default} でデ
フォルトの目盛りの大きさに復帰します。

{\bf rotate} は、文字列を 90 度回転させて出力させようとします。これは、文
字列の回転をサポートしている出力ドライバ (terminal) では実行されます。
{\bf norotate} はこれをキャンセルします。{\bf rotate by $<$ang$>$} は角度 $<$ang$>$ の
回転を行ないますが、これはいくつかの出力形式 (terminal) でサポートされ
ています。

x と y 軸の大目盛りのデフォルトは {\bf border mirror norotate} で、x2, y2
軸は {\bf border nomirror norotate} がデフォルトです。z 軸のデフォルトは
{\bf nomirror} です。

$<$offset$>$ は x,y かまたは x,y,z の形式ですが、それに座標系を選択して、
その前に {\bf first}, {\bf second}, {\bf graph}, {\bf screen}, {\bf character} のいずれか
をつけることもできます。$<$offset$>$ は、目盛りの見出し文字列のデフォルト
の位置からのずらし位置で、そのデフォルトの単位系は {\bf character} です。
詳細は、以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。{\bf nooffset} は offset を OFF にします。

デフォルトでは見出しラベルは、美しい結果を生むように、軸と回転角に依存
した位置に自動的に揃えられますが、気にいらなければ、明示的に {\bf left},
{\bf right}, {\bf center} のキーワードにより位置揃えを変更できます。
{\bf autojustify} でデフォルトの挙動に復帰します。

オプションなしの {\bf set tics} は、第 1 軸に対する鏡映 (mirror) と内側向
き目盛りの刻みをデフォルトの挙動に復帰しますが、その他の全てのオプショ
ンは、直前の値を保持します。

大目盛り (ラベルのつく) の他の制御に関しては、以下参照: {\bf set xtics (p.~\pageref{set xtics})\index{xtics}}。
小目盛りの制御に関しては、以下参照: {\bf set mxtics (p.~\pageref{set mxtics})\index{mxtics}}。これらのコマンドは、
各軸の独立な制御を提供します。
\subsection*{Ticslevel}
\addcontentsline{toc}{subsection}{Ticslevel}
\label{commands set ticslevel}%
\label{commands show ticslevel}%
\label{set ticslevel}%
\label{show ticslevel}%
\label{ticslevel}%
\index{ticslevel}%
現在は推奨されていません。以下参照: {\bf set xyplane (p.~\pageref{set xyplane})\index{xyplane}}。
\subsection*{Ticscale}
\addcontentsline{toc}{subsection}{Ticscale}
\label{commands set ticscale}%
\label{commands show ticscale}%
\label{set ticscale}%
\label{show ticscale}%
\label{ticscale}%
\index{ticscale}%
コマンド {\bf set ticscale} は現在は推奨されていません。代わりに
{\bf set tics scale} を使ってください。
\subsection*{タイムスタンプ (timestamp)}
\addcontentsline{toc}{subsection}{タイムスタンプ (timestamp)}
\label{commands set timestamp}%
\label{commands unset timestamp}%
\label{commands show timestamp}%
\label{set timestamp}%
\label{unset timestamp}%
\label{show timestamp}%
\label{timestamp}%
\index{timestamp}%
\label{notimestamp}%
\index{notimestamp}%
コマンド {\bf set timestamp} は現在の時刻と日付をグラフの余白に表示します。

書式:
\preverbatim
\begin{verbatim}
     set timestamp {"<format>"} {top|bottom} {{no}rotate}
                   {offset <xoff>{,<yoff>}} {font "<fontspec>"}
                   {textcolor <colorspec>}
     unset timestamp
     show timestamp
\end{verbatim}
\postverbatim

書式文字列 (format) は、書かれる日付と時刻の書式に使用されます。デフォ
ルトは asctime() が使用する {\tt"}\%a \%b \%d \%H:\%M:\%S \%Y{\tt"} です (曜日、月名、
日、時、分、秒、4 桁の西暦)。{\bf top} と {\bf bottom} を使って、日付の配置を
左上、左下のいずれの余白にするかを選択できます (デフォルトは左下)。
{\bf rotate} は、日付を垂直方向に書き出します。定数 $<$xoff$>$、$<$yoff$>$ はずれ
(offset) を意味し、これによってより適切な位置決めが行えます。$<$font$>$ は
日付が書かれるフォントを指定します。

例:
\preverbatim
\begin{verbatim}
     set timestamp "%d/%m/%y %H:%M" offset 80,-2 font "Helvetica"
\end{verbatim}
\postverbatim

日付の書式文字列に関する詳しい情報については、以下参照: {\bf set timefmt (p.~\pageref{set timefmt})\index{timefmt}}。
\subsection*{日時データ入力書式 (timefmt)}
\addcontentsline{toc}{subsection}{日時データ入力書式 (timefmt)}
\label{commands set timefmt}%
\label{commands show timefmt}%
\label{set timefmt}%
\label{show timefmt}%
\label{timefmt}%
\index{timefmt}%
このコマンドは、日時データの入力で使用するデフォルトの書式を設定します。
以下参照: {\bf set xdata time (p.~\pageref{set xdata time})\index{time}}, {\bf timecolumn (p.~\pageref{timecolumn})\index{timecolumn}}。

書式:
\preverbatim
\begin{verbatim}
     set timefmt "<format string>"
     show timefmt
\end{verbatim}
\postverbatim

{\bf timefmt} と {\bf timecolumn} の両方で有効な書式は以下の通りです:


\begin{center}
\begin{tabular}{|cl|} \hline
\multicolumn{2}{|c|}{時系列データ書式指定子}\\
\hline \hline
書式 & 説明 \\ \hline
\verb@%d@ & 何日, 1--31 \\
\verb@%m@ & 何月, 1--12 \\
\verb@%y@ & 何年, 0--99 \\
\verb@%Y@ & 何年, 4 桁 \\
\verb@%j@ & 1 年の何日目, 1--365 \\
\verb@%H@ & 何時, 0--24 \\
\verb@%M@ & 何分, 0--60 \\
\verb@%s@ & Unix epoch (1970-01-01, 00:00 UTC) からの秒数\\
\verb@%S@ & 何秒 (出力では 0--60 の整数、入力では実数)\\
\verb@%b@ & 月名 (英語) の 3 文字省略形 \\
\verb@%B@ & 月名 (英語) \\
\verb@%p@ & 2 文字の am AM pm PM のいずれか \\
\hline
\end{tabular}
\end{center}



任意の文字を文字列中で使用できますが、規則に従っている必要があります。
$\backslash$t (タブ) は認識されます。バックスラッシュ + 8 進数列 ($\backslash$nnn) はそれが
示す文字に変換されます。日時要素の中に分離文字がない場合、\%d, \%m, \%y,
\%H, \%M, \%S はそれぞれ 2 桁の数字を読み込みます。\%S での読み込みで小数
点がそのフィールドについている場合は、その小数点つきの数を小数の秒指定
だと解釈します。\%Y は 4 桁、\%j は 3 桁の数字を読み込みます。\%b は 3 文
字を、\%B は必要な分だけの文字を要求します。

空白 (スペース) の扱いはやや違います。書式文字列中の 1 つの空白は、フ
ァイル中の 0 個、あるいは 1 つ以上の空白文字列を表します。すなわち、
{\tt"}\%H \%M{\tt"} は {\tt"}1220{\tt"} や {\tt"}12     20{\tt"} を {\tt"}12 20{\tt"} と同じように読みます。

データ中の非空白文字の集まりそれぞれは、{\bf using n:n} 指定の一つ一つの列
とカウントされます。よって {\bf 11:11  25/12/76  21.0} は 3 列のデータと認
識されます。混乱を避けるために、日時データが含まれる場合 {\bf gnuplot} は、
あなたの {\bf using} 指定が完璧なものであると仮定します。

日付データが曜日、月の名前を含んでいる場合、書式文字列でそれを排除しな
ければいけませんが、{\tt"}\%a{\tt"}, {\tt"}\%A{\tt"}, {\tt"}\%b{\tt"}, {\tt"}\%B{\tt"} でそれらを表示することはで
きます。{\bf gnuplot} は数値から月や曜日を正しく求めます。これら、及び日時
データの出力の他のオプションの詳細に関しては、以下参照: {\bf set format (p.~\pageref{set format})\index{format}}。

2 桁の西暦を \%y で読む場合、69-99 は 2000 年未満、00-68 は 2000 年以後
と見なします。注意: これは、UNIX98 の仕様に合わせたものですが、この慣
例はあちこちで違いがあるので、2 桁の西暦値は本質的にあいまいです。

書式 \%p が {\tt"}am{\tt"} か {\tt"}AM{\tt"} を返す場合、12 時は 0 時と解釈します。
書式 \%p が {\tt"}pm{\tt"} か {\tt"}PM{\tt"} を返す場合、12 未満の時刻には 12 追加します。

他の情報については、以下も参照: {\bf set xdata (p.~\pageref{set xdata})\index{xdata}}, {\bf time/date (p.~\pageref{time/date})\index{time/date}},
{\bf time\_specifiers (p.~\pageref{time_specifiers})\index{time specifiers}}。

例:
\preverbatim
\begin{verbatim}
     set timefmt "%d/%m/%Y\t%H:%M"
\end{verbatim}
\postverbatim
は、{\bf gnuplot} に日付と時間がタブで分離していることを教えます (ただし、
あなたのデータをよーく見てください。タブだったものがどこかで複数のスペ
ースに変換されていませんか ? 書式文字列はファイル中に実際にある物と一
致していなければなりません)。
以下も参照
\href{http://www.gnuplot.info/demo/timedat.html}{\tt 時系列データ (time data) デモ。
}

\subsection*{グラフタイトル (title)}
\addcontentsline{toc}{subsection}{グラフタイトル (title)}
\label{commands set title}%
\label{commands show title}%
\label{set title}%
\label{show title}%
\label{title}%
\index{title}%
コマンド {\bf set title} は、描画の上の真中に書かれる描画タイトルを生成し
ます。{\bf set title} は {\bf set label} の特殊なもの、とみなせます。

書式:
\preverbatim
\begin{verbatim}
     set title {"<title-text>"} {offset <offset>} {font "<font>{,<size>}"}
               {{textcolor | tc} {<colorspec> | default}} {{no}enhanced}
     show title
\end{verbatim}
\postverbatim

$<$offset$>$ を x,y かまたは x,y,z の形式で指定した場合は、タイトルは与え
られた値だけ移動されます。それに座標系を選択して、その前に {\bf first},
{\bf second}, {\bf graph}, {\bf screen}, {\bf character} のいずれかをつけることもでき
ます。詳細は、以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。デフォルトでは {\bf character} 座標
系が使われます。例えば、{\tt"}{\bf set title offset 0,-1}{\tt"} はタイトルの y 方向
の位置のみ変更し、大ざっぱに言って 1 文字分の高さだけタイトルを下に下
げます。1 文字の大きさは、フォントと出力形式の両方に依存します。

$<$font$>$ はタイトルが書かれるフォントを指定するのに使われます。$<$size$>$ の
単位は、どの出力形式 (terminal) を使っているかによって変わります。

{\bf textcolor $<$colorspec$>$} は、文字の色を変更します。$<$colorspec$>$ は、線
種、rgb 色、またはパレットへの割当のいずれかが指定できます。以下参照:
{\bf colorspec (p.~\pageref{colorspec})\index{colorspec}}, {\bf palette (p.~\pageref{palette})\index{palette}}。

{\bf noenhanced} は、拡張文字列処理 (enhanced text) モードが有効になってい
る場合でも、タイトルを拡張文字列処理させないようにします。

{\bf set title} をパラメータなしで使うとタイトルを消去します。

バックスラッシュ文字列の作用、及び文字列を囲む単一引用符と二重引用符の
違いについては、以下参照: {\bf syntax (p.~\pageref{syntax})\index{syntax}}。
\subsection*{Tmargin}
\addcontentsline{toc}{subsection}{Tmargin}
\label{commands set tmargin}%
\label{set tmargin}%
\label{tmargin}%
\index{tmargin}%
コマンド {\bf set tmargin} は上の余白のサイズをセットします。詳細は、以下
参照: {\bf set margin (p.~\pageref{set margin})\index{margin}}。
\subsection*{Trange}
\addcontentsline{toc}{subsection}{Trange}
\label{commands set trange}%
\label{commands show trange}%
\label{set trange}%
\label{show trange}%
\label{trange}%
\index{trange}%
書式:    set trange [tmin:tmax]
媒介変数 t の範囲は、以下の 3 つの状況で有効です。
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 媒介変数モードでは、これがコマンド {\bf plot} の両方の生成関数の標本範囲
 を制限します。以下参照: {\bf set parametric (p.~\pageref{set parametric})\index{parametric}}, {\bf set samples (p.~\pageref{set samples})\index{samples}}。
\item
 極座標モードでは、これがコマンド {\bf plot} の偏角変数θの入力中の許容可
 能な範囲を制限、または定義します。この範囲外のθを持つデータ点は、そ
 れが描画境界の内側に入っていたとしても、グラフからは除外されます。
 以下参照: {\bf polar (p.~\pageref{polar})\index{polar}}。
\item
 {\bf plot} または {\bf splot} コマンドでは、疑似ファイル {\tt"}+{\tt"} による 1 次元デ
 ータの標本化に使用します。
 以下参照: {\bf sampling 1D (p.~\pageref{sampling 1D})\index{1D}}, {\bf special-filenames (p.~\pageref{special-filenames})\index{special-filenames}}。
\end{itemize}
\subsection*{Ttics}
\addcontentsline{toc}{subsection}{Ttics}
\label{commands set ttics}%
\label{commands show ttics}%
\label{set ttics}%
\label{show ttics}%
\label{ttics}%
\index{ttics}%
コマンド {\bf set ttics} は、極座標グラフの周囲に目盛り刻みをつけます。そ
れは、{\bf set border polar} とした場合は境界になりますが、そうでなければ
極座標格子の、r 軸に沿って最も右端の刻みの場所に書かれる最も外側の円周
になります。以下参照: {\bf set grid (p.~\pageref{set grid})\index{grid}}, {\bf set rtics (p.~\pageref{set rtics})\index{rtics}}。角の位置は、常に度の単
位でラベル付けされます。現在の角の範囲の設定 (trange) に関係なく、同心
円全体に刻みラベルをつけることができます。刻みラベルが必要な範囲の設定
は、下に示す例のようにしてください。刻みに関する追加属性を設定すること
もできます。以下参照: {\bf xtics (p.~\pageref{xtics})\index{xtics}}。

\preverbatim
\begin{verbatim}
    set ttics -180, 30, 180
    set ttics add ("Theta = 0" 0)
    set ttics font ":Italic" rotate
\end{verbatim}
\postverbatim
\subsection*{Urange}
\addcontentsline{toc}{subsection}{Urange}
\label{commands set urange}%
\label{commands show urange}%
\label{set urange}%
\label{show urange}%
\label{urange}%
\index{urange}%
書式:     set urange [umin:umax]
媒介変数 u と v の範囲は、以下の 2 つの状況で有効です。
1) 媒介変数モードの {\bf splot}。以下参照: {\bf set parametric (p.~\pageref{set parametric})\index{parametric}},
\preverbatim
\begin{verbatim}
  `set isosamples`。
\end{verbatim}
\postverbatim
2) {\bf plot} または {\bf splot} コマンドでは、疑似ファイル {\tt"}++{\tt"} による 2 次元
\preverbatim
\begin{verbatim}
  標本化データの生成に使用します。以下参照: `sampling 2D`。
\end{verbatim}
\postverbatim
\subsection*{Version}
\addcontentsline{toc}{subsection}{Version}
\label{show version}%
\label{show version long}%
コマンド {\bf show version} は現在起動している gnuplot のバージョン、最終
修正日、著作権者と、FAQ や info-gnuplot メーリングリスト、バグレポート
先のメールアドレスを表示します。対話的にプログラムが呼ばれているときは
スクリーン上にその情報を表示します。

書式:
\preverbatim
\begin{verbatim}
     show version {long}
\end{verbatim}
\postverbatim

show version {\bf long} では、その {\bf gnuplot} がコンパイルされたときに使わ
れたオペレーティングシステム、設定、コンパイルオプションなども表示しま
す。
\subsection*{Vgrid}
\addcontentsline{toc}{subsection}{Vgrid}
\label{commands set vgrid}%
\label{set vgrid}%
\label{unset vgrid}%
\label{show vgrid}%
\label{vgrid}%
\index{vgrid}%
書式:
\preverbatim
\begin{verbatim}
    set vgrid $gridname {size N}
    unset vgrid $gridname
    show vgrid
\end{verbatim}
\postverbatim

指定した名前付き格子 \$gridname が既に存在していれば、こえはそれを有効
にし、これに続く {\bf vfill} と {\bf voxel} の操作で使えるようにします。サイズ
を新たに指定した場合、存在するデータを 0 で埋めた N x N x N 格子に置き
換えます。その名前の格子がまだない場合は、N x N x N 格子 (デフォルトは
N=100) の領域をメモリに割り当て、その中身を 0 にし、有効にします。格子
名は、'\$' から始めなければいけないことに注意してください。

{\bf show vgrid} は、現在定義済みのボクセル格子すべての一覧を表示します。
出力例:
\preverbatim
\begin{verbatim}
     $vgrid1: (active)
              size 100 X 100 X 100
              vxrange [-4:4]  vyrange[-4:4]  vzrange[-4:4]
              non-zero voxel values:  min 0.061237 max 94.5604
              number of zero voxels:  992070   (99.21%)
\end{verbatim}
\postverbatim

{\bf unset vgrid \$gridname} は、そのボクセル格子に関係するすべてのデータ領
域をメモリから開放します。そのデータ領域は、{\bf reset session} でも開放さ
れます。
関数 {\bf voxel(x,y,z)} は、その座標に一番近い有効な格子点の値を返します。
以下も参照: {\bf splot voxel-grids (p.~\pageref{splot voxel-grids})\index{voxel-grids}}。

\subsection*{視線方向 (view)}
\addcontentsline{toc}{subsection}{視線方向 (view)}
\label{commands set view}%
\label{commands show view}%
\label{set view}%
\label{set view map}%
\label{show view}%
\label{view}%
\index{view}%
コマンド {\bf set view} は {\bf splot} の視線の角度を設定します。これは、グラ
フ描画の 3 次元座標をどのように 2 次元の画面 (screen) に投影するかを制
御します。これは、描画されたデータの回転と縮尺の制御を与えてくれますが
正射影しかサポートしていません。3 次元射影、および 2 次元描画的地図上
への 2 次元直交射影がサポートされています。

書式:
\preverbatim
\begin{verbatim}
     set view <rot_x>{,{<rot_z>}{,{<scale>}{,<scale_z>}}}
     set view map {scale <scale>}
     set view projection {xy|xz|yz}
     set view {no}equal {xy|xyz}
     set view azimuth <angle>
     show view
\end{verbatim}
\postverbatim

ここで $<$rot\_x$>$ と $<$rot\_z$>$ は、画面に投影される仮想的な 3 次元座標系の
回転角 (単位は度) の制御で、最初は (すなわち回転が行なわれる前は)
画面内の水平軸は x, 画面内の垂直軸は y, 画面自身に垂直な軸が z となっ
ています。最初は x 軸の周りに $<$rot\_x$>$ だけ回転されます。次に、新しい
z 軸の周りに $<$rot\_z$>$ だけ回転されます。

コマンド {\bf set view map} は、グラフを地図のように表示するのに使います。
これは等高線 ({\bf contour}) のグラフや、pm3d モードによる 2 次元温度分布
(heatmap) などで {\bf with image} よりもむしろ有用です。後者では、入力デー
タ点のフィルタ用の {\bf zrange} の設定、および色の範囲の縮尺に関する
{\bf cbrange} の設定を適切に行うことに注意してください。

$<$rot\_x$>$ は [0:180] の範囲に制限されていて、デフォルトでは 60 度です。
$<$rot\_z$>$ は [0:360] の範囲に制限されていて、デフォルトでは 30 度です。
$<$scale$>$ は {\bf splot} 全体の伸縮率を制御し、$<$scale\_z$>$ は z 軸の伸縮のみを
行ないます。伸縮率のデフォルトはどちらも 1.0 です。

例:
\preverbatim
\begin{verbatim}
     set view 60, 30, 1, 1
     set view ,,0.5
\end{verbatim}
\postverbatim

最初の例は 4 つの全てをデフォルトの値にしています。2 つめの例は縮小率
のみを 0.5 に変更しています。
\subsubsection*{Azimuth}
\addcontentsline{toc}{subsubsection}{Azimuth}
\label{set view azimuth}%
\label{view azimuth}%
\label{azimuth}%
\index{azimuth}%
\preverbatim
\begin{verbatim}
     set view azimuth <angle-in-degrees>
\end{verbatim}
\postverbatim
azimuth の設定は、3 次元グラフ (splot) の z 軸の向きに影響します。デフ
ォルトは azimuth = 0 で、グラフの z 軸はスクリーンの水平方向に対して垂
直な平面に含まる、すなわち、z 軸の 2 次元射影がスクリーンの鉛直方向に
なります。0 でない azimuth は視界を原点に関して回転し、z 軸の射影は鉛
直方向ではなくなります。azimuth = 90 では z 軸は鉛直方向ではなく、水平
方向になります。
対話型の表示の際、ホットキー {\bf z} は azimuth を 0 にリセットします。
\subsubsection*{Equal\_axes}
\addcontentsline{toc}{subsubsection}{Equal\_axes}
\label{set view equal_axes}%
\label{set view equal xyz}%
\label{set view equal}%
\label{view equal_axes}%
\label{view equal xyz}%
\label{equal_axes}%
\index{equal axes}%
\label{equal xyz}%
コマンド {\bf set view equal xy} は x 軸と y 軸の単位の長さが強制的に等し
くなるように縮尺を合わせ、グラフがページに丁度合うようにその縮尺を選択
します。コマンド {\bf set view equal xyz} は、さらに z 軸も x と y 軸に合
うようにしますが、z 軸の範囲が、描画境界の範囲に合う保証はありません。
以下も参照: {\bf set isotropic (p.~\pageref{set isotropic})\index{isotropic}}。デフォルトでは、3 つの軸は独立に有効な領
域を埋めるように伸縮します。

以下も参照: {\bf set xyplane (p.~\pageref{set xyplane})\index{xyplane}}。
\subsubsection*{Projection}
\addcontentsline{toc}{subsubsection}{Projection}
\label{set view projection}%
\label{view projection}%
\label{projection}%
\index{projection}%
書式:
\preverbatim
\begin{verbatim}
    set view projection {xy|xz|yz}
\end{verbatim}
\postverbatim
3 次元グラフの視角を回転し、主平面 xy, xz, yz のいずれかがグラフの平面
に乗るようにします。軸の目盛りとラベルの配置はそれに従って調整され、そ
れに垂直な第 3 軸の目盛りとラベルは無効になります。そのグラフは、'plot'
が同じ軸の範囲で生成するものとほぼ一致するサイズにスケール変換します。
{\bf set view projection xy} は、{\bf set view map} と同じです。

オブジェクトやラベル、矢、その他の描画要素を指定する x, y の座標の両方
が {\tt"}graph{\tt"} 座標の場合、それは射影面では {\tt"}x/y{\tt"} ではなく、{\tt"}水平/鉛直{\tt"} 値
として解釈します。

\preverbatim
\begin{verbatim}
   set key top right at graph 0.95, graph 0.95     # 任意の射影で動作
\end{verbatim}
\postverbatim

\subsection*{Vrange}
\addcontentsline{toc}{subsection}{Vrange}
\label{commands set vrange}%
\label{commands show vrange}%
\label{set vrange}%
\label{show vrange}%
\label{vrange}%
\index{vrange}%
書式:     set vrange [vmin:vmax]
媒介変数 u と v の範囲は、以下の 2 つの状況で有効です。
1) 媒介変数モードの {\bf splot}。以下参照: {\bf set parametric (p.~\pageref{set parametric})\index{parametric}},
\preverbatim
\begin{verbatim}
  `set isosamples`。
\end{verbatim}
\postverbatim
2) {\bf plot} または {\bf splot} コマンドでは、疑似ファイル {\tt"}++{\tt"} による 2 次元
\preverbatim
\begin{verbatim}
  標本化データの生成に使用します。以下参照: `sampling 2D`。
\end{verbatim}
\postverbatim
\subsection*{Vxrange}
\addcontentsline{toc}{subsection}{Vxrange}
\label{commands set vxrange}%
\label{set vxrange}%
\label{vxrange}%
\index{vxrange}%
書式:      set vxrange [vxmin:vxmax]

これは、現在有効なボクセル格子が占める x 座標の範囲を設定します。ボク
セル格子の他の 2 つの方向用に、これと同様のコマンド {\bf set vyrange},
{\bf set vzrange} があります。最初の {\bf vclear}, {\bf vfill}, {\bf voxel(x,y,z) = }
のコマンドの前に明示的な範囲が設定されていなかった場合、vmin と vmax
は現在の {\bf xrange} の範囲をコピーします。
\subsection*{Vyrange}
\addcontentsline{toc}{subsection}{Vyrange}
\label{commands set vyrange}%
\label{set vyrange}%
\label{vyrange}%
\index{vyrange}%
以下参照: {\bf set vxrange (p.~\pageref{set vxrange})\index{vxrange}}。
\subsection*{Vzrange}
\addcontentsline{toc}{subsection}{Vzrange}
\label{commands set vzrange}%
\label{set vzrange}%
\label{vzrange}%
\index{vzrange}%
以下参照: {\bf set vxrange (p.~\pageref{set vxrange})\index{vxrange}}。
\subsection*{Walls}
\addcontentsline{toc}{subsection}{Walls}
\label{commands set walls}%
\label{commands show walls}%
\label{set walls}%
\label{show walls}%
\label{unset walls}%
\label{walls}%
\index{walls}%
書式:
\preverbatim
\begin{verbatim}
    set walls
    set wall {x0|y0|z0|x1|y1} {<fillstyle>} {fc <fillcolor>}
\end{verbatim}
\postverbatim

\gpinsetfigure{figure_walls}
{\bf splot} が描く 3 次元曲面は、x, y, z 軸の範囲とは無関係に正規化された
単位立方体の中に置きます。そしてこの立方体の境界壁は、グラフ座標の
x == 0 や x == 1 等の平面となります。コマンド {\bf set walls} は、これらの
壁を x0, y0, z0 を、単色塗りの曲面として描画します。デフォルトではこれ
らの壁は、半透明 (fillstyle transparent solid 0.5) とします。このコマ
ンドでどの壁を描画するか、そして個別の色や個別の塗り潰しスタイル
(fillstyle) をカスタマイズできます。壁の描画を有効にする場合は、
{\bf set xyplane 0} も設定するといいでしょう。
例:
\preverbatim
\begin{verbatim}
    set wall x0; set wall y1; set wall z0 fillstyle solid 1.0 fillcolor "gray"
    splot f(x,y) with pm3d fc "goldenrod"
\end{verbatim}
\postverbatim

\subsection*{Watchpoints}
\addcontentsline{toc}{subsection}{Watchpoints}
\label{commands show watchpoints}%
\label{show watchpoints}%

コマンド plot の各描画要素毎に、一つ以上のウォッチポイントを設定できま
す。コマンド {\bf show watchpoints} で、すべてのウォッチポイント対象と直前
の plot コマンドでヒットした点の要約を見ることができます。

例:
\preverbatim
\begin{verbatim}
    plot DATA using 1:2 smooth cnormal watch y=0.25 watch y=0.5 \
         watch y=0.75
    show watchpoints
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
        Plot title:     "DATA using 1:2 smooth cnormal"
          Watch 1 target y = 0.25         (1 hits)
                  hit 1   x 50.6  y 0.25
          Watch 2 target y = 0.5          (1 hits)
                  hit 1   x 63.6  y 0.5
          Watch 3 target y = 0.75         (1 hits)
                  hit 1   x 68.3  y 0.75
\end{verbatim}
\postverbatim

最初のウォッチポイント (y=0.25) を満たすすべての点の座標を配列 WATCH\_1
に保存します。y=0.5 を満たす点は配列 WATCH\_2 に保存し、以下同様です。

各ヒット点は、x 座標を実数部分、y 座標を虚数部分とする複素数として保存
し、よってウォッチポイント 2 の最初のヒット点は、x = real(WATCH\_2[1]),
y = imag(WATCH\_2[1]) となります。この例では、ヒット点の x 座標のみが関
心事で、y 座標は常に対象となる y の値に一致します。しかし、ウォッチポ
イント対象が関数 f(x,y) の z 値である場合、x, y 座標はどちらも事前には
わかりません。

\subsection*{X2data}
\addcontentsline{toc}{subsection}{X2data}
\label{commands set x2data}%
\label{commands show x2data}%
\label{set x2data}%
\label{show x2data}%
\label{x2data}%
\index{x2data}%
コマンド {\bf set x2data} は x2 (上) 軸のデータを時系列 (日時) 形式に設定
します。詳細は、以下参照: {\bf set xdata (p.~\pageref{set xdata})\index{xdata}}。
\subsection*{X2dtics}
\addcontentsline{toc}{subsection}{X2dtics}
\label{commands set x2dtics}%
\label{commands unset x2dtics}%
\label{commands show x2dtics}%
\label{set x2dtics}%
\label{unset x2dtics}%
\label{show x2dtics}%
\label{x2dtics}%
\index{x2dtics}%
\label{nox2dtics}%
\index{nox2dtics}%
コマンド {\bf set x2dtics} は x2 (上) 軸の目盛りを曜日に変更します。詳細は、
以下参照: {\bf set xdtics (p.~\pageref{set xdtics})\index{xdtics}}。
\subsection*{X2label}
\addcontentsline{toc}{subsection}{X2label}
\label{commands set x2label}%
\label{commands show x2label}%
\label{set x2label}%
\label{show x2label}%
\label{x2label}%
\index{x2label}%
コマンド {\bf set x2label} は x2 (上) 軸の見出しを設定します。詳細は、以下
参照: {\bf set xlabel (p.~\pageref{set xlabel})\index{xlabel}}。
\subsection*{X2mtics}
\addcontentsline{toc}{subsection}{X2mtics}
\label{commands set x2mtics}%
\label{commands unset x2mtics}%
\label{commands show x2mtics}%
\label{set x2mtics}%
\label{unset x2mtics}%
\label{show x2mtics}%
\label{x2mtics}%
\index{x2mtics}%
\label{nox2mtics}%
\index{nox2mtics}%
コマンド {\bf set x2mtics} は、x2 (上) 軸を 1 年の各月に設定します。詳細は、
以下参照: {\bf set xmtics (p.~\pageref{set xmtics})\index{xmtics}}。
\subsection*{X2range}
\addcontentsline{toc}{subsection}{X2range}
\label{commands set x2range}%
\label{commands show x2range}%
\label{set x2range}%
\label{show x2range}%
\label{x2range}%
\index{x2range}%
コマンド {\bf set x2range} は x2 (上) 軸の表示される水平範囲を設定します。
コマンドオプションのすべての説明については、以下参照: {\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。以
下も参照: {\bf set link (p.~\pageref{set link})\index{link}}。
\subsection*{X2tics}
\addcontentsline{toc}{subsection}{X2tics}
\label{commands set x2tics}%
\label{commands unset x2tics}%
\label{commands show x2tics}%
\label{set x2tics}%
\label{unset x2tics}%
\label{show x2tics}%
\label{x2tics}%
\index{x2tics}%
\label{nox2tics}%
\index{nox2tics}%
コマンド {\bf set x2tics} は x2 (上) 軸の、見出し付けされる大目盛りの制御
を行ないます。詳細は、以下参照: {\bf set xtics (p.~\pageref{set xtics})\index{xtics}}。
\subsection*{X2zeroaxis}
\addcontentsline{toc}{subsection}{X2zeroaxis}
\label{commands set x2zeroaxis}%
\label{commands unset x2zeroaxis}%
\label{commands show x2zeroaxis}%
\label{set x2zeroaxis}%
\label{unset x2zeroaxis}%
\label{show x2zeroaxis}%
\label{x2zeroaxis}%
\index{x2zeroaxis}%
\label{nox2zeroaxis}%
\index{nox2zeroaxis}%
コマンド {\bf set x2zeroaxis} は、原点を通る x2 (上) 軸 (y2 = 0) を描きま
す。詳細は、以下参照: {\bf set zeroaxis (p.~\pageref{set zeroaxis})\index{zeroaxis}}。
\subsection*{軸毎のデータ種類指定 (xdata)}
\addcontentsline{toc}{subsection}{軸毎のデータ種類指定 (xdata)}
\label{commands set xdata}%
\label{commands show xdata}%
\label{set xdata}%
\label{show xdata}%
\label{xdata}%
\index{xdata}%
このコマンドは x 軸のデータ形式の解釈を制御します。他の軸それぞれにも
同様のコマンドが機能します。

書式:
\preverbatim
\begin{verbatim}
     set xdata {time}
     show xdata
\end{verbatim}
\postverbatim

{\bf ydata}, {\bf zdata}, {\bf x2data}, {\bf y2data}, {\bf cbdata} にも同じ書式が当てはま
ります。

{\bf time} オプションはデータが秒単位の日時データであることを伝えます。
gnuplot バージョン 6 は時刻をミリ秒の精度保存します。

キーワード {\bf time} なしの {\bf set xdata} は、データの解釈方法を通常の形式
に戻します。
\subsubsection*{日時データ (time)}
\addcontentsline{toc}{subsubsection}{日時データ (time)}
\label{commands set xdata time}%
\label{set xdata time}%
{\bf set xdata time} は、x 座標がミリ秒精度の日時データであることを意味し
ます。{\bf set ydata time} という同様のコマンドもあります。

日時データの入力と出力の解釈には、別々の書式機構があります。ファイルか
らの入力データは、全体に通用する {\bf timefmt} を使うか、または plot コマ
ンド内で timecolumn() 関数を使って読み込みます。この入力機構は、軸の範
囲 (range) を設定するときに時間の値を使用する際にも適用されます。以下
参照: {\bf set timefmt (p.~\pageref{set timefmt})\index{timefmt}}, {\bf timecolumn (p.~\pageref{timecolumn})\index{timecolumn}}。

例:

\preverbatim
\begin{verbatim}
    set xdata time
    set timefmt "%d-%b-%Y"
    set xrange ["01-Jan-2013" : "31-Dec-2014"]
    plot DATA using 1:2
\end{verbatim}
\postverbatim
または
\preverbatim
\begin{verbatim}
    plot DATA using (timecolumn(1,"%d-%b-%Y")):2
\end{verbatim}
\postverbatim

出力、すなわち軸に沿った目盛りのラベルや、マウス操作での座標出力につい
ては、デフォルトでは、秒での内部時刻から日時を表現する文字列への変換に
は、関数 'strftime' (unix でそれを調べるには {\tt"}man strftime{\tt"} とタイプし
てください) を使います。{\bf gnuplot} はこれを適当に意味のある書式で表示し
ようとしますが、{\bf set format x} か {\bf set xtics format} のいずれかを使っ
てカスタマイズすることもできます。
特別な時間書式指定子に関しては、以下参照: {\bf time\_specifiers (p.~\pageref{time_specifiers})\index{time specifiers}}。他の情報
については、以下も参照: {\bf time/date (p.~\pageref{time/date})\index{time/date}}。
\subsection*{曜日軸目盛り (xdtics)}
\addcontentsline{toc}{subsection}{曜日軸目盛り (xdtics)}
\label{commands set xdtics}%
\label{commands unset xdtics}%
\label{commands show xdtics}%
\label{set xdtics}%
\label{unset xdtics}%
\label{show xdtics}%
\label{xdtics}%
\index{xdtics}%
\label{noxdtics}%
\index{noxdtics}%
コマンド {\bf set xdtics} は x 軸の目盛りの刻みを曜日に変換します (0=Sun,
6=Sat)。6 を越える場合は 7 による余りが使われます。{\bf unset xdtics} は
その見出しをデフォルトの形式に戻します。他の軸にも同じことを行なう同
様のコマンドが用意されています。

書式:
\preverbatim
\begin{verbatim}
     set xdtics
     unset xdtics
     show xdtics
\end{verbatim}
\postverbatim

{\bf ydtics}, {\bf zdtics}, {\bf x2dtics}, {\bf y2dtics}, {\bf cbdtics} にも同じ書式が当て
はまります。

以下も参照: {\bf set format (p.~\pageref{set format})\index{format}}。
\subsection*{軸ラベル (xlabel)}
\addcontentsline{toc}{subsection}{軸ラベル (xlabel)}
\label{commands set xlabel}%
\label{commands show xlabel}%
\label{set xlabel}%
\label{show xlabel}%
\label{xlabel}%
\index{xlabel}%
コマンド {\bf set xlabel} は x 軸の見出しを設定します。他の軸にも見出しを
設定する同様のコマンドがあります。

書式:
\preverbatim
\begin{verbatim}
     set xlabel {"<label>"} {offset <offset>} {font "<font>{,<size>}"}
                {textcolor <colorspec>} {{no}enhanced}
                {rotate by <degrees> | rotate parallel | norotate}
     show xlabel
\end{verbatim}
\postverbatim

同じ書式が {\bf x2label}, {\bf ylabel}, {\bf y2label}, {\bf zlabel}, {\bf cblabel} にも適
用されます。

$<$offset$>$ を x,y かまたは x,y,z の形式で指定した場合は、見出しは与えら
れた値だけ移動されます。それに座標系を選択して、その前に {\bf first},
{\bf second}, {\bf graph}, {\bf screen}, {\bf character} のいずれかをつけることもでき
ます。詳細は、以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。デフォルトでは {\bf character} 座標
系が使われます。例えば、{\tt"}{\bf set xlabel offset -1,0}{\tt"} は見出しの x 方向の
位置のみ変更し、大ざっぱに言って 1 文字分の幅だけ見出しを左にずらしま
す。1 文字の大きさは、フォントと出力形式の両方に依存します。

$<$font$>$ は見出しが書かれるフォントを指定するのに使われます。フォントの
$<$size$>$ (大きさ) の単位は、どんな出力形式を使うかに依存します。

{\bf noenhanced} は、拡張文字列処理 (enhanced text) モードが有効になってい
る場合でも、ラベル文字列を拡張文字列処理させないようにします。

見出しを消去するには、オプションをつけずに実行します。例: {\tt"}{\bf set y2label}{\tt"}

軸の見出しのデフォルトの位置は以下の通りです:

xlabel: x 軸の見出しはグラフの下の真中

ylabel: y 軸の見出しはグラフの左の真中で、水平方向に書かれるか垂直方向
になるかは出力形式依存。
グラフの左側に回転させない ylabel 文字列を置くには、十分なスペースがな
い場合もありえます。その場合は、{\bf set lmargin} で揃えられます。

zlabel: z 軸の見出しは軸の表示範囲より上で、見出しの真中が z 軸の真上

cblabel: 色見本 (color box) の軸の見出しは箱に沿って中央揃えされ、箱の
向きが水平なら下に、垂直なら右に

y2label: y2 軸の見出しは y2 軸の右。その位置は、出力形式依存で y 軸と
同様の規則で決定。

x2label: x2 軸の見出しはグラフの上で、タイトルよりは下。これは、 改行
文字を使えば、それによる複数の行からなる描画タイトルで x2 軸の見出しを
生成することも可能。例:

\preverbatim
\begin{verbatim}
     set title "This is the title\n\nThis is the x2label"
\end{verbatim}
\postverbatim

これは二重引用符を使うべきであることに注意してください。この場合、もち
ろん 2 つの行で同じフォントが使われます。

2 次元描画の場合の x, x2, y, y2 軸のラベルの方向 (回転角) は、
{\bf rotate by $<$角度$>$} を指定することで変更できます。3 次元描画の x, y 軸
のラベルの方向はデフォルトでは水平方向になっていますが、
{\bf rotate parallel} を指定することで軸に平行にすることができます。

もし軸の位置のデフォルトの位置が気に入らないならば、代わりに {\bf set label}
を使ってください。このコマンドは文字列をどこに配置するかをもっと自由に
制御できます。

バックスラッシュ文字列の作用、及び文字列を囲む単一引用符と二重引用符の
違いに関するより詳しい情報については、以下参照: {\bf syntax (p.~\pageref{syntax})\index{syntax}}。
\subsection*{月軸目盛り (xmtics)}
\addcontentsline{toc}{subsection}{月軸目盛り (xmtics)}
\label{commands set xmtics}%
\label{commands unset xmtics}%
\label{commands show xmtics}%
\label{set xmtics}%
\label{unset xmtics}%
\label{show xmtics}%
\label{xmtics}%
\index{xmtics}%
\label{noxmtics}%
\index{noxmtics}%
コマンド {\bf set xmtics} は x 軸の目盛りの見出しを月に変換します。1=Jan
(1 月)、12=Dec (12 月) となります。12 を越えた数字は、12 で割ったあまりの
月に変換されます。{\bf unset xmtics} で目盛りはデフォルトの見出しに戻ります。
他の軸に対しても同じ役割をする同様のコマンドが用意されています。

書式:
\preverbatim
\begin{verbatim}
     set xmtics
     unset xmtics
     show xmtics
\end{verbatim}
\postverbatim

{\bf x2mtics}, {\bf ymtics}, {\bf y2mtics}, {\bf zmtics}, {\bf cbmtics} にも同じ書式が適用
されます。

以下も参照: {\bf set format (p.~\pageref{set format})\index{format}}。
\subsection*{軸範囲指定 (xrange)}
\addcontentsline{toc}{subsection}{軸範囲指定 (xrange)}
\label{commands set xrange}%
\label{commands show xrange}%
\label{set xrange}%
\label{show xrange}%
\label{set range}%
\label{restore}%
\index{restore}%
\label{xrange}%
\index{xrange}%
コマンド {\bf set xrange} は表示される水平方向の範囲を指定します。他の軸
にも同様のコマンドが存在しますし、極座標での動径 r, 媒介変数 t, u, v
にも存在します。

書式:
\preverbatim
\begin{verbatim}
     set xrange [{{<min>}:{<max>}}] {{no}reverse} {{no}extend}
                | restore
     show xrange
\end{verbatim}
\postverbatim

ここで $<$min$>$ と $<$max$>$ は定数、数式、または '*' で、'*' は自動縮尺機能
を意味します。日時データの場合、範囲は {\bf set timefmt} の書式に従った文
字列を引用符で囲む必要があります。$<$min$>$ や $<$max$>$ を省略した場合は、現
在の値を変更しません。自動縮尺機能に関する詳細は下に述べます。以下も
参照: {\bf noextend (p.~\pageref{noextend})\index{noextend}}。

{\bf yrange}, {\bf zrange}, {\bf x2range}, {\bf y2range}, {\bf cbrange}, {\bf rrange}, {\bf trange},
{\bf urange}, {\bf vrange} は同じ書式を使用します。

x と x2 軸、あるいは y と y2 軸の範囲をリンクするオプションについては
以下参照: {\bf set link (p.~\pageref{set link})\index{link}}。

オプション {\bf reverse} は、自動縮尺の軸の方向を逆にします。例えば、デー
タ値の範囲が 10 から 100 であるとき、これは、set xrange [100:10] とし
たのと同じように自動縮尺します。{\bf reverse} は、自動縮尺ではない軸に対し
ては機能しません。

自動縮尺機能: $<$min$>$ (同様のことが $<$max$>$ にも適用されます) がアスタリス
ク {\tt"}*{\tt"} の場合は自動縮尺機能がオンになります。その場合のその値に、下限
$<$lb$>$、または上限 $<$ub$>$、またはその両方の制限を与えられます。書式は以下
の通りです。
\preverbatim
\begin{verbatim}
     { <lb> < } * { < <ub> }
\end{verbatim}
\postverbatim
例えば
\preverbatim
\begin{verbatim}
     0 < * < 200
\end{verbatim}
\postverbatim
は $<$lb$>$ = 0, $<$ub$>$ = 200 となります。そのような設定では、$<$min$>$ は自動縮
尺されますが、その最終的な値は 0 から 200 の間になります (記号は '$<$'
ですが両端の値も含みます)。下限か上限を指定しない場合は、その '$<$' も省
略できます。$<$ub$>$ が $<$lb$>$ より小さい場合は、制限はオフになり、完全な自
動縮尺になります。
この機能は、自動縮尺だけれども範囲に制限がある測定データの描画や、外れ
値のクリッピング、またはデータがそれほどの範囲を必要としていなくても最
小の描画範囲を保証するのに有用でしょう。

コマンド {\bf set xrange restore} は、現在の範囲の最小値、最大値を、直近の
自動縮尺操作で得た値で上書きします。

2 次元描画において、{\bf xrange} と {\bf yrange} は軸の範囲を決定し、{\bf trange}
は、媒介変数モードの媒介変数の範囲、あるいは極座標モードの角度の範囲を
決定します。同様に 3 次元媒介変数モードでは、{\bf xrange}, {\bf yrange}, {\bf zrange}
が軸の範囲を管理し、{\bf urange} と {\bf yrange} が媒介変数の範囲を管理します。

極座標モードでは、{\bf rrange} は描画される動径の範囲を決定します。$<$rmin$>$
は動径への追加の定数として作用し、一方 $<$rmax$>$ は動径を切り捨てる (clip)
ように作用し、$<$rmax$>$ を越えた動径に対する点は描画されません。{\bf xrange}
と {\bf yrange} は影響されます。これらの範囲は、グラフが r(t)-rmin のグラ
フで、目盛りの見出しにはそれぞれ rmin を加えたようなものであるかのよう
にセットされます。

全ての範囲は部分的に、または全体的に自動縮尺されますが、データの描画で
なければ、パラメータ変数の自動縮尺機能は意味がないでしょう。

範囲は {\bf plot} のコマンドライン上でも指定できます。コマンドライン上で与
えられた範囲は単にその {\bf plot} コマンドでだけ使われ、{\bf set} コマンドで設
定された範囲はその後の描画で、コマンドラインで範囲を指定していないもの
全てで使われます。これは {\bf splot} も同じです。
\subsubsection*{例 (examples)}
\addcontentsline{toc}{subsubsection}{例 (examples)}
\label{commands set xrange examples}%
\label{set xrange examples}%
\label{set range examples}%
\label{xrange examples}%
例:

x の範囲をデフォルトの値にします:
\preverbatim
\begin{verbatim}
     set xrange [-10:10]
\end{verbatim}
\postverbatim

y の範囲が下方へ増加するようにします:
\preverbatim
\begin{verbatim}
     set yrange [10:-10]
\end{verbatim}
\postverbatim

z の最小値には影響を与えずに (自動縮尺されたまま)、最大値のみ 10 に設
定します:
\preverbatim
\begin{verbatim}
     set zrange [:10]
\end{verbatim}
\postverbatim

x の最小値は自動縮尺とし、最大値は変更しません:
\preverbatim
\begin{verbatim}
     set xrange [*:]
\end{verbatim}
\postverbatim

x の最小値を自動縮尺としますが、その最小値は 0 以上にします。
\preverbatim
\begin{verbatim}
     set xrange [0<*:]
\end{verbatim}
\postverbatim

x の範囲を自動縮尺としますが、小さくても 10 から 50 の範囲を保持します
(実際はそれより大きくなるでしょう):
\preverbatim
\begin{verbatim}
     set xrange [*<10:50<*]
\end{verbatim}
\postverbatim

自動縮尺で最大範囲を -1000 から 1000、すなわち [-1000:1000] 内で自動縮
尺します:
\preverbatim
\begin{verbatim}
     set xrange [-1000<*:*<1000]
\end{verbatim}
\postverbatim

x の最小値を -200 から 100 の間のどこかにします:
\preverbatim
\begin{verbatim}
     set xrange [-200<*<100:]
\end{verbatim}
\postverbatim
\subsubsection*{Extend}
\addcontentsline{toc}{subsubsection}{Extend}
\label{commands set xrange noextend}%
\label{set xrange noextend}%
\label{set range noextend}%
\label{xrange noextend}%
\label{set xrange extend}%
\label{set range extend}%
\label{xrange extend}%
{\bf set xrange noextend} は、{\bf set autoscale x noextend} と全く同じです。
以下参照: {\bf noextend (p.~\pageref{noextend})\index{noextend}}。
\subsubsection*{Writeback}
\addcontentsline{toc}{subsubsection}{Writeback}
\label{set range writeback}%
\label{set xrange writeback}%
コマンド {\tt"}set xrange writeback{\tt"} と {\tt"}set xrange nowriteback{\tt"} は、後方互
換性のために残っていますが、gnuplot 5.2.4 以降、描画には何も影響を与え
ません。
\subsection*{軸主目盛り指定 (xtics)}
\addcontentsline{toc}{subsection}{軸主目盛り指定 (xtics)}
\label{commands set xtics}%
\label{commands unset xtics}%
\label{commands show xtics}%
\label{set xtics}%
\label{unset xtics}%
\label{show xtics}%
\label{xtics}%
\index{xtics}%
\label{noxtics}%
\index{noxtics}%
x 軸の (見出しのつく) 大目盛りは コマンド {\bf set xtics} で制御できます。
目盛りは {\bf unset xtics} で消え、{\bf set xtics} で (デフォルトの状態の) 目
盛りがつきます。y,z,x2,y2 軸の大目盛りの制御を行なう同様のコマンドがあ
ります。

書式:
\preverbatim
\begin{verbatim}
     set xtics {axis | border} {{no}mirror}
               {in | out} {scale {default | <major> {,<minor>}}}
               {{no}rotate {by <ang>}} {offset <offset> | nooffset}
               {left | right | center | autojustify}
               {add}
               {  autofreq
                | <incr>
                | <start>, <incr> {,<end>}
                | ({"<label>"} <pos> {<level>} {,{"<label>"}...) }
               {format "formatstring"} {font "name{,<size>}"} {{no}enhanced}
               { numeric | timedate | geographic }
               {{no}logscale}
               { rangelimited }
               { textcolor <colorspec> }
     unset xtics
     show xtics
\end{verbatim}
\postverbatim

同じ書式が {\bf ytics}, {\bf ztics}, {\bf x2tics}, {\bf y2tics}, {\bf cbtics} にも適用され
ます。

{\bf axis} と {\bf border} は {\bf gnuplot} に目盛り (目盛りの刻み自身とその見出し)
を、それぞれ軸につけるのか、境界につけるのかを指示します。軸が境界にと
ても近い場合、{\bf axis} を使用すると目盛りの見出し文字を境界の外に出して
しまうでしょう。この場合自動的なレイアウトアルゴリズムによる余白設定は
大抵よくないものとなってしまいます。

{\bf mirror} は {\bf gnuplot} に反対側の境界の同じ位置に、見出しのない目盛りを
出力するよう指示します。{\bf nomirror} は、あなたが想像している通りのこと
を行ないます。

{\bf in} と {\bf out} は目盛りの刻みを内側に描くか外側に描くかを切り変えます。

目盛りの刻みのサイズは {\bf scale} で調整できます。$<$minor$>$ の指定が省略さ
れた場合は、それは 0.5*$<$major$>$ になります。デフォルトのサイズは、大目
盛りが 1.0 で小目盛りが 0.5 で、これは {\bf scale default} で呼びだせます。

{\bf rotate} は、文字列を 90 度回転させて出力させようとします。これは、文
字列の回転をサポートしている出力ドライバ (terminal) では実行されます。
{\bf norotate} はこれをキャンセルします。{\bf rotate by $<$ang$>$} は角度 $<$ang$>$ の
回転を行ないますが、これはいくつかの出力形式 (terminal) でサポートされ
ています。

x と y 軸の大目盛りのデフォルトは {\bf border mirror norotate} で、x2, y2
軸は {\bf border nomirror norotate} がデフォルトです。z 軸には、
{\bf \{axis $|$ border\}} オプションは無効で、デフォルトは {\bf nomirror} です。z
軸の目盛りをミラー化したいなら、多分 {\bf set border} でそのための空間をあ
ける必要があるでしょう。

$<$offset$>$ は x,y かまたは x,y,z の形式で指定しますが、それに座標系を選
択して、その前に {\bf first}, {\bf second}, {\bf graph}, {\bf screen}, {\bf character} の
いずれかをつけることもできます。$<$offset$>$ は刻み文字のデフォルトの位置
からのずれを表し、デフォルトの座標系は {\bf character} です。詳細は、以下
参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。{\bf nooffset} はずらしを無効にします。

例:

xtics をより描画に近づける:
\preverbatim
\begin{verbatim}
     set xtics offset 0,graph 0.05
\end{verbatim}
\postverbatim

軸の目盛りとグラフ自身の描画の相対的な順番を変更するには、コマンド
{\bf set grid} に 'front', 'back', 'layerdefault' 等のオプションを使用して
ください。ただし、異なる軸の目盛りや格子線に異なるレイヤーを割り当てる
オプションはありません。

デフォルトでは見出しラベルは、美しい結果を生むように、軸と回転角に依存
した位置に自動的に揃えられますが、気にいらなければ、明示的に {\bf left},
{\bf right}, {\bf center} のキーワードにより位置揃えを変更できます。
{\bf autojustify} でデフォルトの挙動に復帰します。

オプションなしで {\bf set xtics} を実行すると、目盛りが表示される状態であ
れば、それはデフォルトの境界、または軸を復元し、そうでなければ何もしま
せん。その前に指定した目盛りの間隔、位置 (と見出し) は保持されます。

目盛りの位置は、デフォルト、またはオプション {\bf autofreq} が指定されてい
れば自動的に計算されます。

目盛りの位置の列は、目盛りの間隔のみ、または開始位置と間隔と終りの位置、
のいずれかを指定することができます (以下参照: {\bf xtics series (p.~\pageref{xtics series})\index{series}})。

明示的な位置のリストを与えることで、個々の目盛りの位置を個別に指定する
こともできます。各位置には、それに対する見出しラベルを指定することもで
きます。以下参照: {\bf xtics list (p.~\pageref{xtics list})\index{list}}。

しかし指定しても、表示されるのはあくまで描画範囲のものだけです。

目盛りの見出しの書式 (または省略) は {\bf set format} で制御されます。ただ
しそれは {\bf set xtics (}$<$label$>${\bf )} の形式の明示的な見出し文字列が含まれ
ていない場合だけです。

(見出し付けされない) 小目盛りは、{\bf set mxtics} コマンドで自動的に追加す
るか、または位置を手動で {\bf set xtics ({\tt"}{\tt"} $<$pos$>$ 1, ...)} の形式で与える
こともできます。

刻みの見た目 (線種、幅等) は、それを軸の上に描く場合であっても、境界線
によって決定されます (以下参照: {\bf set border (p.~\pageref{set border})\index{border}})。
\subsubsection*{Xtics の列生成指定 (xtics series)}
\addcontentsline{toc}{subsubsection}{Xtics の列生成指定 (xtics series)}
\label{set xtics series}%
\label{xtics series}%
書式:
\preverbatim
\begin{verbatim}
    set xtics <incr>
    set xtics <start>, <incr>, <end>
\end{verbatim}
\postverbatim
暗示的な $<$start$>$, $<$incr$>$, $<$end$>$ 形式は、目盛りの列を $<$start$>$ から $<$end$>$
の間を $<$incr$>$ の間隔で表示します。$<$end$>$ を指定しなければ、それは無限大
とみなされます。$<$incr$>$ は負の値も可能です。$<$start$>$ と $<$end$>$ の両方が指
定されていない場合、$<$start$>$ は -∞、$<$end$>$ は +∞とみなされ、目盛りは
$<$incr$>$ の整数倍の位置に表示されます。軸が対数軸の場合、目盛りの間隔
(増分) は、倍数として使用されます。

負の $<$start$>$ や $<$incr$>$ を、数値の後ろに指定すると (例えば
{\bf rotate by $<$angle$>$} とか {\bf offset $<$offset$>$} の後ろ)、gnuplot の構文解析
器は、その値からその負の $<$start$>$ や $<$incr$>$ の値の引き算を行おうとする
間違いを犯します。これを回避するには、そのような場合は、{\bf 0-$<$start$>$} や
{\bf 0-$<$incr$>$} のように指定してください。

例:
\preverbatim
\begin{verbatim}
     set xtics border offset 0,0.5 -5,1,5
\end{verbatim}
\postverbatim
最後の ',' のところで失敗します。
代わりに
\preverbatim
\begin{verbatim}
     set xtics border offset 0,0.5 0-5,1,5
\end{verbatim}
\postverbatim
か
\preverbatim
\begin{verbatim}
     set xtics offset 0,0.5 border -5,1,5
\end{verbatim}
\postverbatim
のようにしてください。これらは、ちゃんと指示通りに、目盛りを境界に、目
盛り見出し文字列を 0,0.5 文字分だけずらして、start, increment, end を
それぞれ -5,1,5 に設定します。

例:

目盛りを 0, 0.5, 1, 1.5, ..., 9.5, 10 の位置に生成
\preverbatim
\begin{verbatim}
     set xtics 0,.5,10
\end{verbatim}
\postverbatim

目盛りを ..., -10, -5, 0, 5, 10, ... に生成
\preverbatim
\begin{verbatim}
     set xtics 5
\end{verbatim}
\postverbatim

目盛りを 1, 100, 1e4, 1e6, 1e8 に生成
\preverbatim
\begin{verbatim}
     set logscale x; set xtics 1,100,1e8
\end{verbatim}
\postverbatim

\subsubsection*{Xtics の列挙形指定 (xtics list)}
\addcontentsline{toc}{subsubsection}{Xtics の列挙形指定 (xtics list)}
\label{set xtics list}%
\label{set xtics add}%
\label{xtics list}%
\label{xtics add}%
書式:
\preverbatim
\begin{verbatim}
    set xtics {add} ("label1" <pos1> <level1>, "label2" <pos2> <level2>, ...)
\end{verbatim}
\postverbatim

明示的な ({\tt"}label{\tt"} $<$pos$>$ $<$level$>$, ...) の形式は、任意の目盛りの位置、あ
るいは数字でない見出しの生成も可能にします。この形式では、目盛りは位置
の数字の順に与える必要はありません。各目盛りは位置 (pos) と見出し
(label) を持ちますが、見出しは必須ではありません。

見出しは引用符で囲んだ文字列か、または文字列値の数式です。それには、
{\tt"}\%3f clients{\tt"} のようにその位置を数字に変換する書式文字列を入れても構い
ませんし、空文字列 {\tt"}{\tt"} でも構いません。より詳しい情報については、以下
参照: {\bf set format (p.~\pageref{set format})\index{format}}。もし、文字列を指定しなければ、デフォルトの数字の見
出しを使用します。

明示的な形式では 3 つ目のパラメータとしてレベルを指定できます。デフォ
ルトのレベルは 0 で、これは大目盛りを意味し、レベル 1 の場合は小目盛り
を生成します。ラベルは、小目盛りには決して付きません。大目盛りと小目盛
りは gnuplot が自動的に生成しますが、ユーザが明示的に指定もできます。
レベルが 2 以上の目盛りは、ユーザが明示的に指定しなければならず、自動
生成の目盛りよりも高い優先度を持ちます。各レベルの目盛りの刻みの大きさ
は、{\bf set tics scale} で制御します。

例:
\preverbatim
\begin{verbatim}
     set xtics ("low" 0, "medium" 50, "high" 100)
     set xtics (1,2,4,8,16,32,64,128,256,512,1024)
     set ytics ("bottom" 0, "" 10, "top" 20)
     set ytics ("bottom" 0, "" 10 1, "top" 20)
\end{verbatim}
\postverbatim

2 番目の例では、全ての目盛りが見出し付けされます。3 番目の例では、端の
ものだけが見出し付けされます。4 番目の例の、見出しのない目盛りは小目盛
りになります。

通常明示的な (手動の) 目盛り位置が与えられた場合、自動的に生成される目
盛りは使われません。逆に、{\bf set xtics auto} のようなものが指定された場
合は、以前に手動で設定した目盛りは消されてしまします。この手動の目盛り
と自動的な目盛りを共存させるにはキーワード {\bf add} を使用してください。
これは追加する目盛りのスタイルの前に書かなければいけません。

例:
\preverbatim
\begin{verbatim}
     set xtics 0,.5,10
     set xtics add ("Pi" 3.14159)
\end{verbatim}
\postverbatim

これは自動的に目盛りの刻みを x 軸に 0.5 間隔でつけますが、πのところに
明示的な見出しも追加します。
\subsubsection*{Xtics timedata}
\addcontentsline{toc}{subsubsection}{Xtics timedata}
\label{set xtics timedata}%
\label{xtics timedata tics}%
\label{set xtics time}%
\label{xtics time}%
\label{timedata tics}%
時間と日付は内部では秒数として保持されています。

入力: 非数値の日時値は、入力時に {\bf timefmt} で指定した書式を用いて秒数
に変換します。軸の範囲、目盛りの配置、グラフの座標も {\bf timefmt} で解釈
される日時で、引用符で囲んで与えることができます。

出力: 軸の目盛りラベルは、{\bf set format} か {\bf set xtics format} のいずれ
かで指定された、別の書式を使って生成します。デフォルトでは、それは通常
の数値書式指定であると認識しますが ({\bf set xtics numeric})、他に、地理座
標 ({\bf set xtics geographic}) や、日時データ ({\bf set xtics time}) のオプシ
ョンがあります。

注意: 以前の版の gnuplot との互換性のため、コマンド {\bf set xdata time}
も暗黙に {\bf set xtics time} を実行しますし、{\bf set xdata} や {\bf unset xdata}
は暗黙に {\bf set xtics numeric} へリセットします。しかし、これはその後に
{\bf set xtics} を呼び出すことで変更できます。

例:
\preverbatim
\begin{verbatim}
     set xdata time           # 入力データの解釈の制御
     set timefmt "%d/%m"      # 入力データの読み込みの書式
     set xtics timedate       # 出力書式の解釈の制御
     set xtics format "%b %d" # 目盛りラベルで使う書式
     set xrange ["01/12":"06/12"]
     set xtics "01/12", 172800, "05/12"
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     set xdata time
     set timefmt "%d/%m"
     set xtics format "%b %d" time
     set xrange ["01/12":"06/12"]
     set xtics ("01/12", "" "03/12", "05/12")
\end{verbatim}
\postverbatim
これらは両方とも {\tt"}Dec 1{\tt"}, {\tt"}Dec 3{\tt"}, {\tt"}Dec 5{\tt"}, の目盛りを生成しますが、2
番目の例 {\tt"}Dec 3{\tt"} の目盛りは見出し付けされません。

$<$start$>$, $<$incr$>$, $<$end$>$ 形式を使う場合、$<$incr$>$ はデフォルトでは秒単位で
すが、{\bf minutes}, {\bf hours}, {\bf days}, {\bf weeks}, {\bf months}, {\bf years} の明示的
な時間の単位を後ろに追加することもできます。これは、間隔 $<$incr$>$ のみを
指定する場合も同じです。

例
\preverbatim
\begin{verbatim}
    set xtics time 5 years     # 5 年間隔で目盛りラベルを配置
    set xtics "01-Jan-2000", 1 month, "01-Jan-2001"
\end{verbatim}
\postverbatim

小目盛用の特別な時刻モードもあります。以下参照: {\bf set mxtics time (p.~\pageref{set mxtics time})\index{time}}。
\subsubsection*{地理座標 (geographic)}
\addcontentsline{toc}{subsubsection}{地理座標 (geographic)}
\label{commands set xtics geographic}%
\label{set xtics geographic}%
\label{geographic}%
\index{geographic}%
{\bf set xtics geographic} は、x 軸の値が度の単位の地理座標であることを意
味します。その軸の刻みの見出しの表現の指定には、{\bf set xtics format} か
{\bf set format x} を使います。地理座標データに関する書式指定子は以下の通
り:
\preverbatim
\begin{verbatim}
      %D                   = 度の整数表示
      %<width.precision>d  = 度の浮動小数表示
      %M                   = 分の整数表示
      %<width.precision>m  = 分の浮動小数表示
      %S                   = 秒の整数表示
      %<width.precision>s  = 秒の浮動小数表示
      %E                   = +/- でなく E/W のラベル
      %N                   = +/- でなく N/S のラベル
\end{verbatim}
\postverbatim
例えば、コマンド {\bf set format x {\tt"}\%Ddeg \%5.2mmin \%E{\tt"}} は、x 座標の -1.51
という値を {\bf {\tt"} 1deg 30.60min W{\tt"}} のように表示します。

xtics がデフォルトの状態のまま ({\bf set xtics numeric}) の場合は、座標は
10 進数の度で表示し、{\bf format} も上の特別な記号ではなく、通常の数値書式
が使われているとみなされます。

マップ上にラベルを置くなど、軸の目盛りとは異なる場所で度/分/秒の出力を
するには、strptime に相対的時間書式指定 \%tH \%tM \%tS を使用できます。以
下参照: {\bf time\_specifiers (p.~\pageref{time_specifiers})\index{time specifiers}}, {\bf strptime (p.~\pageref{strptime})\index{strptime}}。
\subsubsection*{Xtics logscale}
\addcontentsline{toc}{subsubsection}{Xtics logscale}
\label{set xtics logscale}%
\label{xtics logscale}%
\index{logscale}%
対数軸に沿う刻みに対して {\bf logscale} 属性を設定すると、刻みの間隔は公差
ではなく、公比と解釈されます。例:
\preverbatim
\begin{verbatim}
    # y=20 y=200 y=2000 y=20000 に刻み列を作成
    set log y
    set ytics 20, 10, 50000 logscale
\end{verbatim}
\postverbatim
y=50000 は 2*10\verb+^+x の数列には含まれないので、そこには刻みはつかないこと
に注意してください。logscale 属性が無効の場合、軸の増分は、たとえ対数
軸であっても公差として扱われます。例:
\preverbatim
\begin{verbatim}
    # y=20 y=40 y=60 ... y=200 に刻みを作成
    set log y
    set yrange [20:200]
    set ytics 20 nologscale
\end{verbatim}
\postverbatim
{\bf logscale} 属性は、コマンド {\bf set log} で自動的に設定されるので、2 つ目
の例のような軸の刻み間隔に強制的にしたい場合でなければ、通常はこのキー
ワードは必要ありません。
\subsubsection*{Xtics rangelimited}
\addcontentsline{toc}{subsubsection}{Xtics rangelimited}
\label{set xtics rangelimited}%
\label{xtics rangelimited}%
\label{rangelimited}%
\index{rangelimited}%
\label{range-frame}%
\index{range frame}%
このオプションは、自動的に生成される軸の目盛りの見出しと、描画されたデ
ータで実際に与えられる範囲に対応する描画境界の両方を制限します。これは
描画に対する現在の範囲制限とは無関係であることに注意してください。例え
ばデータ {\tt"}file.dat{\tt"} のデータがすべて 2 $<$ y $<$ 4 の範囲にあるとすると、
以下のコマンドは、左側の描画境界 (y 軸) は y の範囲全体 ([0:10]) のこ
の部分 ([2:4]) のみが描画され、この範囲 ([2:4]) の軸の目盛りのみが作ら
れる描画を生成します。つまり、描画は y の範囲全体 ([0:10]) に拡大され
ますが、左の境界は 0 から 2 の間、4 から 10 の間は空白領域となります。
このスタイルは、{\bf 範囲枠} グラフ (range-frame) とも呼ばれます。
\preverbatim
\begin{verbatim}
     set border 3
     set yrange [0:10]
     set ytics nomirror rangelimited
     plot "file.dat"
\end{verbatim}
\postverbatim
\subsection*{Xy 平面位置 (xyplane)}
\addcontentsline{toc}{subsection}{Xy 平面位置 (xyplane)}
\label{commands set xyplane}%
\label{commands show xyplane}%
\label{set xyplane}%
\label{show xyplane}%
\label{xyplane}%
\index{xyplane}%
{\bf set xyplane} コマンドは 3D 描画で描かれる xy 平面の位置を調整するのに
使われます。後方互換性のために、{\tt"}set ticslevel{\tt"} も同じ意味のコマンドと
して使うことができます。

書式:
\preverbatim
\begin{verbatim}
     set xyplane at <zvalue>
     set xyplane relative <frac>
     set ticslevel <frac>        # set xyplane relative と同等
     show xyplane
\end{verbatim}
\postverbatim

{\bf set xyplane relative $<$frac$>$} は、xy 平面を Z 軸の範囲のどこに置くかを
決定します。$<$frac$>$ には、xy 平面と z の一番下の位置との差の、z 軸の範
囲全体に対する割合を与えます。デフォルトの値は 0.5 です。負の値も許さ
れていますが、そうすると 3 つの軸の目盛りの見出しが重なる可能性があり
ます。

もう一つの形式である {\bf set xyplane at $<$zvalue$>$} は、現在の z の範囲を気
にすることなく、指定した z の値の位置に xy 平面を固定します。よって、
x,y,z 軸を共通の原点を通るようにするには、{\bf set xyplane at 0} とすれば
いいことになります。

以下も参照: {\bf set view (p.~\pageref{set view})\index{view}}, {\bf set zeroaxis (p.~\pageref{set zeroaxis})\index{zeroaxis}}。
\subsection*{Xzeroaxis}
\addcontentsline{toc}{subsection}{Xzeroaxis}
\label{commands set xzeroaxis}%
\label{commands unset xzeroaxis}%
\label{commands show xzeroaxis}%
\label{set xzeroaxis}%
\label{unset xzeroaxis}%
\label{show xzeroaxis}%
\label{xzeroaxis}%
\index{xzeroaxis}%
\label{noxzeroaxis}%
\index{noxzeroaxis}%
コマンド {\bf set xzeroaxis} は y = 0 の直線を描きます。詳細に関しては、以
下参照: {\bf set zeroaxis (p.~\pageref{set zeroaxis})\index{zeroaxis}}。
\subsection*{Y2data}
\addcontentsline{toc}{subsection}{Y2data}
\label{commands set y2data}%
\label{commands show y2data}%
\label{set y2data}%
\label{show y2data}%
\label{y2data}%
\index{y2data}%
コマンド {\bf set y2data} は y2 (右) 軸のデータを時系列 (日時) 形式に設定
します。詳細は、以下参照: {\bf set xdata (p.~\pageref{set xdata})\index{xdata}}。
\subsection*{Y2dtics}
\addcontentsline{toc}{subsection}{Y2dtics}
\label{commands set y2dtics}%
\label{commands unset y2dtics}%
\label{set y2dtics}%
\label{unset y2dtics}%
\label{show y2dtics}%
\label{y2dtics}%
\index{y2dtics}%
\label{noy2dtics}%
\index{noy2dtics}%
コマンド {\bf set y2dtics} は y2 (右) 軸の目盛りを曜日に変更します。詳細は、
以下参照: {\bf set xdtics (p.~\pageref{set xdtics})\index{xdtics}}。
\subsection*{Y2label}
\addcontentsline{toc}{subsection}{Y2label}
\label{commands set y2label}%
\label{commands show y2label}%
\label{set y2label}%
\label{show y2label}%
\label{y2label}%
\index{y2label}%
コマンド {\bf set y2label} は y2 (右) 軸の見出しを設定します。詳細は、以下
参照: {\bf set xlabel (p.~\pageref{set xlabel})\index{xlabel}}。
\subsection*{Y2mtics}
\addcontentsline{toc}{subsection}{Y2mtics}
\label{commands set y2mtics}%
\label{commands unset y2mtics}%
\label{commands show y2mtics}%
\label{set y2mtics}%
\label{unset y2mtics}%
\label{show y2mtics}%
\label{y2mtics}%
\index{y2mtics}%
\label{noy2mtics}%
\index{noy2mtics}%
コマンド {\bf set y2mtics} は y2 (右) 軸の目盛りを 1 年の各月に変更します。
詳細は、以下参照: {\bf set xmtics (p.~\pageref{set xmtics})\index{xmtics}}。
\subsection*{Y2range}
\addcontentsline{toc}{subsection}{Y2range}
\label{commands set y2range}%
\label{commands show y2range}%
\label{set y2range}%
\label{show y2range}%
\label{y2range}%
\index{y2range}%
コマンド {\bf set y2range} は y2 (右) 軸の表示される垂直範囲を設定します。
コマンドオプションのすべての説明については、以下参照: {\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。以
下も参照: {\bf set link (p.~\pageref{set link})\index{link}}。
\subsection*{Y2tics}
\addcontentsline{toc}{subsection}{Y2tics}
\label{commands set y2tics}%
\label{commands unset y2tics}%
\label{commands show y2tics}%
\label{set y2tics}%
\label{unset y2tics}%
\label{show y2tics}%
\label{y2tics}%
\index{y2tics}%
\label{noy2tics}%
\index{noy2tics}%
コマンド {\bf set y2tics} は y2 (右) 軸の、見出し付けされる大目盛りの制御
を行ないます。詳細は、以下参照: {\bf set xtics (p.~\pageref{set xtics})\index{xtics}}。
\subsection*{Y2zeroaxis}
\addcontentsline{toc}{subsection}{Y2zeroaxis}
\label{commands set y2zeroaxis}%
\label{commands unset y2zeroaxis}%
\label{commands show y2zeroaxis}%
\label{set y2zeroaxis}%
\label{unset y2zeroaxis}%
\label{show y2zeroaxis}%
\label{y2zeroaxis}%
\index{y2zeroaxis}%
\label{noy2zeroaxis}%
\index{noy2zeroaxis}%
コマンド {\bf set y2zeroaxis} は、原点を通る y2 (右) 軸 (x2 = 0) を描きま
す。詳細は、以下参照: {\bf set zeroaxis (p.~\pageref{set zeroaxis})\index{zeroaxis}}。
\subsection*{Ydata}
\addcontentsline{toc}{subsection}{Ydata}
\label{commands set ydata}%
\label{commands show ydata}%
\label{set ydata}%
\label{show ydata}%
\label{ydata}%
\index{ydata}%
コマンド {\bf set ydata} は y 軸のデータを時系列 (日時) 形式に設定します。
以下参照: {\bf set xdata (p.~\pageref{set xdata})\index{xdata}}。
\subsection*{Ydtics}
\addcontentsline{toc}{subsection}{Ydtics}
\label{commands set ydtics}%
\label{commands unset ydtics}%
\label{commands show ydtics}%
\label{set ydtics}%
\label{unset ydtics}%
\label{show ydtics}%
\label{ydtics}%
\index{ydtics}%
\label{noydtics}%
\index{noydtics}%
コマンド {\bf set ydtics} は y 軸の目盛りを曜日に変更します。詳細は、以下
参照: {\bf set xdtics (p.~\pageref{set xdtics})\index{xdtics}}。
\subsection*{Ylabel}
\addcontentsline{toc}{subsection}{Ylabel}
\label{commands set ylabel}%
\label{commands show ylabel}%
\label{set ylabel}%
\label{show ylabel}%
\label{ylabel}%
\index{ylabel}%
このコマンドは y 軸の見出しを設定します。以下参照: {\bf set xlabel (p.~\pageref{set xlabel})\index{xlabel}}。
\subsection*{Ymtics}
\addcontentsline{toc}{subsection}{Ymtics}
\label{commands set ymtics}%
\label{commands unset ymtics}%
\label{commands show ymtics}%
\label{set ymtics}%
\label{unset ymtics}%
\label{show ymtics}%
\label{ymtics}%
\index{ymtics}%
\label{noymtics}%
\index{noymtics}%
コマンド {\bf set ymtics} は、y 軸の目盛りを月に変更します。詳細は、以下
参照: {\bf set xmtics (p.~\pageref{set xmtics})\index{xmtics}}。
\subsection*{Yrange}
\addcontentsline{toc}{subsection}{Yrange}
\label{commands set yrange}%
\label{commands show yrange}%
\label{set yrange}%
\label{show yrange}%
\label{yrange}%
\index{yrange}%
コマンド {\bf set yrange} は、y 方向の垂直範囲を設定します。詳細は、以下
参照: {\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。
\subsection*{Ytics}
\addcontentsline{toc}{subsection}{Ytics}
\label{commands set ytics}%
\label{commands unset ytics}%
\label{commands show ytics}%
\label{set ytics}%
\label{unset ytics}%
\label{show ytics}%
\label{ytics}%
\index{ytics}%
\label{noytics}%
\index{noytics}%
コマンド {\bf set ytics} は y 軸の (見出し付けされる) 大目盛りを制御します。
詳細は、以下参照: {\bf set xtics (p.~\pageref{set xtics})\index{xtics}}。
\subsection*{Yzeroaxis}
\addcontentsline{toc}{subsection}{Yzeroaxis}
\label{commands set yzeroaxis}%
\label{commands unset yzeroaxis}%
\label{commands show yzeroaxis}%
\label{set yzeroaxis}%
\label{unset yzeroaxis}%
\label{show yzeroaxis}%
\label{yzeroaxis}%
\index{yzeroaxis}%
\label{noyzeroaxis}%
\index{noyzeroaxis}%
コマンド {\bf set yzeroaxis} は x = 0 の直線 (y 軸) を書きます。詳細は、以
下参照: {\bf set zeroaxis (p.~\pageref{set zeroaxis})\index{zeroaxis}}。
\subsection*{Zdata}
\addcontentsline{toc}{subsection}{Zdata}
\label{commands set zdata}%
\label{commands show zdata}%
\label{set zdata}%
\label{show zdata}%
\label{zdata}%
\index{zdata}%
コマンド {\bf set zdata} は z 軸のデータを時系列 (日時) 形式に設定します。
以下参照: {\bf set xdata (p.~\pageref{set xdata})\index{xdata}}。
\subsection*{Zdtics}
\addcontentsline{toc}{subsection}{Zdtics}
\label{commands set zdtics}%
\label{commands unset zdtics}%
\label{commands show zdtics}%
\label{set zdtics}%
\label{unset zdtics}%
\label{show zdtics}%
\label{zdtics}%
\index{zdtics}%
\label{nozdtics}%
\index{nozdtics}%
コマンド {\bf set zdtics} は z 軸の目盛りを曜日に変更します。詳細は、以下
参照: {\bf set xdtics (p.~\pageref{set xdtics})\index{xdtics}}。
\subsection*{Zzeroaxis}
\addcontentsline{toc}{subsection}{Zzeroaxis}
\label{commands set zzeroaxis}%
\label{commands unset zzeroaxis}%
\label{commands show zzeroaxis}%
\label{set zzeroaxis}%
\label{unset zzeroaxis}%
\label{show zzeroaxis}%
\label{zzeroaxis}%
\index{zzeroaxis}%
\label{nozzeroaxis}%
\index{nozzeroaxis}%
コマンド {\bf set zzeroaxis} は (x=0,y=0) を通る直線を描きます。これは、2D
描画、および {\bf set view map} での splot では効力を持ちません。詳細は、
以下参照: {\bf set zeroaxis (p.~\pageref{set zeroaxis})\index{zeroaxis}}, {\bf set xyplane (p.~\pageref{set xyplane})\index{xyplane}}。
\subsection*{Cbdata}
\addcontentsline{toc}{subsection}{Cbdata}
\label{commands set cbdata}%
\label{commands show cbdata}%
\label{set cbdata}%
\label{show cbdata}%
\label{cbdata}%
\index{cbdata}%
このコマンドはカラーボックス軸のデータを時系列 (日時) 形式に式に設定し
ます。以下参照: {\bf set xdata (p.~\pageref{set xdata})\index{xdata}}。
\subsection*{Cbdtics}
\addcontentsline{toc}{subsection}{Cbdtics}
\label{commands set cbdtics}%
\label{commands unset cbdtics}%
\label{commands show cbdtics}%
\label{set cbdtics}%
\label{unset cbdtics}%
\label{show cbdtics}%
\label{cbdtics}%
\index{cbdtics}%
\label{nocbdtics}%
\index{nocbdtics}%
コマンド {\bf cbdtics} はカラーボックス軸の目盛りの刻みを曜日に変換します。
詳細は、以下参照: {\bf set xdtics (p.~\pageref{set xdtics})\index{xdtics}}。
\subsection*{ゼロ閾値 (zero)}
\addcontentsline{toc}{subsection}{ゼロ閾値 (zero)}
\label{commands set zero}%
\label{commands show zero}%
\label{set zero}%
\label{show zero}%
\label{zero}%
\index{zero}%
{\bf zero} の値は、0.0 に近いデフォルトの閾値を表します。

書式:
\preverbatim
\begin{verbatim}
     set zero <expression>
     show zero
\end{verbatim}
\postverbatim

{\bf gnuplot} は、(複素数値を持つ点の描画においては) その値の虚数部分の絶
対値が {\bf zero} 閾値より大きい場合 (つまり実数でない値を持つ点) は、その
点を描画しません。この閾値は {\bf gnuplot} の他の様々な部分においてその
(大まかな) 数値誤差の閾値としても使われています。デフォルトの {\bf zero} の
値は 1e-8 です。1e-3 (= 典型的なビットマップディスプレイの解像度の逆数)
より大きい {\bf zero} の値は設定すべきではないでしょうが、{\bf zero} を 0.0 と
設定するのは意味のないことではありません。
\subsection*{ゼロ軸 (zeroaxis)}
\addcontentsline{toc}{subsection}{ゼロ軸 (zeroaxis)}
\label{commands set zeroaxis}%
\label{commands unset zeroaxis}%
\label{commands show zeroaxis}%
\label{set zeroaxis}%
\label{unset zeroaxis}%
\label{show zeroaxis}%
\label{zeroaxis}%
\index{zeroaxis}%
x 軸は {\bf set xzeroaxis} によって描かれ、{\bf unset xzeroaxis} によって削除
されます。同様の y, x2, y2, z 軸用のコマンドが同様の働きをします。
{\bf set zeroaxis ...} (前置詞なし) は、x, y, z 軸すべてに機能します。

書式:
\preverbatim
\begin{verbatim}
     set {x|x2|y|y2|z}zeroaxis { {linestyle | ls <line_style>}
                                | {linetype | lt <line_type>}
                                  {linewidth | lw <line_width>}
                                  {linecolor | lc <colorspec>}
                                  {dashtype | dt <dashtype>} }
     unset {x|x2|y|y2|z}zeroaxis
     show {x|y|z}zeroaxis
\end{verbatim}
\postverbatim


デフォルトでは、これらのオプションはオフになっています。選択された 0
の軸は $<$line\_type$>$ の線の型、$<$line\_width$>$ の線の幅、$<$colorspec$>$ の色、
$<$dashtype$>$ の点線/破線パターンで (いずれも現在使用している出力形式が
サポートしていれば)、あるいはあらかじめ定義された $<$line\_style$>$ のスタ
イルで描かれます。以下参照: {\bf set style line (p.~\pageref{set style line})\index{line}}。

線の型を指定しなければ、軸は通常の軸の線の型 (型 0) で描かれます。

例:

y=0 の軸を見えるように簡単に書く場合:

\preverbatim
\begin{verbatim}
      set xzeroaxis
\end{verbatim}
\postverbatim

太い線にして、違った色、または点線パターンにしたい場合:

\preverbatim
\begin{verbatim}
      set xzeroaxis linetype 3 linewidth 2.5
\end{verbatim}
\postverbatim
\subsection*{Zlabel}
\addcontentsline{toc}{subsection}{Zlabel}
\label{commands set zlabel}%
\label{commands show zlabel}%
\label{set zlabel}%
\label{show zlabel}%
\label{zlabel}%
\index{zlabel}%
このコマンドは z 軸の見出しを設定します。以下参照: {\bf set xlabel (p.~\pageref{set xlabel})\index{xlabel}}。
\subsection*{Zmtics}
\addcontentsline{toc}{subsection}{Zmtics}
\label{commands set zmtics}%
\label{commands unset zmtics}%
\label{commands show zmtics}%
\label{set zmtics}%
\label{unset zmtics}%
\label{show zmtics}%
\label{zmtics}%
\index{zmtics}%
\label{nozmtics}%
\index{nozmtics}%
コマンド {\bf set zmtics} は z 軸の目盛りを月に変更します。詳細は、以下
参照: {\bf set xmtics (p.~\pageref{set xmtics})\index{xmtics}}。
\subsection*{Zrange}
\addcontentsline{toc}{subsection}{Zrange}
\label{commands set zrange}%
\label{commands show zrange}%
\label{set zrange}%
\label{show zrange}%
\label{zrange}%
\index{zrange}%
コマンド {\bf set zrange} は z 軸方向に表示される範囲を設定します。このコ
マンドは {\bf splot} にのみ有効で、{\bf plot} では無視されます。詳細は、以下
参照: {\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。
\subsection*{Ztics}
\addcontentsline{toc}{subsection}{Ztics}
\label{commands set ztics}%
\label{commands unset ztics}%
\label{commands show ztics}%
\label{set ztics}%
\label{unset ztics}%
\label{show ztics}%
\label{ztics}%
\index{ztics}%
\label{noztics}%
\index{noztics}%
コマンド {\bf set ztics} は z 軸の (見出し付けされる) 大目盛りを制御します。
詳細は、以下参照: {\bf set xtics (p.~\pageref{set xtics})\index{xtics}}。
\subsection*{Cblabel}
\addcontentsline{toc}{subsection}{Cblabel}
\label{commands set cblabel}%
\label{commands show cblabel}%
\label{set cblabel}%
\label{show cblabel}%
\label{cblabel}%
\index{cblabel}%
このコマンドはカラーボックス軸の見出しを設定します。以下参照:
{\bf set xlabel (p.~\pageref{set xlabel})\index{xlabel}}。
\subsection*{Cbmtics}
\addcontentsline{toc}{subsection}{Cbmtics}
\label{commands set cbmtics}%
\label{commands unset cbmtics}%
\label{commands show cbmtics}%
\label{set cbmtics}%
\label{unset cbmtics}%
\label{show cbmtics}%
\label{cbmtics}%
\index{cbmtics}%
\label{nocbmtics}%
\index{nocbmtics}%
コマンド {\bf set cbmtics} はカラーボックス軸の目盛りの見出しを月に変換し
ます。詳細は、以下参照: {\bf set xmtics (p.~\pageref{set xmtics})\index{xmtics}}。
\subsection*{Cbrange}
\addcontentsline{toc}{subsection}{Cbrange}
\label{commands set cbrange}%
\label{commands show cbrange}%
\label{set cbrange}%
\label{show cbrange}%
\label{cbrange}%
\index{cbrange}%
コマンド {\bf set cbrange} は、スタイル {\bf with pm3d}, {\bf with image} や
{\bf with palette} などによって現在のパレット ({\bf palette}) を使って色付けさ
れる値の範囲を設定します。その範囲外の値に対しては、最も近い限界の値の
色が使用されます。

カラーボックス軸 (cb-軸) が {\bf splot} で自動縮尺されている場合は、その
カラーボックスの範囲は {\bf zrange} が使われます。{\bf splot ... pm3d$|$palette}
で描画される点は、異なる {\bf zrange} と {\bf cbrange} を使うことでフィルタリ
ングできます。

{\bf set cbrange} の書式に関する詳細は、以下参照: {\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。以下も参照:
{\bf set palette (p.~\pageref{set palette})\index{palette}}, {\bf set colorbox (p.~\pageref{set colorbox})\index{colorbox}}。
\subsection*{Cbtics}
\addcontentsline{toc}{subsection}{Cbtics}
\label{commands set cbtics}%
\label{commands unset cbtics}%
\label{commands show cbtics}%
\label{set cbtics}%
\label{unset cbtics}%
\label{show cbtics}%
\label{cbtics}%
\index{cbtics}%
\label{nocbtics}%
\index{nocbtics}%
コマンド {\bf set cbtics} はカラーボックス軸の (見出し付けされる) 大目盛り
を制御します。詳細は、以下参照: {\bf set xtics (p.~\pageref{set xtics})\index{xtics}}。
\section*{シェルコマンド (shell)}
\addcontentsline{toc}{section}{シェルコマンド (shell)}
\label{commands shell}%
\label{shell}%
\index{shell}%
{\bf shell} コマンドは対話的なシェルを起動します。{\bf gnuplot} に戻るには、
Unix ならば {\bf exit} もしくは END-OF-FILE 文字を、MS-DOS か OS/2 ならば
{\bf exit} を入力して下さい。

コマンド {\bf shell} は、それ以外の gnuplot コマンドライン上のものをすべて
無視します。そうでなく、シェルに直ちにコマンド文字列を渡したい場合は、
関数 {\bf system} か、ショートカット {\bf !} を使用してください。以下参照:
{\bf system (p.~\pageref{system})\index{system}}。

例:

\preverbatim
\begin{verbatim}
     shell
     system "print previous_plot.ps"
     ! print previous_plot.ps
     current_time = system("date")
\end{verbatim}
\postverbatim

\section*{Show}
\addcontentsline{toc}{section}{Show}
ほとんどの {\bf set} コマンドには、それに対応する、特別なオプションを持た
ない show コマンドがあります。例:
\preverbatim
\begin{verbatim}
    show linetype 3
\end{verbatim}
\postverbatim
は、以下のように、前のコマンドから現在有効な属性を報告します:
\preverbatim
\begin{verbatim}
    set linetype 3 linewidth 2 dashpattern '.-'
\end{verbatim}
\postverbatim
この形式とは離れる 2, 3 の {\bf show} コマンドについては別に説明します。
\subsection*{Show colornames}
\addcontentsline{toc}{subsection}{Show colornames}
\label{commands show colornames}%
\label{show colornames}%
\label{show palette colornames}%
gnuplot は 100 程度の色名を持っています (以下参照: {\bf colornames (p.~\pageref{colornames})\index{colornames}})。コマ
ンド {\bf show colornames} を使えば、その出力形式に対する色名の一覧を出力
できます。
新しい色名を設定する方法は今はありません。
\subsection*{Show functions}
\addcontentsline{toc}{subsection}{Show functions}
\label{commands show functions}%
\label{show functions}%
{\bf show functions} コマンドはユーザーが定義した関数とその定義内容を表示
します。

書式:
\preverbatim
\begin{verbatim}
     show functions
\end{verbatim}
\postverbatim

gnuplot における関数の定義とその使い方については、以下参照:
{\bf expressions (p.~\pageref{expressions})\index{expressions}}。
以下も参照
\href{http://www.gnuplot.info/demo/spline.html}{\tt ユーザ定義関数でのスプライン (spline.dem)
}

および
\href{http://www.gnuplot.info/demo/airfoil.html}{\tt 関数と複素変数を翼に使用 (airfoil.dem)。
}

\subsection*{Show palette}
\addcontentsline{toc}{subsection}{Show palette}
\label{commands show palette}%
\label{show palette}%
\index{palette}%
書式:
\preverbatim
\begin{verbatim}
     show palette
     show palette palette {<ncolors>} {{float | int | hex}}
     show palette gradient
     show palette rgbformulae
     test palette
\end{verbatim}
\postverbatim

コマンド {\bf test palette} は、現在のパレットの R,G,B 成分の対応状態
(profile) を描画し、その値をデータブロック \$PALETTE に残させます。

\subsubsection*{Show palette gradient}
\addcontentsline{toc}{subsubsection}{Show palette gradient}
\label{commands show palette gradient}%
\label{show palette gradient}%
{\bf show palette gradient} は、コマンド {\bf set palette defined} で前に定義
した部分的なグラデーションを表示します。現在のパレットが、rgbformulae
に基づくか、または前に定義した値の集合に基づく場合は、このコマンドは何
もしません。

\subsubsection*{Show palette palette}
\addcontentsline{toc}{subsubsection}{Show palette palette}
\label{commands show palette palette}%
\label{show palette palette}%
\preverbatim
\begin{verbatim}
     show palette palette {<ncolors>} {{float | int | hex}}
\end{verbatim}
\postverbatim

{\bf show palette palette $<$n$>$} は、現在のパレットの各エントリの色成分の表
を、画面、または {\bf set print} で指定されたファイルに書き出します。デフ
ォルトでは、連続なパレットを 128 区切りに標本化します。$<$ncolors$>$ を指
定すると、パレットを (128 でなく) その数の区切りに均等に標本化します。
デフォルトは、以下の長形式での一覧表示です:
\preverbatim
\begin{verbatim}
    0. gray=0.0000, (r,g,b)=(0.0000,0.0000,0.0000), #000000 =   0   0   0
    1. gray=0.1111, (r,g,b)=(0.3333,0.0014,0.6428), #5500a4 =  85   0 164
    2. gray=0.2222, (r,g,b)=(0.4714,0.0110,0.9848), #7803fb = 120   3 251
    ...
\end{verbatim}
\postverbatim
後にオプションキーワード {\bf float}, {\bf int}, {\bf hex} をつけると、代わりに各
エントリに一つの色成分表現のみを表示します。
\preverbatim
\begin{verbatim}
       int:        85       0     164
     float:    0.3333  0.0014  0.6428
       hex:  0x5500a4
\end{verbatim}
\postverbatim

{\bf set print} を使ってこの出力をファイルに書き出すことで、gnuplot の現在
のカラーパレットを Octave のような他の画像処理アプリケーションに取り込
むことができます。

{\bf set print} を使ってこの出力をデータブロックに書き出すことで、現在のパ
レットを保存できますが、それにより有効なパレットを再定義した後でも、後
の plot コマンドで保存したパレットを使えるようになります。これは、カラ
ーボックスがただ現在有効なパレットだけを表現する一方で、複数のパレット
で描画するグラフを作成することを可能にします。

\subsubsection*{Show palette rgbformulae}
\addcontentsline{toc}{subsubsection}{Show palette rgbformulae}
\label{commands show palette rgbformulae}%
\label{show palette rgbformulae}%
{\bf show palette rgbformulae} は、定義済で利用できる、灰色階調値からカラ
ーへの変換公式を表示します。これは、現在のパレットの状態を表示「しては
いません。」

\subsection*{Show plot}
\addcontentsline{toc}{subsection}{Show plot}
\label{commands show plot}%
\label{show plot}%
コマンド {\bf show plot} は直前の描画コマンド、すなわち {\bf replot} コマンド
で再現される、直前に行われた {\bf plot} や {\bf splot} コマンドを表示します。

さらにコマンド{\bf show plot add2history} は、この現在の描画コマンドを
{\bf history} に書き出します。これは、{\bf replot} を使って直前の描画コマンド
に曲線を追加した場合、そしてコマンド行全体をすぐに編集したい場合に便利
です。
\subsection*{Show variables}
\addcontentsline{toc}{subsection}{Show variables}
\label{commands show variables}%
\label{show variables all}%
\label{show variables}%
{\bf show variables} コマンドはユーザ定義変数と内部変数の現在の値の一覧を
表示します。gnuplot は、GPVAL\_, MOUSE\_, FIT\_, TERM\_ で始まる名前を持つ
変数を内部で定義しています。

書式:
\preverbatim
\begin{verbatim}
     show variables      # GPVAL_ で始まるもの以外の変数を表示
     show variables all  # GPVAL_ で始まるものも含め全ての変数を表示
     show variables NAME # NAME で始まる変数のみを表示
\end{verbatim}
\postverbatim

\section*{Splot}
\addcontentsline{toc}{section}{Splot}
\label{commands splot}%
\label{splot}%
\index{splot}%
{\bf splot} は 3 次元描画のためのコマンドです (もちろんご存知でしょうが、
実際にはその 2 次元への射影)。それは、{\bf plot} コマンドの 3 次元版です。
{\bf splot} は、それぞれ単一の x, y, z 軸を提供するだけで、{\bf plot} で用意さ
れている第 2 軸 x2, y2 のようなものはありません。

2 次元と 3 次元描画の両方で使える多くのオプションについては、以下参照:
{\bf plot (p.~\pageref{plot})\index{plot}}。

書式:
\preverbatim
\begin{verbatim}
     splot {<ranges>}
           {<iteration>}
           <function> | {{<file name> | <datablock name>}
                         {datafile-modifiers}}
                      | <voxelgridname>
                      | keyentry
           {<title-spec>} {with <style>}
           {, {definitions{,}} <function> ...}
\end{verbatim}
\postverbatim

コマンド {\bf splot} は、関数から生成されたデータ、またはデータファイルか
ら読み込んだデータ、または事前に保存された名前付きデータブロックのデー
タを処理します。データファイル名は、通常引用符で囲んだ文字列として与え
ます。関数は 1 本の数式ですが、媒介変数モード (parametric) では 3 つの
数式の組として与えます。

バージョン 5.4 以降、{\bf splot} はボクセルデータの操作ができます。以下
参照: {\bf voxel-grids (p.~\pageref{voxel-grids})\index{voxel-grids}}, {\bf set vgrid (p.~\pageref{set vgrid})\index{vgrid}}, {\bf vxrange (p.~\pageref{vxrange})\index{vxrange}}。有効なボクセル格子データ
は、スタイル {\bf with dots}, {\bf with points}, {\bf with isosurface} のいずれか
を使って描画できます。ボクセル格子データ値は、これら以外の描画スタイル
でも {\bf using} 指定を使えば参照でき、例えば色を割り当てるなどに利用でき
ます。

デフォルトでは、{\bf splot} は描画されるデータの下に完全な xy 面を描きます。
z の一番下の目盛りと xy 平面の位置関係は {\bf set xyplane} で変更できます。
{\bf splot} の射影の向きは {\bf set view} で制御できます。詳細は、以下参照:
{\bf set view (p.~\pageref{set view})\index{view}}, {\bf set xyplane (p.~\pageref{set xyplane})\index{xyplane}}。

{\bf splot} コマンドの範囲の指定の書式は {\bf plot} の場合と同じです。媒介変数
モード (parametric) でなければ、範囲指定は以下の順で、
\preverbatim
\begin{verbatim}
     splot [<xrange>][<yrange>][<zrange>] ...
\end{verbatim}
\postverbatim
媒介変数モード (parametric) では、範囲指定は以下の順で与えなければいけ
ません:
\preverbatim
\begin{verbatim}
     splot [<urange>][<vrange>][<xrange>][<yrange>][<zrange>] ...
\end{verbatim}
\postverbatim

{\bf title} オプションも {\bf plot} と同じです。{\bf with} も {\bf plot} とほぼ同じで
すが、2 次元の描画スタイル全部が使えるわけではありません。

{\bf datafile} オプションにはさらに違いがあります。

媒介変数モード (parametric) や関数を利用して曲面を描く別の方法に、疑似
ファイル '++' を利用して xy 平面の格子の上に標本点を生成するやり方があ
ります。

以下も参照: {\bf show plot (p.~\pageref{show plot})\index{plot}}, {\bf set view map (p.~\pageref{set view map})\index{map}}, {\bf sampling (p.~\pageref{sampling})\index{sampling}}。
\subsection*{データファイル (datafile)}
\addcontentsline{toc}{subsection}{データファイル (datafile)}
\label{commands splot datafile}%
\label{splot datafile}%
{\bf plot} と同じように、{\bf splot} でファイルからグラフを生成できます。

書式:
\preverbatim
\begin{verbatim}
     splot '<file_name>' {binary <binary list>} {{nonuniform|sparse} matrix}
                         {index <index list>} {every <every list>}
                         {using <using list>}
                         {smooth <option>} {if (<expression>)}
\end{verbatim}
\postverbatim

{\bf {\tt"}{\tt"}} や {\bf {\tt"}-{\tt"}} といった特別なファイル名も {\bf plot} と同様に許されます。以
下参照: {\bf special-filenames (p.~\pageref{special-filenames})\index{special-filenames}}。

キーワード {\bf binary} や {\bf matrix} はそのデータが特別な形であることを、
{\bf index} は多重データ集合ファイルからどのデータ集合を選んで描画するかを、
{\bf every} は各データ集合からどの部分行を選んで描画するかを、
{\bf using} は各データ行からどのように列を選ぶかを指定します。

{\bf index} と {\bf every} オプションは {\bf plot} の場合と同じように振舞います。
{\bf using} も、{\bf using} のリストが 2 つでなく 3 つ必要であるということを
除いては同様です。

{\bf plot} のオプションである {\bf smooth} は {\bf splot} では利用できません。しか
し、{\bf cntrparam} や {\bf dgrid3d} が、制限されてはいますが平滑化のために用
意されています。

データファイルの形式は、各点が (x,y,z) の 3 つ組である以外は、本質的に
{\bf plot} と同じです。もし一つの値だけが与えられれば、それは z として使わ
れ、ブロック番号が y として、そして x はそのブロック内での番号が使われ
ます。もし 2 つ、あるいは 4 つの値が与えられれば、{\bf gnuplot} はその最後
の値を pm3d plot での色の計算に使います。3 つの値は (x,y,z) の組と見な
されます。他に値があれば、それは一般に誤差と見なされます。それは {\bf fit}
で使うことが可能です。

{\bf splot} のデータファイルでは、1 行の空行はデータのブロック分離子です。
{\bf splot} は個々のブロックを、関数の y-孤立線と同じものとして扱います。
1 行の空行で分離されている点同士は線分で結ばれることはありません。全て
のブロックが全く同じ点の数を持つ場合、{\bf gnuplot} はブロックを横断し、各
ブロックの対応する点同士を結ぶ孤立線を描きます。これは {\tt"}grid data{\tt"} と
呼ばれ、曲面の描画、等高線の描画 ({\bf set contour})、隠線処理
({\bf set hidden3d}) では、この形のデータであることが必要となります。以下
も参照: {\bf splot grid\_data (p.~\pageref{splot grid_data})\index{grid data}}。

\subsubsection*{Matrix}
\addcontentsline{toc}{subsubsection}{Matrix}
\label{commands plot datafile matrix}%
\label{commands splot datafile matrix}%
\label{plot datafile matrix}%
\label{splot datafile matrix}%
\label{binary matrix}%
\label{matrix}%
\index{matrix}%
テキストファイルやバイナリファイルから、matrix データを色々な形式
({\bf uniform}, {\bf nonuniform}, {\bf sparse}) で入力することができます。

1 つ目の形式は、x, y の座標が一様 (uniform) であると仮定して、その値を
この一様な格子の matrix のそれぞれの要素 M[i,j] に割り当てる方法です。
割り当てられる x 座標は [0:NCOLS-1] の範囲の整数です。
割り当てられる y 座標は [0:NROWS-1] の範囲の整数です。
これは、テキストデータに対してはデフォルトですが、バイナリデータに対し
てはそうではありません。
例や追加キーワードについては以下参照: {\bf matrix uniform (p.~\pageref{matrix uniform})\index{uniform}}。

2 つ目の形式は、x, y 座標が明示された非一様 (nonuniform) な格子で、入
力データの最初の行を y 座標、最初の列を x 座標とみなします。
バイナリ入力データでは、1 行目の最初の要素は、列数でなければいけません。
{\bf binary matrix} 入力ではこれがデフォルトですが、テキスト入力データに対
しては追加キーワード {\bf nonuniform} が必要になります。
例に関しては以下参照: {\bf nonuniform (p.~\pageref{nonuniform})\index{nonuniform}}。

{\bf sparse matrix} の形式は一様な格子を定義しますが、その格子内の任意の個
数のそれぞれの点の値を、入力ファイルから、任意の順の一行に一つのデータ
として、読み取ります。これは、主に不完全なデータから温度分布図
(heatmap) を生成する目的のものです。
例に関しては以下参照: {\bf sparse (p.~\pageref{sparse})\index{sparse}}。

\paragraph*{Uniform matrix}
\addcontentsline{toc}{paragraph}{Uniform matrix}
\label{commands plot datafile matrix uniform}%
\label{commands splot datafile matrix uniform}%
\label{datafile matrix uniform}%
\label{matrix uniform}%
\label{binary matrix uniform}%
\label{uniform}%
\index{uniform}%
一様 (uniform) な matrix データを描画するコマンドの例:
\preverbatim
\begin{verbatim}
    splot 'file' matrix using 1:2:3          # テキストデータ
    splot 'file' binary general using 1:2:3  # バイナリデータ
\end{verbatim}
\postverbatim

一様な格子の matrix データでは、各ブロックの z の値は一行で一度に読ま
れます。すなわち、
\preverbatim
\begin{verbatim}
   z11 z12 z13 z14 ...
   z21 z22 z23 z24 ...
   z31 z32 z33 z34 ...
\end{verbatim}
\postverbatim
等。

テキストデータに対しては、1 行目がデータでなく列ラベルを持つ場合、追加
キーワード {\bf columnheaders} を使ってください。同様に、各行の最初の要素
がデータでなくラベルである場合は、追加キーワード {\bf rowheaders} を使用し
てください。以下は、その両方を使用する例です:
\preverbatim
\begin{verbatim}
   $DATA << EOD
   xxx A   B   C   D
   aa  z11 z12 z13 z14
   bb  z21 z22 z23 z24
   cc  z31 z32 z33 z34
   EOD
   plot $DATA matrix columnheaders rowheaders with image
\end{verbatim}
\postverbatim

テキストデータでは、空行やコメント行は配列データを終了させ、新たなデー
タブロックを開始します。いつものことですが、{\bf splot} コマンドの {\bf index}
オプションを使ってファイル内のデータブロックを自由に選択できます。オプ
ション columnheaders がある場合は、それは最初のデータブロックにのみ適
用します。
\paragraph*{Nonuniform matrix}
\addcontentsline{toc}{paragraph}{Nonuniform matrix}
\label{commands plot datafile matrix nonuniform}%
\label{commands splot datafile matrix nonuniform}%
\label{datafile matrix nonuniform}%
\label{matrix nonuniform}%
\label{binary matrix nonuniform}%
\label{nonuniform}%
\index{nonuniform}%
入力データの最初の行は y 座標を持ちます。
入力データの最初の列は x 座標を持ちます。
バイナリ入力データでは、1 行目の最初の要素は列数でなければいけません
(テキストデータではその番号は無視されます)。

非一様 (nonuniform) な matrix データを描画するコマンドの例:
\preverbatim
\begin{verbatim}
    splot 'file' nonuniform matrix using 1:2:3  # テキストデータ
    splot 'file' binary matrix using 1:2:3      # バイナリデータ
\end{verbatim}
\postverbatim

よって、非一様な matrix データの構造は以下のようになります:

\preverbatim
\begin{verbatim}
     <N+1>  <x0>   <x1>   <x2>  ...  <xN>
      <y0> <z0,0> <z0,1> <z0,2> ... <z0,N>
      <y1> <z1,0> <z1,1> <z1,2> ... <z1,N>
       :      :      :      :   ...    :
\end{verbatim}
\postverbatim

これらは以下のような 3 つの数字の組に変換されます:
\preverbatim
\begin{verbatim}
     <x0> <y0> <z0,0>
     <x0> <y1> <z0,1>
     <x0> <y2> <z0,2>
      :    :     :
     <x0> <yN> <z0,N>
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     <x1> <y0> <z1,0>
     <x1> <y1> <z1,1>
      :    :     :
\end{verbatim}
\postverbatim

そして、これらの 3 つの数字の組は {\bf gnuplot} の孤立線に変換され、その後
{\bf gnuplot} が通常の方法で描画の残りを行います。
\paragraph*{Sparse matrix}
\addcontentsline{toc}{paragraph}{Sparse matrix}
\label{datafile sparse matrix}%
\label{sparse}%
\index{sparse}%
書式:
\preverbatim
\begin{verbatim}
     sparse matrix=(cols,rows) origin=(x0,y0) dx=<delx> dy=<dely>
\\
 \end{verbatim}
\postverbatim
{\bf sparse} な matrix 形式は、{\bf plot} や {\bf splot} のコマンドラインの一部分
として、一様な格子を定義します。最初は格子は空です。
その後で入力ファイルから個々の点の値を任意個、一行から一つずつ読み込み、
それをそれに最も近い格子点に割り当てて行きます。すなわち、データ行の
\preverbatim
\begin{verbatim}
     x y value
\end{verbatim}
\postverbatim
が、
\preverbatim
\begin{verbatim}
     i = (x - x0) / delx
     j = (y - y0) / dely
     matrix[i,j] = value
\end{verbatim}
\postverbatim
のように評価されます。
matrix のサイズは必須です。
{\bf origin} (オプション) のデフォルトは origin=(0,0) です。
{\bf dx} (オプション) のデフォルトは dx=1 です。
{\bf dy} (オプション) のデフォルトは dy=dx です。

この形式は、順序がバラバラで、不完全であってもよいデータから {\bf image},
{\bf rgbimage}, {\bf rgbalpha} 描画スタイルなどを用いて温度分布図 (heatmap) を
生成するのが本来の使用目的です。以下の例は、与えらえた上三角成分のみか
ら 4x4 の温度分布図の形式の離散 matrix を生成します。
\gpinsetfigure{figure_sparsematrix}
\preverbatim
\begin{verbatim}
     $DATA << EOD
     1 1 10
     1 2 20
     1 3 30
     1 4 40
     2 2 10
     2 3 50
     2 4 60
     3 3 10
     3 4 20
     4 4 10
     EOD
     plot $DATA sparse matrix=(4,4) origin=(1,1) with image
\end{verbatim}
\postverbatim

\paragraph*{Every}
\addcontentsline{toc}{paragraph}{Every}
\label{datafile matrix every}%
\label{matrix every}%
キーワード {\bf every} は、matrix データに対して使用すると特別な意味を持ち
ます。データの点やブロックに適用するのでなく、データの行、列に適用しま
す。matrix データの行と列の番号は、0 から始まり、よって番号 N の列は、
(N+1) 番目であることに注意してください。
書式:
\preverbatim
\begin{verbatim}
     plot 'file' matrix every {<column_incr>}
                              {:{<row_incr>}
                                {:{<start_column>}
                                  {:{<start_row>}
                                    {:{<end_column>}
                                      {:<end_row>}}}}}
\end{verbatim}
\postverbatim
例:
\preverbatim
\begin{verbatim}
     plot 'file' matrix every :::N::N   # N 番の行のすべての値を描画
     plot 'file' matrix every ::3::7    # すべての行の 3-7 列を描画
     plot 'file' matrix every ::3:0:7:4 # [3,0], [7,4] 枠の部分行列
\end{verbatim}
\postverbatim
\paragraph*{Examples}
\addcontentsline{toc}{paragraph}{Examples}
\label{commands plot datafile matrix examples}%
\label{commands splot datafile matrix examples}%
\label{datafile matrix examples}%
\label{matrix examples}%
\label{binary matrix examples}%
行列やベクトルの操作のサブルーチン (C による) が {\bf binary.c} に用意され
ています。バイナリデータを書くルーチンは

\preverbatim
\begin{verbatim}
     int fwrite_matrix(file,m,nrl,nrl,ncl,nch,row_title,column_title)
\end{verbatim}
\postverbatim

です。これらのサブルーチンを使う例が {\bf bf\_test.c} として用意されていて、
これはデモファイル {\bf demo/binary.dem} 用に複数のバイナリファイルを生成
します。

{\bf plot} での使用法:
\preverbatim
\begin{verbatim}
   plot 'a.dat' matrix
   plot 'a.dat' matrix using 1:3
   plot 'a.gpbin' {matrix} binary using 1:3
\end{verbatim}
\postverbatim
これらは配列の行を描画し、using 2:3 とすれば配列の列を描画、using 1:2
は、点の座標を描画します (多分無意味です)。オプション {\bf every} を適用す
ることで明示的に行や列を指定できます。

例 -- テキストデータファイルの配列の軸の拡大:
\preverbatim
\begin{verbatim}
   splot `a.dat` matrix using (1+$1):(1+$2*10):3
\end{verbatim}
\postverbatim

例 -- テキストデータファイルの配列の第 3 行の描画:
\preverbatim
\begin{verbatim}
   plot 'a.dat' matrix using 1:3 every 1:999:1:2
\end{verbatim}
\postverbatim
(行は 0 から数えられるので、3 ではなくて 2 を指定します)。

Gnuplot は、{\bf array}, {\bf record}, {\bf format}, {\bf filetype} などの general バ
イナリ形式を特定するようなキーワードをつけずにオプション {\bf binary} を使
うことで、matrix バイナリファイルを読み込むことができます。その他の変換
用の general バイナリキーワードは、matrix バイナリファイルにも適用でき
るでしょう。(詳細は、以下参照: {\bf binary general (p.~\pageref{binary general})\index{general}})
\subsubsection*{データファイルの例}
\addcontentsline{toc}{subsubsection}{データファイルの例}
\label{commands splot datafile example}%
\label{splot datafile example}%
\label{splot example}%
以下は3 次元データファイルの描画の単純な一つの例です。

\preverbatim
\begin{verbatim}
     splot 'datafile.dat'
\end{verbatim}
\postverbatim

ここで、{\tt"}datafile.dat{\tt"} は以下を含むとします:

\preverbatim
\begin{verbatim}
     # The valley of the Gnu.
        0 0 10
        0 1 10
        0 2 10
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
        1 0 10
        1 1 5
        1 2 10
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
        2 0 10
        2 1 1
        2 2 10
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
        3 0 10
        3 1 0
        3 2 10
\end{verbatim}
\postverbatim

この {\tt"}datafile.dat{\tt"} は 4*3 の格子 (それぞれ 3 点からなるブロックの
4 つの行) を定義することに注意して下さい。行 (ブロック) は 1 行の空行
で区切られます。

x の値はそれぞれのブロックの中で定数になっていることに注意して下さい。
もし y を定数の値とし、隠線処理が有効な状態で描画すると、その曲面は裏
返しで書かれることになります。

格子状データ (grid data) に対して、個々のブロック内で x の値を定数とし
ておく必要はありませんし、同じ場所の y の値を同じ値に揃えておく必要も
ありません。{\bf gnuplot} は個々のブロック内の点の数が等しいということを必
要としているだけです。しかし、等高線を導くのに用いられる曲面の網目は、
対応する点を列的に選んで結ぶため、不揃いの格子データに対する曲面の描画
への影響は予想できません。それはケースバイケースの原理でテストすべきで
しょう。
\subsection*{格子状データ (grid data)}
\addcontentsline{toc}{subsection}{格子状データ (grid data)}
\label{commands splot grid_data}%
\label{splot grid_data}%
\label{grid_data}%
\index{grid data}%
3 次元描画のためのルーチンは、個々の網目の格子においては一つの標本点と
一つのデータ点がある、という形の格子状データ用に設計されています。各デ
ータ点は、関数の値を評価すること (以下参照: {\bf set isosamples (p.~\pageref{set isosamples})\index{isosamples}})、または
データファイルを読み込むこと (以下参照: {\bf splot datafile (p.~\pageref{splot datafile})\index{datafile}}) によって生成
されます。{\tt"}孤立線{\tt"} という言葉は関数に対しても、データに対してもその網
目の線を表すものとして用いられます。網目は、必ずしも x, y に関する長方
形でなくてもよく、u,v で媒介変数表示されても構わないことに注意して下さ
い。以下参照: {\bf set isosamples (p.~\pageref{set isosamples})\index{isosamples}}。

しかし、{\bf gnuplot} はそのような形式を必ずしも必要とはしません。例えば関
数の場合は、{\bf samples} は {\bf isosamples} と違っていても構いません。すなわ
ち、x-孤立線のうち、1 本の y-孤立線と交わないものがいくつかあることが
あります。データファイルの場合は、個々のブロックのばらついた点の個数が
全て同じであれば、{\tt"}孤立線は{\tt"} はブロックの点を結び、{\tt"}横断孤立線{\tt"} は各ブ
ロックの対応する点同士を結び、{\tt"}曲面{\tt"} を作ろうとします。どちらの場合で
も、等高線、および隠線処理モードは点が意図したフォーマットであった場合
とは違った描画を与えることになります。

ばらつきのあるデータは、描画前に格子に合わせることが可能です。以下参照:
{\bf set dgrid3d (p.~\pageref{set dgrid3d})\index{dgrid3d}}。

等高線に関するコードは、y-孤立線の点と、それに対応する隣の y-孤立線上
の点の間の線分に沿っての z の張力を計測します。よって、x-孤立線に、
y-孤立線との交点とはならないような標本点があるような曲面に対しては、
{\bf splot} の等高線はそのような標本点を無視することになります。以下を試して
みて下さい:
\preverbatim
\begin{verbatim}
      set xrange [-pi/2:pi/2]; set yrange [-pi/2:pi/2]
      set style function lp
      set contour
      set isosamples 10,10; set samples 10,10;
      splot cos(x)*cos(y)
      set samples 4,10; replot
      set samples 10,4; replot
\end{verbatim}
\postverbatim

\subsection*{Splot の曲面 (splot surfaces)}
\addcontentsline{toc}{subsection}{Splot の曲面 (splot surfaces)}
\label{commands splot surfaces}%
\label{splot surfaces}%
{\bf splot} は点の集まりとして、あるいは、それらの点を結ぶことによって曲面
を表示することができます。{\bf plot} と同様に、点はデータファイルから読む
こともできますし、指定された区間で関数の値を評価して得ることもできます。
以下参照: {\bf set isosamples (p.~\pageref{set isosamples})\index{isosamples}}。曲面は、各点を線分で結ぶことで近似的に作ら
れます。以下参照: {\bf set surface (p.~\pageref{set surface})\index{surface}}。そしてその場合曲面は、{\bf set hidden3d}
で不透明にもできます。3 次元曲面を眺める向きは、{\bf set view} で変更でき
ます。

さらに、格子状のデータ点に対しては、{\bf splot} は同じ高さを持つ点を補間す
ることができ (以下参照: {\bf set contour (p.~\pageref{set contour})\index{contour}})、そしてそれらを結んで等高線を描
くことができます。さらに、その結び方には真直な線分や滑らかな線を使うこ
とができます (以下参照: {\bf set cntrparam (p.~\pageref{set cntrparam})\index{cntrparam}})。関数は、常に {\bf set isosamples}
と {\bf set samples} で決定される格子状データとして評価されます。一方、フ
ァイルのデータは、{\bf data-file} に書かれているような格子状データフォーマ
ットにするか、あるいは格子データを生成する (以下参照: {\bf set dgrid3d (p.~\pageref{set dgrid3d})\index{dgrid3d}})
ということをしなければそうはなりません。

等高線は曲面の上に表示することもできますし、底面に射影することもできま
す。底面への射影は、ファイルに書き出すこともでき、そしてそれを {\bf plot}
で再び読み込んで {\bf plot} のより強い整形能力を生かすこともできます。
\subsection*{ボクセル格子データ (voxel-grid)}
\addcontentsline{toc}{subsection}{ボクセル格子データ (voxel-grid)}
\label{commands splot voxel-grid}%
\label{splot voxel-grids}%
\label{voxel-grids}%
\index{voxel grids}%
書式:
\preverbatim
\begin{verbatim}
    splot $voxelgridname with {dots|points} {above <threshold>} ...
    splot $voxelgridname with isosurface {level <threshold>} ...
\end{verbatim}
\postverbatim

ボクセルデータは、指定した閾値 (threshold; デフォルトは 0) よりも大き
い値の個々のボクセルに印を付けるように、with dots か with points で描
画できます。色、点種、線幅の属性は、通常と同様に追加指定できます。

多くの視方向に対して、ボクセル格子点は、ディスプレイ上で互いを隠したり
モアレを生成したりします。それらの副作用は、jitter を導入してドットや
点を実際のボクセル格子座標からランダムにずらすことで避けることが可能で
す。以下参照: {\bf set jitter (p.~\pageref{set jitter})\index{jitter}}。

密なボクセル格子は、{\bf pointinterval} 属性 (省略形 {\bf pi}) を使うことで、
点の数を減らすよう標本化レベルを下げることが可能です。
\preverbatim
\begin{verbatim}
    splot $vgrid with points pointtype 6 pointinterval 2
\end{verbatim}
\postverbatim

{\bf with isosurface} は、指定された閾値より大きいボクセル全体を包む、3 次
元モザイク型曲面を生成します。この曲面は、閾値それ自体を通過するよう、
線形補間により調整されて配置されます。

以下参照: {\bf set vgrid (p.~\pageref{set vgrid})\index{vgrid}}, {\bf vfill (p.~\pageref{vfill})\index{vfill}}。
以下のデモも参照してください: {\bf vplot.dem}, {\bf isosurface.dem}。

\section*{Stats (簡単な統計情報)}
\addcontentsline{toc}{section}{Stats (簡単な統計情報)}
\label{commands stats}%
\label{stats}%
\index{stats}%
\label{statistics}%
\index{statistics}%
\index{filter}%
書式:
\preverbatim
\begin{verbatim}
    stats {<ranges>} 'filename' {matrix | using N{:M}} {name 'prefix'}
          {{no}output}
    stats $voxelgridname {name 'prefix'}
\end{verbatim}
\postverbatim

このコマンドは、ファイルの 1 列、または 2 列のデータの簡単な統計情報を
提供します。using 指定子は、plot コマンドと同じ形で解釈されますが、
{\bf index}, {\bf every}, {\bf using} 指定に関する詳細については以下参照: {\bf plot (p.~\pageref{plot})\index{plot}}。
データ点は、その解析の前に xrange, yrange に従ってフィルタにかけられま
す。以下参照: {\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。その情報はデフォルトではスクリーンに出力さ
れますが、コマンド {\bf set print} を先に使うことで出力をファイルにリダイ
レクトしたり、オプション {\bf nooutput} を使うことで出力しないようにするこ
ともできます。

ファイルが見つからない、あるいはファイルから読み込めない場合は、致命的
ではない警告を発行します。これは、プログラムエラーを伴わないファイルの
存在確認に利用できます。以下参照: {\bf stats test (p.~\pageref{stats test})\index{test}}。

画面出力に加え、gnuplot は個々の統計情報を 3 つの変数グループに保存し
ます。
1 番目の変数グループは、どんなデータが並んでいるかを示しますが、先頭行
の配列は、{\bf set datafile columnheaders} が有効な場合にのみ作成されます:

\begin{center}
\begin{tabular}{|lcl|} \hline
\verb@STATS_records@      & $~~N~~$  &  範囲内のデータ行の総数 $N$ \\
\verb@STATS_outofrange@   & $~~~~~$  &  範囲外として除かれた行数 \\
\verb@STATS_invalid@      & $~~~~~$  &  無効/不完全/欠損データ行の総数 \\
\verb@STATS_blank@        & $~~~~~$  &  空行の総数 \\
\verb@STATS_blocks@       & $~~~~~$  &  ファイル内のデータの index ブロック数 \\
\verb@STATS_columns@      & $~~~~~$  &  データ先頭行の列数 \\
\verb@STATS_column_header@& $~~~~~$  &  先頭行に見つかった文字列を保持する配列 \\
\hline
\end{tabular}
\end{center}

2 番目の変数グループは、1 つの列の、範囲内のデータの性質を示します。こ
の列は y の値として扱われます。y 軸が自動縮尺の場合は、対象とする範囲
に限界はありませんが、そうでなければ範囲 [ymin:ymax] 内の値のみを対象
とします。

2 つの列を同時に 1 回の {\bf stats} コマンドで解析する場合は、各変数名に
{\tt"}\_x{\tt"}, {\tt"}\_y{\tt"} という接尾辞を追加します。例えば STATS\_min\_x は、1 つ目の列
のデータの最小値で、STATS\_min\_y は 2 つ目の列のデータの最小値を意味し
ます。この場合、点は xrange と yrange の両方で検査することでふるいにか
けます。


\begin{center}
\begin{tabular}{|lrll|} \hline
\verb@STATS_min@ && $\min(y)$ &  範囲内のデータ点の最小値 \\
\verb@STATS_max@ && $\max(y)$ &  範囲内のデータ点の最大値 \\
\verb@STATS_index_min@ && $i \mid y_i = \min(y)$ &  data[i] == STATS\_min となる添字 i \\
\verb@STATS_index_max@ && $i \mid y_i = \max(y)$ &  data[i] == STATS\_max となる添字 i \\
\verb@STATS_mean@ & $\bar{y}=$ & $\frac{1}{N}\sum{y}$ &  範囲内のデータ点の平均値 \\
\verb@STATS_stddev@ & $\sigma_y=$ & $\sqrt{\frac{1}{N}{\sum{{(y-\bar{y})}^2}}}$ &  範囲内のデータ点の標本標準偏差 \\
\verb@STATS_ssd@ & $s_y=$ & $\sqrt{\frac{1}{N-1}{\sum{{(y-\bar{y})}^2}}}$ &  範囲内のデータ点の不偏標準偏差 \\
\verb@STATS_lo_quartile@ && ~ &  第一 (下の) 四分位境界値 \\
\verb@STATS_median@ && ~ &  メジアン値 (第二四分位境界値) \\
\verb@STATS_up_quartile@ && ~ &  第三 (上の) 四分位境界値 \\
\verb@STATS_sum@ && $\sum{y}$ &  和 \\
\verb@STATS_sumsq@ && $\sum{y^2}$ &  平方和 \\
\verb@STATS_skewness@ && $\frac{1}{N\sigma^3}\sum{(y-\bar{y})^3}$ &  範囲内のデータ点の歪度 \\
\verb@STATS_kurtosis@ && $\frac{1}{N\sigma^4}\sum{(y-\bar{y})^4}$ &  範囲内のデータ点の尖度 \\
\verb@STATS_adev@ && $\frac{1}{N}\sum{|{y}-\bar{y}|}$ &  範囲内のデータ点の平均絶対偏差 \\
\verb@STATS_mean_err@ && $\sigma_y / \sqrt{N}$ &  平均値の標準誤差 \\
\verb@STATS_stddev_err@ && $\sigma_y / \sqrt{2N}$ &  標準偏差の標準誤差 \\
\verb@STATS_skewness_err@ && $\sqrt{6/N}$ &  歪度の標準誤差 \\
\verb@STATS_kurtosis_err@ && $\sqrt{24/N}$ &  尖度の標準誤差 \\
\hline
\end{tabular}
\end{center}

3 番目の変数グループは、2 つの列のデータの解析専用です。

\begin{center}
\begin{tabular}{|lll|} \hline
\verb@STATS_correlation@ &   &  x と y の不偏相関係数 \\
\verb@STATS_slope@       &   &  回帰直線 y = Ax + B の係数 A \\
\verb@STATS_slope_err@   &   &  A の不確かさ \\
\verb@STATS_intercept@   &   &  回帰直線 y = Ax + B の係数 B \\
\verb@STATS_intercept_err@ &   &  B の不確かさ \\
\verb@STATS_sumxy@       &   &  積和 (x*y の和) \\
\verb@STATS_pos_min_y@   &   &  y の最小値を与える x 座標 \\
\verb@STATS_pos_max_y@   &   &  y の最大値を与える x 座標 \\
\hline
\end{tabular}
\end{center}

キーワード {\bf matrix} は、入力が行列形式であることを指示します (以下参照:
{\bf matrix (p.~\pageref{matrix})\index{matrix}})。通常の統計情報は、すべての行列要素を考慮して生成します。行
列のサイズは、変数 STATS\_size\_x, STATS\_size\_y に保存します。

\begin{center}
\begin{tabular}{|lll|} \hline
\verb@STATS_size_x@ &   &  行列の列数 \\
\verb@STATS_size_y@ &   &  行列の列数 \\
\hline
\end{tabular}
\end{center}

STATS\_index\_xxx で示される添字の値は、plot コマンドの第 0 疑似列 (\$0)
の値に対応し、最初の点は添字は 0、最後の点の添字は N-1 となります。

メジアンと四分位境界値を探す際はデータの値をソートし、点の総数 N が奇
数の場合は、その (N+1)/2 番目の値をメジアン値とし、N が偶数の場合は、
N/2 番目と (N+2)/2 番目の値の平均値をメジアン値とします。四分位境界値
も同様に処理します。

その後の描画に注釈をつけるためにコマンド {\bf stats} を利用した例について
は、以下を参照してください。
\href{http://www.gnuplot.info/demo/stats.html}{\tt stats.dem。
}


現在のバージョンの gnuplot の {\bf stats} コマンドでは、日時フィールド
({\bf set xdata time} や {\bf set ydata time}) でなければ対数軸のデータも処理
できます。この制限は、将来のバージョンで緩和されるでしょう。
\subsection*{接頭辞名 (name)}
\addcontentsline{toc}{subsection}{接頭辞名 (name)}
\label{stats name}%
\label{statistics name}%
2 つ以上のファイルやデータ列からの統計情報を並列に扱うことができれば便
利ですので、変数のデフォルトの接頭辞である {\tt"}STATS{\tt"} を、オプション
{\bf name} でユーザが指定する文字列に置き換えることができるようになってい
ます。例えば、異なる 2 つのファイルのそれぞれの 2 列目のデータの平均値
は以下のようにして比較できます:
\preverbatim
\begin{verbatim}
    stats "file1.dat" using 2 name "A"
    stats "file2.dat" using 2 name "B"
    if (A_mean < B_mean) {...}
\end{verbatim}
\postverbatim

\index{columnheader}%
name として文字列定数を用意する代わりに、キーワード {\bf columnheader} や
関数 {\bf columnheader(N)} により、データファイルの 1 行目から取得した任意
の文字列から接頭辞を生成することもできます:
\preverbatim
\begin{verbatim}
    do for [COL=5:8] { stats 'datafile' using COL name columnheader }
\end{verbatim}
\postverbatim
\subsection*{ファイルの存在確認 (test for existence of a file)}
\addcontentsline{toc}{subsection}{ファイルの存在確認 (test for existence of a file)}
\label{stats test}%
\label{statistics test}%
存在しない、あるいは読み込めないファイルを描画しようとすると、それはエ
ラーとなり、スクリプトや繰り返しの先を停止してしまいます。それを避ける
には、以下の例のように stats コマンドが利用できます。
\preverbatim
\begin{verbatim}
    do for [i=first:last] {
        filename = sprintf("file%02d.dat", i)
        stats filename nooutput
        if (GPVAL_ERRNO) {
            print GPVAL_ERRMSG
            continue
        }
        plot filename title filename
    }
\end{verbatim}
\postverbatim
\subsection*{Voxelgrid}
\addcontentsline{toc}{subsection}{Voxelgrid}
\label{stats voxelgrid}%
\label{statistics voxelgrid}%
\preverbatim
\begin{verbatim}
    stats $vgridname {name "prefix"}
\end{verbatim}
\postverbatim
コマンド stats は、ボクセル格子の内容を問い合わせるのにも使えます。こ
れは、{\bf show vgrid} と同じ情報を生成しますが、これはそれをスクリプトで
利用できる変数に保存できます。


\begin{center}
\begin{tabular}{|lll|} \hline
\verb@STATS_min@ &   &  格子のすべてのボクセルの 0 でない最小値 \\
\verb@STATS_max@       &   &  格子のすべてのボクセルの最大値 \\
\verb@STATS_mean@   &   &  格子の 0 でないボクセルの平均値 \\
\verb@STATS_stddev@   &   &  0 でないボクセル値の標準偏差 \\
\verb@STATS_ssum@   &   &  格子のすべてのボクセルの和 \\
\verb@STATS_nonzero@ &   &  0 でないボクセル数 \\
\hline
\end{tabular}
\end{center}

\section*{System}
\addcontentsline{toc}{section}{System}
\label{commands system}%
\label{system}%
\index{system}%
書式:
\preverbatim
\begin{verbatim}
     system "command string"
     ! command string
     output = system("command string")
     show variable GPVAL_SYSTEM
\end{verbatim}
\postverbatim

{\bf system {\tt"}command{\tt"}} は、オペレーティングシステムのデフォルトシェルを呼
び出し、そのサブプロセスとして {\tt"}command{\tt"} を実行します。関数として
{\bf system({\tt"}command{\tt"})} を呼び出した場合は、そのサブプロセスの標準出力から
の文字ストリームを文字列として返します。最後に改行がついている場合は、
それは結果文字列からは除去されます。以下も参照: {\bf backquotes (p.~\pageref{backquotes})\index{backquotes}}。

そのサブプロセスの終了コードは、変数 GPVAL\_SYSTEM\_ERRNO と
GPVAL\_SYSTEM\_ERRMSG に保存されます。しかし、もしコマンド文字列が 2 つ
以上のプログラムを呼び出している場合は、そのうちの一つのプログラムがエ
ラーを出しても、{\tt"}成功{\tt"} を返す可能性があることに注意してください。例え
ば、file = system({\tt"}ls -1 *.plt $|$ tail -1{\tt"}) は、*.plt ファイルが一つも
ない場合でも {\tt"}成功{\tt"} が返ります。それは、{\bf ls} が失敗しても {\bf tail} は成
功するからです。

\section*{Test}
\addcontentsline{toc}{section}{Test}
\label{commands test}%
\label{test palette}%
\label{test}%
\index{test}%
このコマンドは、出力形式やパレットでどのような出力が行なえるかを画像で
テストし表示します。

書式:
\preverbatim
\begin{verbatim}
     test {terminal | palette}
\end{verbatim}
\postverbatim

{\bf test} または {\bf test terminal} は、現在使用中の出力形式 ({\bf terminal}) で
使える線の種類、点の種類、または利用可能なその他の描画を生成します。

{\bf test palette} は、R(z),G(z),B(z) (0$<$=z$<$=1) の状態を描画します。これら
は、{\bf set palatte} で定義した現在のカラーパレットの RGB 成分を示します。
また、RGB を灰色階調に写像する NTSC 係数を用いて計算された視光度も描画
します。さらにこのコマンドはこの対応関係を \$PALETTE という名前のデータ
ブロックに取り込みます。
\section*{Toggle}
\addcontentsline{toc}{section}{Toggle}
\label{commands toggle}%
\label{toggle}%
\index{toggle}%
書式:
\preverbatim
\begin{verbatim}
     toggle {<plotno> | "plottitle" | all}
\end{verbatim}
\postverbatim

このコマンドは、対話型出力形式 (qt, wxt, x11) で表示されているグラフの
key エントリ上で左クリックしたのと同じ効果を与えます。すなわち、そのグ
ラフが表示されていればそれを消し、グラフが消えていれば再び表示します。
{\bf toggle all} は、ホットキー {\tt"}i{\tt"} と同様、有効なグラフすべてに作用します。
{\bf toggle {\tt"}title{\tt"}} の形式は、グラフのタイトルと完全に一致するタイトルを
指定する必要がありますが、{\bf toggle {\tt"}ti*{\tt"}} の場合は、グラフのタイトルと
'*' の前の部分が一致する最初のグラフに作用します。現在の出力形式が対話
型でない場合は、コマンド toggle は何もしません。
\section*{Undefine}
\addcontentsline{toc}{section}{Undefine}
\label{commands undefine}%
\label{undefine}%
\index{undefine}%
1 つ、または複数の定義済みのユーザ変数を削除します。これは、初期化テス
トを含むようなスクリプトの状態をリセットするのに便利でしょう。

変数名には、最後の文字としてワイルドカード文字 {\bf *} を使うことができま
す。ワイルドカード文字が見つかると、それより前の部分で始まるすべての変
数を削除します。これは、共通の接頭語を使っている複数の変数を削除するの
に便利でしょう。ただし、ワイルドカード文字は変数名の最後にしか使えない
ことに注意してください。{\bf undefine} にワイルドカード文字のみを引数とし
て与えた場合は何もしません。

例:

\preverbatim
\begin{verbatim}
     undefine foo foo1 foo2
     if (!exists("foo")) load "initialize.gp"
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     bar = 1; bar1 = 2; bar2 = 3
     undefine bar*                 # 3 つの変数を全部削除
\end{verbatim}
\postverbatim

\section*{Unset}
\addcontentsline{toc}{section}{Unset}
\label{commands unset}%
\label{unset}%
\index{unset}%
\index{iteration}%
コマンド {\bf set} で設定したオプションは、それに対応した {\bf unset} コマンド
によってそのデフォルトの値に戻すことが可能です。{\bf unset} コマンドには繰
り返し節も利用できます。以下参照: {\bf plot for (p.~\pageref{plot for})\index{for}}。

例:
\preverbatim
\begin{verbatim}
     set xtics mirror rotate by -45 0,10,100
     ...
     unset xtics
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # 番号 100 から 200 までのラベルを unset
     unset for [i=100:200] label i
\end{verbatim}
\postverbatim
\subsection*{Linetype}
\addcontentsline{toc}{subsection}{Linetype}
\label{unset linetype}%
書式:
\preverbatim
\begin{verbatim}
     unset linetype N
\end{verbatim}
\postverbatim
以前に単一の線種に割り当てたすべての特性を削除します。この後にこの線種
を使用した場合、特性、色は現在の出力形式にデフォルトで設定されているも
のを使用します (すなわち gnuplot 4.6 より前のバージョンで有効だった、
いわゆるデフォルトの線種)。
\subsection*{Monochrome}
\addcontentsline{toc}{subsection}{Monochrome}
\label{unset monochrome}%
現在有効な白黒の線種をカラーの線種に切り替えます。{\bf set color} と同等で
す。
\subsection*{Output}
\addcontentsline{toc}{subsection}{Output}
\label{unset output}%
複数のグラフを一つの出力ファイルに書き出すことができる出力形式もあるの
で、描画の後で出力ファイルを自動的には閉じません。よってそのファイルを
安全に印刷等をするためには、まず明示的に {\bf unset out} や {\bf set output}
とすることで前のファイルを閉じた上で新しいファイルを開いてください。
\subsection*{Terminal}
\addcontentsline{toc}{subsection}{Terminal}
\label{unset terminal}%
プログラムの最初に有効になるデフォルトの出力形式は、個々のシステム環境、
gnuplot のコンパイルオプション、および環境変数 GNUTERM に依存します。
そのデフォルトが何であっても、gnuplot はそれを内部変数 GNUTERM に保存
しています。コマンド {\bf unset terminal} は、その初期初期出力形式に復帰し、
これは、{\bf set terminal GNUTERM} とすることと同じです。しかし、GNUTERM
が出力形式名の後に terminal オプションも含んでいる場合は、その代わりに
{\bf set terminal @GNUTERM} とする必要があります。
\subsection*{Warnings}
\addcontentsline{toc}{subsection}{Warnings}
\label{unset warnings}%
\label{set warnings}%
\preverbatim
\begin{verbatim}
    set warnings
    unset warnings
\end{verbatim}
\postverbatim

致命的ではないエラーに対する警告メッセージは、通常はファイル名、行番号、
およびその警告を引き起こすコマンドラインをエコーした後で stderr に出力
します。この警告は、コマンド {\bf unset warnings} で抑制できますが、その場
合でも必要ならコマンド {\bf warn {\tt"}message{\tt"}} で警告を生成できます。それは明
示的に {\bf set warnings} で有効にするまで抑制し続けます。
\section*{Update}
\addcontentsline{toc}{section}{Update}
\label{commands update}%
\label{update}%
\index{update}%
注意: このコマンドは「非推奨」です。代わりに {\bf save fit} を使用してくだ
さい。
\section*{Vclear}
\addcontentsline{toc}{section}{Vclear}
\label{commands vclear}%
\label{vclear}%
\index{vclear}%
書式:
\preverbatim
\begin{verbatim}
    vclear {$gridname}
\end{verbatim}
\postverbatim
これは、存在するボクセル格子内のすべてのボクセル値を 0 にリセットしま
す。格子名を指定しない場合、現在有効な格子をクリアします。
\section*{Vfill}
\addcontentsline{toc}{section}{Vfill}
\label{commands vfill}%
\label{vfill}%
\index{vfill}%
\label{vgfill}%
\index{vgfill}%
\index{VoxelDistance}%
\label{VoxelDistance}%
\index{VoxelDistance}%
\index{GridDistance}%
\label{GridDistance}%
\index{GridDistance}%
書式:
\preverbatim
\begin{verbatim}
    vfill  FILE using x:y:z:radius:(<expression>)
    vgfill FILE using x:y:z:radius:(<expression>)
\end{verbatim}
\postverbatim

コマンド {\bf vfill} は、それがグラフを生成する代わりに現在有効なボクセル
格子データを変更する以外は、コマンド {\bf plot} と同様に作用します。入力フ
ァイルから読み込んだ各点に対して、その点を含むボクセル、及び中心が
(x,y,z) で指定半径 (radius) の球に含まれるその他すべてのボクセルが以下
のように増やされます:
\begin{itemize}\setlength{\itemsep}{0pt}
\item
 (x,y,z) からそのボクセルのユーザ座標での原点 (vx,vy,vz) までの距離を
 ユーザ変数 VoxelDistance にセットします。
\item
 (x,y,z) からそのボクセルの格子座標での原点までの距離をユーザ変数
 GridDistance にセットします。
\item
 {\bf using} 指定の 5 番目に指定した数式を評価します。この数式は、新しい
 VoxelDistance や GridDistance の値を使用できます。
\item
 voxel(vx,vy,vz) += その数式 $<$expression$>$ の評価結果
\end{itemize}
例:
\preverbatim
\begin{verbatim}
    vfill "file.dat" using 1:2:3:(3.0):(1.0)
\end{verbatim}
\postverbatim
このコマンドは、file.dat 内の各点の半径 3.0 の球の中にあるすべてのボク
セル値を 1 増やします。この球と重なるボクセルの個数は、ユーザ座標での
格子の間隔に依存します。

\preverbatim
\begin{verbatim}
    vgfill "file.dat" using 1:2:3:(2):(1.0)
\end{verbatim}
\postverbatim
このコマンドは、現在の点を中心とするボクセルの 5x5x5 の立方体内のボク
セルの値を 1 増やします。半径の {\tt"}2{\tt"} は、x の両方向、y の両方向、z の両
方向に丁度 2 ボクセルずつ広げることと解釈し、これはそれらの軸に関する
ユーザ座標の相対的なスケールとは無関係です。

例:
\preverbatim
\begin{verbatim}
    vfill "file.dat" using 1:2:3:4:(VoxelDistance < 1 ? 1 : 1/VoxelDistance)
\end{verbatim}
\postverbatim
このコマンドは、各点の 4 列目で決まる半径の円内のすべてのボクセル値を
変更します。各ボクセルに追加される増分値は、データ点からの距離に従って
減少します。

{\bf vfill} と {\bf vgfill} は、現在のボクセル格子の存在する値を常に増加させる
ことに注意してください。
ボクセル一つを 0 にリセットするには、{\bf voxel(x,y,z) = 0} を使用し、
すべての格子を 0 にリセットするには、{\bf vclear} を使用してください。
\section*{Warn}
\addcontentsline{toc}{section}{Warn}
\label{warn}%
\index{warn}%
\label{commands warn}%
書式:
\preverbatim
\begin{verbatim}
     warn "message"
\end{verbatim}
\postverbatim
コマンド {\bf warn} は、実質的に {\bf printerr} と同じですが、指定したメッセー
ジを stderr に出力する前に、現在のファイル名か関数ブロック名、および現
在の行番号を追加するところが違います。
{\bf printerr} とは違い、{\bf warn} の出力は {\bf unset warnings} で抑制されます。
\section*{While}
\addcontentsline{toc}{section}{While}
\label{while}%
\index{while}%
\label{commands while}%
書式:
\preverbatim
\begin{verbatim}
     while (<expr>) {
         <commands>
     }
\end{verbatim}
\postverbatim
これは、コマンドのブロックを、$<$expr$>$ が 0 でない値と評価される間、繰り
返し実行します。このコマンドは、古い形式 (かっこなし) の if/else 構文
と一緒に使うことはできません。以下も参照: {\bf do (p.~\pageref{do})\index{do}}, {\bf continue (p.~\pageref{continue})\index{continue}}, {\bf break (p.~\pageref{break})\index{break}}。
\newpage\part{出力形式 (Terminal)}
\label{complete list of terminals}%
\section*{出力形式の一覧}
\addcontentsline{toc}{section}{出力形式の一覧}
\label{terminal}%
\index{terminal}%
\label{term}%
\index{term}%
gnuplot はとても多くの出力形式をサポートしています。これらは、適切な
出力形式を、必要なら機能を変更する追加オプションをつけて選択すること
により設定されます。以下参照: {\bf set terminal (p.~\pageref{set terminal})\index{terminal}}。

この文書は、あなたのシステム上で初期設定およびインストールがなされなか
ったために利用できない出力形式についても記述されているかも知れません。
{\bf legacy} (古い) と印のついた出力形式は、最近のバージョンの gnuplot で
はデフォルトではビルドされず、実際には使用できないかもしれません。
個々の gnuplot 対話形式実行時に、どの出力形式が有効なのかの一覧を見る
には、オプションを何もつけずに 'set terminal' と打ってください。

(訳注: この日本語訳に含まれる terminal のマニュアルは、その一覧にはな
い出力形式のものも含まれているかもしれませんし、逆にその一覧内の出力形
式でマニュアルがないものもあるかもしれません。)

TeX/LaTeX 文書システムでの使用のために設計された出力形式がいくつかあり
ます。TeX 用の出力形式に関する要約が以下にあります:
\href{http://www.gnuplot.info/docs/latex_demo.pdf}{\tt           http://www.gnuplot.info/docs/latex\_demo.pdf
}



\subsection*{Block}
\addcontentsline{toc}{subsection}{Block}
\label{set terminal block}%
\label{block}%
\index{block}%
{\bf block} 出力形式は、Unicode ブロック要素 (Block element; U+2580-259F)
文字、または点字文字 (Braille Patterns; U+2800-28FF) を使って解像度を向
上させた疑似グラフィック出力を作成します。これは端末 (ターミナル) グラ
フィックの代用品です。それには、UTF-8 が表示できる端末、またはビューワ
が必要です。描画には、内部ビットマップコードを用います。テキストは
{\bf dumb} 出力形式ルーチンを用いて、グラフィックスの一番上に表示します。

書式:
\preverbatim
\begin{verbatim}
       set term block
               {dot | half | quadrants | sextants | octants | braille |
                 sextpua | octpua}
               {{no}enhanced}
               {size <x>, <y>}
               {mono | ansi | ansi256 | ansirgb}
               {{no}optimize}
               {[no]attributes}
               {numpoints | charpoints | gppoints}
               {[no]animate}
\end{verbatim}
\postverbatim

{\bf size} は、ターミナルサイズを文字セル単位で設定します。

{\bf dot}, {\bf half}, {\bf quadrants}, {\bf sextants}, {\bf braille} は、疑似グラフィック
の生成に用いる文字セットの選択です。{\bf dot} は単純なドットを、{\bf half} は半
ブロック文字群を使用します。{\bf quadrants} は、縦横両方向に 2 倍の解像度を
生む四分ブロック文字群を使います。{\bf sextants} は、2x3 の六分ブロック文字
群を使用します。{\bf braille} は点字記号を使い、これは 2x4 の疑似解像度を提
供します。{\bf octants} は、提案された 2x4 ブロック文字を使います。{\bf sectpua}
と {\bf octpua} は、KreativeKorp 私用領域 (PUA) 内の 2x3, 2x4 ブロック文字
をそれぞれ使用しますが、そのうち利用可能なのは多分 {\bf FairfaxHD} と
{\bf KreativeSquare} フォントのみです。

2x3 の六分ブロック文字 ('sextants') は、Unicode 13 にのみ含まれているこ
とに注意してください。よって、それをサポートするフォントは未だ限定的で
す。それは点字記号についても同様です。利用可能なフォントには、例えば
{\bf unscii}, {\bf IBM 3270}, {\bf GNU Unifont}, {\bf DejaVu Sans}, {\bf FairfaxHD} などが
あります。2x4 ブロック文字 ('octants') は、まだ 2022 年に将来の Unicode
規格に入ることが決まった段階にすぎません。{\bf FairfaxHD} フォントには含ま
れています。

オプション {\bf ansi}, {\bf ansi256}, {\bf ansirgb} は、出力に色を表示させるための
エスケープシーケンスを含ませます。これらは、あなたの端末が処理できない
かもしれないことに注意してください。デフォルトは {\bf mono} (白黒) です。
エスケープシーケンスの一覧については、以下参照: {\bf terminal dumb (p.~\pageref{terminal dumb})\index{dumb}}。

オプション {\bf attributes} は、太字やイタリック体文字用のエスケープシーケ
ンスをサポートする端末、エミュレーター上でそれらの文字出力を可能にしま
す。以下参照: {\bf terminal dumb (p.~\pageref{terminal dumb})\index{dumb}}。

ブロック文字群を使うことで、ビットマップの疑似解像度は上がりますが、こ
れはカラーに対してはそうではありません。複数の {\bf pixel} が同じ色を共有す
る必要があります。これは、ひとつの文字セルで、すべてのピクセルの色の平
均を取ることで処理しています。{\bf optimize} をつけると、この出力形式は背景
色と前景色の両方の設定によってそれを改善しようとします。この手法は、
{\bf half} モードでは完全に機能しますが、{\bf quadrants}, {\bf sextants}, {\bf octants}
では難しさが増していきます。また、{\bf braille} では使用できません。

{\bf gppoints} は、グラフィックコマンドを使って点記号を描きます。端末の低解
像度性のため、{\bf braille} と {\bf octant} モードではこれは大抵実用的です。多
分エラーバーとしては最も有用でしょう。
{\bf charpoints} は、代わりに Unicode 記号文字を使用します。これらも常にグ
ラフィックの一番上に描かれることに注意してください。
{\bf numpoints} は上付き下付きの数字を使用し、垂直方向に 2 倍の解像度にしま
す。しかし {\bf sextants} に対しては、文字の枠の中心位置の点は、通常の数字
で描く必要があります。{\bf charpoints} か {\bf numpoints} を使っている場合、ビ
ットマップの解像度はそれでも異なり、線と記号は一般に正確には揃わないこ
とに注意してください。

オプション {\bf animate} は、各描画後に、カーソル位置をグラフの左上にリセッ
トし、前のグラフを上にスクロールして消す代わりにスクリーンの同じ領域に
次のグラフを上書きするようにします。これは、同じ場所でのアニメーション
を作成するためには有用でしょう。

\subsection*{Caca}
\addcontentsline{toc}{subsection}{Caca}
\label{commands set terminal caca}%
\label{set terminal caca}%
\label{set term caca}%
\label{terminal caca}%
\label{term caca}%
\label{caca}%
\index{caca}%
[試験段階]
{\bf caca} 出力形式は、{\bf libcaca} を使ってアスキー文字によるグラフを描く、ほ
ぼ娯楽的な出力モードです。{\bf dumb} 出力形式と比べると、こちらは色、箱の塗
り潰し、画像、文字列の回転、多角形の塗り潰し、マウス操作をサポートして
います。

書式:
\preverbatim
\begin{verbatim}
     set terminal caca {{driver | format} {default | <driver> | list}}
                       {color | monochrome}
                       {{no}inverted}
                       {enhanced | noenhanced}
                       {background <rgb color>}
                       {title "<plot window title>"}
                       {size <width>,<height>}
                       {charset ascii|blocks|unicode}
\end{verbatim}
\postverbatim

オプション {\bf driver} (または {\bf format}) は、表示ドライバとして {\bf libcaca}
を選択するか、または出力ドライバを選択します。
{\bf default} は、{\bf libcaca} にその環境のデフォルトのディスプレイドライバを
選択させます。デフォルトのドライバは、{\bf gnuplot} の起動前に環境変数
CACA\_DRIVER を設定しておくことで変更できます。
{\bf set term caca driver list} を使用すると、サポートする出力モードの一覧
を表示します。

オプション {\bf color} と {\bf monochrome} は、カラーか白黒出力を選択します。
これは、線の記号も変更することに注意してください。
デフォルトの白背景を黒背景にしたい場合は、オプション {\bf inverted} を使っ
てください。これは、デフォルトの線種の黒を白にも変えます。

拡張文字列処理は、オプション {\bf enhanced} を使うことで有効になります。以
下参照: {\bf enhanced text (p.~\pageref{enhanced text})\index{text}}。

出力ウィンドウのタイトルは、{\bf libcaca} ドライバがサポートしていれば、オ
プション {\bf title} で変更できます。

オプション {\bf size} は、キャンバスのサイズを文字単位で選択します。デフォ
ルトは 80 x 25 です。バックエンドがサポートしていれば、キャンバスサイズ
は、現在のウィンドウ/ターミナルのサイズに自動的に合います。{\tt"}x11{\tt"} と
{\tt"}gl{\tt"} ウィンドウのデフォルトのサイズは、環境変数 CACA\_GEOMETRY で制御
できます。{\tt"}win32{\tt"} ドライバでのウィンドウの位置・サイズ情報は、アプリ
ケーションメニューで制御、及び恒常的な変更が行えます。

オプション {\bf charset} は、曲線、点、多角形や長方形の塗り潰し、画像の中間
色表現などで使われる文字集合を選択します。バックエンドとターミナルとフ
ォントの組み合わせによっては、{\bf blocks} か {\bf unicode} の文字集合はサポー
トしない可能性もあることに注意してください。特に Windows では、
{\tt"}Lucida Console{\tt"} や {\tt"}Consolas{\tt"} のような非ラスタフォントの使用を勧め
ます。

caca 出力形式は、マウス操作をサポートしています。{\bf libcaca} のいくつかの
バックエンド (例えば slang や ncurses) はマウスクリックしたマウスの位置
しか更新しないことに注意してください。修飾キー (Ctrl, Alt, Shift) は、
{\bf libcaca} ではサポートしていないので、利用できません。

{\bf caca} 出力形式のデフォルトの {\bf encoding} は utf8 です。cp437 {\bf encoding}
もサポートしています。

{\bf libcaca} のサポートする色の数は、バックエンドにより異なります。たいて
いのバックエンドは、16 色の前景色と 16 色の背景色のみをサポートしていま
すが、例えば {\tt"}x11{\tt"} バックエンドは、Truecolor をサポートしています。

出力形式と {\bf libcaca} バックエンドによっては、背景色 8 色しかサポートさ
ない場合もあります。明色 (背景色の中で最も重要) は、文字を輝かせている
と解釈されます。この場合、{\bf background rgb {\tt"}gray{\tt"}} を使用してみてくだ
さい。

以下の libcaca Web サイト
\href{http://caca.zoy.org/wiki/libcaca}{\tt           http://caca.zoy.org/wiki/libcaca
}

および libcaca 環境変数に関する説明
\href{http://caca.zoy.org/doxygen/libcaca/libcaca-env.html}{\tt           http://caca.zoy.org/doxygen/libcaca/libcaca-env.html
}

も参照してみてください。
\subsubsection*{Caca limitations and bugs}
\addcontentsline{toc}{subsubsection}{Caca limitations and bugs}
\label{terminal caca limitations}%
\label{terminal caca bugs}%
\label{term caca limitations}%
\label{term caca bugs}%
\label{caca limitations}%
\label{caca bugs}%
{\bf caca} 出力形式には、既知のバグと制限があります:

Unicode のサポートは、ドライバと出力形式依存です。
{\tt"}x11{\tt"} バックエンドは libcaca version 0.99.beta17 から unicode をサポ
ートしていますが、{\bf libcaca} $<$ 0.99.beta20 でのバグのため、{\tt"}slang{\tt"} ド
ライバは unicode をサポートしていません。
{\bf libcaca} $<$ 0.99.beta19 には、不正な 8 ビット列を与えると無限ループを引
き起こすというバグがあることに注意してください。

明るい背景色は点滅することがあります。

マウス操作では修飾キーはサポートしません。以下参照: {\bf term caca (p.~\pageref{term caca})\index{caca}}。

拡張文字列の回転、および透明化はサポートしていません。{\bf size} オプション
は、オンスクリーンディスプレイでは考慮されません。

凡例 (key) の箱を正しく描くには、以下のようにしてください:

\preverbatim
\begin{verbatim}
     set key width 1 height 1
\end{verbatim}
\postverbatim

拡張文字列の位置合わせは、UTF-8 文字列が含まれている場合はうまくいきま
せん。
Windows のコンソールウィンドウのリサイズは、libcaca のバグのため正しく
機能しません。
タイトル行の上で {\tt"}X{\tt"} をクリックしてターミナルウィンドウを閉じる機能は
wgnuplot を終了させてしまいますので、ウィンドウを閉じるには {\tt"}q{\tt"} を打
ってください。
\subsection*{Cairolatex}
\addcontentsline{toc}{subsection}{Cairolatex}
\label{set terminal cairolatex}%
\label{terminal cairolatex}%
\label{set term cairolatex}%
\label{term cairolatex}%
\label{cairolatex}%
\index{cairolatex}%
出力形式 {\bf cairolatex} は、cairo と pango の補助ライブラリを使って、EPS
(Encapsulated PostScript), PDF, PNG 出力を生成しますが、文字列出力には
出力形式 {\bf epslatex} と同じやり方で LaTeX を使用します。

書式:
\preverbatim
\begin{verbatim}
     set terminal cairolatex
                    {eps | pdf | png}
                    {standalone | input}
                    {blacktext | colortext | colourtext}
                    {header <header> | noheader}
                    {mono|color}
                    {{no}transparent} {{no}crop} {background <rgbcolor>}
                    {font <font>} {fontscale <scale>}
                    {linewidth <lw>} {rounded|butt|square} {dashlength <dl>}
                    {size <XX>{unit},<YY>{unit}}
                    {resolution <dpi>}
\end{verbatim}
\postverbatim

cairolatex 出力形式は、epscairo 出力形式 ({\bf termnal epscairo}) や
pdfcairo 出力形式 ({\bf terminal pdfcairo}) と同等のグラフを出力しますが、
テキスト文字列はグラフの中に入れるのではなく、LaTeX に渡します。以下で
触れないオプションについては、以下参照: {\bf pdfcairo (p.~\pageref{pdfcairo})\index{pdfcairo}}。

{\bf eps}, {\bf pdf}, {\bf png} は、グラフ出力の形式を選択します。latex/dvips 用に
は {\bf eps} を、pdflatex 用には {\bf pdf} を使用してください。もしあなたのグラ
フが大量の点数を持つ場合は、ファイルサイズを減らすために {\bf png} を使用し
てください。オプション {\bf png} を使用した場合、追加オプション {\bf resolution}
も受け付け、結果の PNG のピクセル密度を制御できます。{\bf resolution} の引
数は整数で、DPI の暗黙の単位で与えます。

{\bf blacktext} は、カラーモードでもすべての文字列を黒で書くようにします。

{\bf cairolatex} 出力ドライバは、文字列の位置の特別な制御方法を提供します:
(a) '\{' で始まるすべての文字列は、'\}' もその文字列の最後に必要ですが、
その文字列全体を LaTeX で横にも縦にもセンタリングします。
(b) '[' で始まる文字列は、その次に位置指定文字 (t,b,l,r,c のうち 2 つま
で)、']\{'、対象文字列、と続き最後に '\}' で閉じますが、この文字列は、
LaTeX が LR-box として処理できるものならなんでも構いません。位置合わせ
を完全に行うには、$\backslash$rule\{\}\{\} も有用でしょう。以下も参照: {\bf pslatex (p.~\pageref{pslatex})\index{pslatex}}。
複数行に渡るラベルを生成する場合、$\backslash$shortstack を使用してください。例:
\preverbatim
\begin{verbatim}
  set ylabel '[r]{\shortstack{first line \\ second line}}'
\end{verbatim}
\postverbatim

コマンド {\bf set label} のオプション {\bf back} は、他の出力形式とはやや異なる
方法で処理します。{\bf back} を使用したラベルは、他のすべての描画要素の後ろ
に印字し、{\bf front} を使用したラベルは、他のすべての上に印字します。

このドライバは 2 つの異なるファイルを作成します。一つは図の eps か pdf
か png 部分で、もう一つは LaTeX 部分です。その LaTeX ファイルの名前は、
コマンド {\bf set output} のものを使用し、eps/pdf/png ファイルの名前は、そ
の拡張子 (通常は '.tex') を '.eps'/'.pdf'/'.png' に置き換えたものを使用
します。出力ファイルを指定しなかった場合は、LaTeX 出力はしません。
{\bf multiplot} モード以外では、次の plot を行う前に出力ファイルを閉じるの
を忘れないでください。

この画像をあなたの LaTeX 文書に取り込むには、'$\backslash$input\{filename\}' を使用
してください。'.eps'/'.pdf'/'.png' ファイルは、$\backslash$includegraphics\{...\}
で取り込むので、LaTeX 文書のプリアンブルに $\backslash$usepackage\{graphicx\} を入
れる必要があります。色付きの文字 (オプション {\bf colourtext}) を使用する場
合は、プリアンブルに $\backslash$usepackage\{color\} も入れる必要があります。

フォント選択に関する挙動は、ヘッダーモードに依存します。いずれの場合で
も、与えられたフォントサイズは適切な大きさを計算するのに使われます。
{\bf standalone} モードを使っていない場合は、それを読みこんだところで実際に
LaTeX が使用しているフォントとフォントサイズが使われるので、フォントを
変更するには LaTeX のコマンドを使用してください。LaTeX 文書の方で 12pt
のフォントサイズを使っていれば、オプションとして '{\tt"}, 12{\tt"}' を指定して
ください。フォント名は無視されます。'standalone' の場合は、与えられたフ
ォントとフォントサイズを使用します。詳細は以下を参照してください。

文字列を色付けして印字するかどうかは、TeX のブール変数 $\backslash$ifGPcolor と
$\backslash$ifGPblacktext で制御できます。$\backslash$ifGPcolor が true で $\backslash$ifGPblacktext
が false のときのみ文字列が色付けされます。これらの変更は、生成された
TeX ファイル中で行うか、または大域的にあなたの TeX ファイルのプリアンブ
ルで、例えば以下のようにして設定できます:
\preverbatim
\begin{verbatim}
  \newif\ifGPblacktext
  \GPblacktexttrue
\end{verbatim}
\postverbatim
局所的な設定は、大域的な値がない場合にのみ効力を持ちます。

出力形式 cairolatex を使う場合は、コマンド {\bf set output} で TeX ファイル
設定する際にファイルの拡張子 (通常は {\tt"},tex{\tt"}) をつけてください。
グラフのファイル名は、その拡張子を置きかえることで作られます。

{\bf standalone} モードを使う場合、LaTeX ファイルに完全な LaTeX のヘッダが
追加され、グラフファイルのファイル名には {\tt"}-inc{\tt"} が追加されます。
{\bf standalone} モードは、dvips, pdfTeX, VTeX を使う場合に正しいサイズの出
力を作る TeX ファイルを生成します。デフォルトでは {\bf input} で、これは
LaTeX 文書から $\backslash$input コマンドで取り込まれる必要があるファイルを生成し
ます。

{\tt"}{\tt"} や {\tt"}default{\tt"} 以外のフォントを与えた場合、それは LaTeX のフォント
名であるとみなされます。それは ',' 区切りで最大 3 つの部分からなる、
'fontname,fontseries,fontshape' の形式です。デフォルトの fontshape や
fontseries を使いたい場合は、それらは省略できます。よって、フォント名の
実際の書式は、'\{fontname\}\{,fontseries\}\{,fontshape\}' となります。(訳注:
より gnuplot 風に言えば '\{$<$fontname$>$\}\{,\{$<$fontseries$>$\}\{,$<$fontshape$>$\}\}')
名前の各部分の指定法は、LaTeX のフォント系の慣習に従う必要があります。
フォント名 (fontname) は 3 から 4 文字の長さで、以下のようになっていま
す: 最初の文字はフォントの供給者、次の 2 つの文字はフォント名用、オプシ
ョンとして特別なフォント用に 1 文字追加できます。例えば、'j' は古いスタ
イルの数字用のフォント、'x' はエキスパートフォント用です。多くのフォン
ト名が以下に記述されています:
\href{http://www.tug.org/fontname/fontname.pdf}{\tt           http://www.tug.org/fontname/fontname.pdf
}

例えば、'cmr' は Computer Modern Roman を、'ptm' は Times-Roman, 'phv'
は Helvetica を意味しています。font series は、グリフの太さを表し、多く
の場合は、'm' が標準 ({\tt"}medium{\tt"})、'bx' か 'b' が太字 (bold) のフォント
を意味します。font shape は、一般的には 'n' が立体 (upright)、'it' がイ
タリック (italic)、'sl' が斜体 (slanted)、'sc' がスモールキャピタル
(small caps) を意味します。異なる series や shapes を提供するフォントも
あります。

例:

Times-Roman のボールド体 (周りの文字列と同じ形状) を使うには:
\preverbatim
\begin{verbatim}
     set terminal cairolatex font 'ptm,bx'
\end{verbatim}
\postverbatim
Helvetica, ボールド体、イタリックを使うには:
\preverbatim
\begin{verbatim}
     set terminal cairolatex font 'phv,bx,it'
\end{verbatim}
\postverbatim
周りと同じで斜体の形状のフォントを使うには:
\preverbatim
\begin{verbatim}
     set terminal cairolatex font ',,sl'
\end{verbatim}
\postverbatim
スモールキャピタルを使うには
\preverbatim
\begin{verbatim}
     set terminal cairolatex font ',,sc'
\end{verbatim}
\postverbatim

この方法では、テキストフォントだけが変更されます。数式フォントも変更し
たい場合は、ファイル {\tt"}gnuplot.cfg{\tt"} か、または以下で説明するオプション
{\bf header} を使う必要があります。

{\bf standalone} モードでは、フォントサイズはコマンド {\bf set terminal} で指定
したフォントサイズを取ります。指定したフォントサイズを使うためにはファ
イル {\tt"}size$<$size$>$.clo{\tt"} が LaTeX の検索パスにある必要があります。デフォ
ルトでは 10pt, 11pt, 12pt をサポートしています。パッケージ {\tt"}extsizes{\tt"}
がインストールされていれば、8pt, 9pt, 14pt, 17pt, 20pt も追加されます。

オプション {\bf header} は一つの文字列を引数として取り、その文字列を生成す
る LaTeX ファイルに書き出します。{\bf standalone} モードでは、それはプリア
ンブルの $\backslash$begin\{document\} の直前に書きますが、{\bf input} モードでは、それ
はグラフに関するすべての設定を局所化するための $\backslash$begingroup コマンドの
の直後に書きます。

例:

T1 フォントエンコーディングを使い、テキストフォントと数式フォントを
Times-Roman に、sans-serif フォントを Helvetica に変えるには:
\preverbatim
\begin{verbatim}
   set terminal cairolatex standalone header \
   "\\usepackage[T1]{fontenc}\n\\usepackage{mathptmx}\n\\usepackage{helvet}"
\end{verbatim}
\postverbatim
グラフ内では太字 (bold) を使うが、グラフ外のテキストはそうしない:
\preverbatim
\begin{verbatim}
   set terminal cairolatex input header "\\bfseries"
\end{verbatim}
\postverbatim

LaTeX がファイル {\tt"}gnuplot.cfg{\tt"} を見つけると、{\bf standalone} モードでは
それをプリアンブルに取り込みます。これは、さらに設定を追加するのに使え
ます。例: 文書のフォントを、数式フォント ({\tt"}mathptmx.sty{\tt"} が処理) も合
わせて Times-Roman, Helvetica, Courier にするには:
\preverbatim
\begin{verbatim}
     \usepackage{mathptmx}
     \usepackage[scaled=0.92]{helvet}
     \usepackage{courier}
\end{verbatim}
\postverbatim
ファイル {\tt"}gnuplot.cfg{\tt"} は、コマンド {\bf header} で設定するヘッダー情報よ
りも前に読み込みますので、{\tt"}gnuplot.cfg{\tt"} で設定するものを {\bf header} を
使って上書きすることができます。

\subsection*{Canvas}
\addcontentsline{toc}{subsection}{Canvas}
\label{commands set terminal canvas}%
\label{set terminal canvas}%
\label{set term canvas}%
\label{terminal canvas}%
\label{term canvas}%
\index{canvas terminal}%

出力形式 {\bf canvas} は、HTML5 の canvas 要素上に描画する javascript コマ
ンドの集合を生成します。
書式:
\preverbatim
\begin{verbatim}
     set terminal canvas {size <xsize>, <ysize>} {background <rgb_color>}
                         {font {<fontname>}{,<fontsize>}} | {fsize <fontsize>}
                         {{no}enhanced} {linewidth <lw>}
                         {rounded | butt | square}
                         {dashlength <dl>}
                         {standalone {mousing} | name '<funcname>'}
                         {jsdir 'URL/for/javascripts'}
                         {title '<some string>'}
\end{verbatim}
\postverbatim

$<$xsize$>$ と $<$ysize$>$ は描画領域のピクセル単位でのサイズを設定します。
standalone モードでのデフォルトのサイズは、600x400 ピクセルです。
デフォルトのフォントサイズは 10 です。

注: ファイル canvastext.js で提供している Hershey simplex Roman フォン
トのアスキー部分のフォント一つだけが利用できます。これは、ファイル
canvasmath.js で置き換えることもでき、そこには UTF-8 エンコードされた
Hershey simplex Greek と math symbols も含まれています。他の出力形式に
合わせて、{\bf font {\tt"}name,size{\tt"}} の形式も使えるようになっています。今の
ところ {\bf name} のフォント名部分は無視されますが、そのうちにブラウザが名
前付きフォントをサポートしだすでしょう。

デフォルトの {\bf standalone} モードは、HTML 5 の canvas 要素を使用してグ
ラフを描画するような javascript コードを含む HTML ページを生成します。
その HTML ページは、2 つの必要な javascript ファイル 'canvastext.js'、
'gnuplot\_common.js' にリンクします。点線をサポートするためにはさらに追
加ファイル 'gnuplot\_dashedlines.js' が必要です。デフォルトではそれらは
ローカルファイルへのリンクで、Unix 互換のシステムでは通常はそれらディ
レクトリ /usr/local/share/gnuplot/$<$version$>$/js にあります。他の環境に
ついては、インストールに関する注意を参照してください。この設定は、オプ
ション {\bf jsdir} に別のローカルディレクトリ、あるいは一般的な URL を指定
することで変更できます。グラフをリモートクライアントのマシンで見れるよ
うにする場合は、通常は後者の設定が適切でしょう。

canvas 出力形式で生成される描画はすべてマウス操作可能です。キーワード
{\bf mousing} を追加すると、{\bf standalone} モードのグラフの下にマウストラッ
キングボックスをつけます。これは、{\bf canvastext.js} が置かれているのと同
じローカルディレクトリ、または URL 内の、'gnuplot\_mouse.js' という
javascript ファイルへのリンクと 'gnuplot\_mouse.css' というマウスボック
スに関するスタイルシートも追加します。

オプション {\bf name} は、javascript のみを含むファイルを一つ生成します。
それが含む javascript 関数と、それが描画する canvas 要素の id の両方は、
以下の文字列パラメータから取られます。例えば以下のコマンド
\preverbatim
\begin{verbatim}
     set term canvas name 'fishplot'
     set output 'fishplot.js'
\end{verbatim}
\postverbatim
は、javascript 関数 fishplot() を含むファイルを生成し、その関数はグラ
フを id=fishplot の canvas 上に描画します。この javascript 関数を呼び
出す HTML ページは、上で説明した canvastext.js も読み込まなければいけ
ません。上のように生成した、この fishplot を取りこむ最小の HTML ファイ
ルは以下のようになります:

\preverbatim
\begin{verbatim}
     <html>
     <head>
         <script src="canvastext.js"></script>
         <script src="gnuplot_common.js"></script>
     </head>
     <body onload="fishplot();">
         <script src="fishplot.js"></script>
         <canvas id="fishplot" width=600 height=400>
             <div id="err_msg">No support for HTML 5 canvas element</div>
         </canvas>
     </body>
     </html>
\end{verbatim}
\postverbatim

このキャンバス上に描かれるそれぞれのグラフの名前は、fishplot\_plot\_1,
fishplot\_plot\_2 等となります。外部の javascript ルーチンでそれらを参照
することもできます。例: gnuplot.toggle\_visibility({\tt"}fishplot\_plot\_2{\tt"})

\subsection*{Cgm}
\addcontentsline{toc}{subsection}{Cgm}
\label{commands set terminal cgm}%
\label{set terminal cgm}%
\label{set term cgm}%
\label{terminal cgm}%
\label{term cgm}%
\label{cgm}%
\index{cgm}%
{\bf cgm} ドライバは CGM 出力 (Computer Graphics Metafile Version 1) を生
成します。このファイルフォーマットは ANSI 規格書 X3.122-1986 {\tt"}Computer
Graphics - Metafile for the Storage and Transfer of Picture Description
Information{\tt"} で定義されているものの一部分です。

書式:
\preverbatim
\begin{verbatim}
     set terminal cgm {color | monochrome} {solid | dashed} {{no}rotate}
                      {<mode>} {width <plot_width>} {linewidth <line_width>}
                      {font "<fontname>,<fontsize>"}
                      {background <rgb_color>}
 [deprecated]         {<color0> <color1> <color2> ...}
\end{verbatim}
\postverbatim

{\bf solid} は全ての曲線を実線で描き、どんな点線パターンも塗りつぶします;
$<$mode$>$ は {\bf landscape}, {\bf portrait}, {\bf default} のいずれか;
$<$plot\_width$>$ はポイント単位でのグラフの仮定されている幅;
$<$line\_width$>$ はポイント単位での線幅 (デフォルトは 1);
$<$fontname$>$ はフォントの名前 (以下のフォント一覧参照); そして
$<$fontsize$>$ はポイント単位でのフォントのサイズ (デフォルトは 12) です。

最初の 6 つのオプションはどの順番で指定しても構いません。{\bf default} を
選択すると、全てのオプションをそのデフォルトの値にします。

線の色を {\bf set term} コマンドで設定する仕組みは、今は非推奨です。代わり
に、背景色は分離されたキーワード background で、線の色は {\bf set linetype}
で設定すべきでしょう。この非推奨の仕組みでは色は 'xrrggbb' の形式で受け
つけますが、x は文字 'x' そのもの、'rrggbb' は 16 進数での赤、緑、青の
成分です。最初の色を背景色として使い、その後に続く色指定を順次線の色と
として割り当てていました。

例:
\preverbatim
\begin{verbatim}
     set terminal cgm landscape color rotate dashed width 432 \
                    linewidth 1  'Helvetica Bold' 12       # デフォルト
     set terminal cgm linewidth 2  14  # やや広い線とやや大きいフォント
     set terminal cgm portrait "Times Italic" 12
     set terminal cgm color solid    # 面倒な点線など消えてしまえ !
\end{verbatim}
\postverbatim
\subsubsection*{CGM のフォント (font)}
\addcontentsline{toc}{subsubsection}{CGM のフォント (font)}
\label{commands set terminal cgm font}%
\label{set terminal cgm font}%
\label{set term cgm font}%
\label{cgm font}%
CGM (Computer Graphics Metafile) ファイルの最初の部分、メタファイルの
記述部分には、フォントリスト (font table) が含まれています。画像の本体
部では、フォントはこのリストにある番号で指定されます。デフォルトではこ
のドライバは以下の 35 個のフォントリストを生成し、さらにこのリストの
{\bf Helvetica}, {\bf Times}, {\bf Courier} の各フォントの {\bf italic} を {\bf oblique}
で置き換えたもの、およびその逆による 6 つの追加のフォントが含まれます
(Microsoft Office と Corel Draw CGM の import フィルタは {\bf italic} と
{\bf oblique} を同じものとして扱うからです)。


\begin{center}
\begin{tabular}{|lll|} \hline
\multicolumn{3}{|c|}{CGM fonts}\\\hline
&Helvetica&Hershey/Cartographic\_Roman\\
&Helvetica Bold&Hershey/Cartographic\_Greek\\
&Helvetica Oblique&Hershey/Simplex\_Roman\\
&Helvetica Bold Oblique&Hershey/Simplex\_Greek\\
&Times Roman&Hershey/Simplex\_Script\\
&Times Bold&Hershey/Complex\_Roman\\
&Times Italic&Hershey/Complex\_Greek\\
&Times Bold Italic&Hershey/Complex\_Italic\\
&Courier&Hershey/Complex\_Cyrillic\\
&Courier Bold&Hershey/Duplex\_Roman\\
&Courier Oblique&Hershey/Triplex\_Roman\\
&Courier Bold Oblique&Hershey/Triplex\_Italic\\
&Symbol&Hershey/Gothic\_German\\
&ZapfDingbats&Hershey/Gothic\_English\\
&Script&Hershey/Gothic\_Italian\\
&15&Hershey/Symbol\_Set\_1\\
&&Hershey/Symbol\_Set\_2\\
&&Hershey/Symbol\_Math\\
\hline
\end{tabular}
\end{center}

これらのフォントの最初の 13 個は WebCGM で要求されているものです。
Microsoft Office の CGM import フィルタはその 13 個の標準フォントと
'ZapfDingbats' と 'Script' をサポートしています。しかし、そのスクリプ
ト (script) フォントは '15' という名前でしかアクセスできません。
Microsoft の import フィルタの font の置き換えに関するより詳しい情報に
ついては、
\preverbatim
\begin{verbatim}
 C:\Program Files\Microsoft Office\Office\Cgmimp32.hlp
\end{verbatim}
\postverbatim
のヘルプファイル、または
\preverbatim
\begin{verbatim}
 C:\Program Files\Common Files\Microsoft Shared\Grphflt\Cgmimp32.cfg
\end{verbatim}
\postverbatim
の設定ファイルなどをチェックしてください。

{\bf set term} コマンドでデフォルトのフォントリストにないフォント名を指定
することも可能です。その場合、その指定したフォントが最初に現われる新
しいフォントリストが作られます。そのフォント名に関して、スペル、単語
の先頭の大文字化やどこにスペースが入るかなどが、作られる CGM ファイル
を読むアプリケーションにとって適切なものであるかをちゃんと確認する必要
があります。(gnuplot と任意の MIL-D-28003A 準拠アプリケーションは、フ
ォント名の大文字小文字の違いは無視します。) 新しいフォントをいくつも追
加したい場合は、{\bf set term} コマンドを繰り返し使用してください。

例:
\preverbatim
\begin{verbatim}
     set terminal cgm 'Old English'
     set terminal cgm 'Tengwar'
     set terminal cgm 'Arabic'
     set output 'myfile.cgm'
     plot ...
     set output
\end{verbatim}
\postverbatim

{\bf set label} コマンドでは新しいフォントを導入することはできません。
\subsubsection*{CGM のフォントサイズ (fontsize)}
\addcontentsline{toc}{subsubsection}{CGM のフォントサイズ (fontsize)}
\label{commands set terminal cgm fontsize}%
\label{set terminal cgm fontsize}%
\label{set term cgm fontsize}%
\label{cgm fontsize}%
フォントは、ページが 6 インチの幅であると仮定して伸縮されます。{\bf size}
コマンドでページの縦横比が変更されていたり、CGM ファイルが異なる幅に変
換されている場合、結果としてフォントのサイズも拡大されたり縮小されたり
することになります。仮定されている幅を変更するには、{\bf width} オプション
を使用してください。
\subsubsection*{Cgm linewidth}
\addcontentsline{toc}{subsubsection}{Cgm linewidth}
\label{commands set terminal cgm linewidth}%
\label{set terminal cgm linewidth}%
\label{set term cgm linewidth}%
\label{cgm linewidth}%
{\bf linewidth} オプションは線の幅をポイント単位 (pt) で設定します。デフォ
ルトの幅は 1 pt です。{\bf fontsize} や {\bf width} オプションのところで説明さ
れているように、ページの実際の幅によってその縮尺は影響を受けます。
\subsubsection*{Cgm rotate}
\addcontentsline{toc}{subsubsection}{Cgm rotate}
\label{commands set terminal cgm rotate}%
\label{set terminal cgm rotate}%
\label{set term cgm rotate}%
\label{cgm rotate}%
{\bf norotate} オプションはテキストの回転をしないようにします。例えば Word
for Windows 6.0c 用の CGM 入力フィルタは回転された文字列を受け付けます
が、Word に付属する DRAW エディタはそれを受け付けることができず、グラ
フを編集すると (例えば曲線に見出しをつける)、全ての回転された文字列は
水平方向になって保存されてしまい、Y 軸の見出しはクリップされる境界線を
越えてしまうでしょう。{\bf norotate} オプションを使えば、見栄えの良くない
場所から Y 軸の見出しが始まってしまいますが、編集によってダメージを受
けることはなくなります。{\bf rotate} オプションはデフォルトの挙動を保証し
ます。
\subsubsection*{Cgm solid}
\addcontentsline{toc}{subsubsection}{Cgm solid}
\label{set terminal cgm solid}%
\label{set term cgm solid}%
\label{cgm solid}%
{\bf solid} オプションは描画の点線の線描画スタイルを無効するのに使います。
これは、カラーが有効である場合、また点線にすることでグラフが見にくくな
る場合に有用でしょう。{\bf dashed} オプションはデフォルトの挙動を保証し、
この場合個々の線種に異なる点線のパターンが与えられます。
\subsubsection*{CGM のサイズ (size)}
\addcontentsline{toc}{subsubsection}{CGM のサイズ (size)}
\label{commands set terminal cgm size}%
\label{set terminal cgm size}%
\label{set term cgm size}%
\label{cgm size}%
CGM グラフのデフォルトのサイズは、横置き (landscape) では幅 32599, 縦
23457、縦置き (portrait) では幅 23457, 縦 32599 です。
\subsubsection*{Cgm width}
\addcontentsline{toc}{subsubsection}{Cgm width}
\label{commands set terminal cgm width}%
\label{set terminal cgm width}%
\label{set term cgm width}%
\label{cgm width}%
CGM ファイルの全ての長さは抽象的な単位を持ち、そのファイルを読むアプリ
ケーションが最終的なグラフのサイズを決定します。デフォルトでは最終的な
グラフの幅は 6 インチ (15.24 cm) であると仮定されています。この幅は正
しいフォントサイズを計算するのに使われ、{\bf width} オプションで変更できま
す。キーワード {\bf width} の後に幅をポイント単位で指定します。(ここで、ポ
イントは PostScript と同様 1/72 インチを意味します。この単位は TeX では
{\tt"}big point{\tt"} と呼ばれています。) 他の単位から変換するには、gnuplot の数
式が使えます。

例:
\preverbatim
\begin{verbatim}
     set terminal cgm width 432            # デフォルト
     set terminal cgm width 6*72           # 上と同じ値
     set terminal cgm width 10/2.54*72     # 10 cm の幅
\end{verbatim}
\postverbatim
\subsubsection*{Cgm nofontlist}
\addcontentsline{toc}{subsubsection}{Cgm nofontlist}
\label{commands set terminal cgm nofontlist}%
\label{set terminal cgm nofontlist}%
\label{set term cgm nofontlist}%
\label{cgm nofontlist}%
\label{set terminal cgm winword6}%
\label{set term cgm winword6}%
\label{cgm winword6}%
デフォルトのフォントリスト (font table) は WebCGM で勧告されているフォ
ントを含んでいて、これは Microsoft Office と Corel Draw の CGM (Computer
Graphics Metafile) 入力フィルタに適合しています。他のアプリケーション
は異なるフォント、あるいは異なるフォント名を使用するかも知れませんが、
それはマニュアルには書かれていないかも知れません。オプション
{\bf nofontlist} ({\bf winword6} も同じ意味) を使用すると CGM ファイルからフォ
ントリストを削除します。この場合、読み込んだアプリケーションはデフォル
トのフォントリストを使用するでしょう。gnuplot はその場合でもフォント番
号の選択のために自分のデフォルトのフォントリストを使用します。よって、
'Helvetica' が 1 番になり、それがあなたの使用するアプリケーションのデ
フォルトフォントリストの最初のものになります。'Helvetica Bold' がその
フォントリストの 2 番目のフォントに対応し、他も同様となります。

\subsection*{Context}
\addcontentsline{toc}{subsection}{Context}
\label{commands set terminal context}%
\label{set terminal context}%
\label{terminal context}%
\label{set term context}%
\label{term context}%
\label{context}%
\index{context}%
ConTeXt は (絵の描画のために) Metapost と高度に融合し、高品質な PDF 文
書を生成するための TeX のマクロパッケージです。この出力形式は、Metafun
ソースを生成しますが、これは手動で編集でき、外部からほとんどのことをあ
なたが設定できます。

ConTeXt + gnuplot モジュールの平均的なユーザには、このページを読むより
も、{\bf Using ConTeXt} を参照するか、ConTeXt の gnuplot モジュールのマニュ
アルを参照することを推奨します。

出力形式 {\bf context} は、以下のオプションをサポートしています:

書式:
\preverbatim
\begin{verbatim}
    set term context {default}
            {defaultsize | size <scale> | size <xsize>{in|cm}, <ysize>{in|cm}}
            {input | standalone}
            {timestamp | notimestamp}
            {noheader | header "<header>"}
            {color | colour | monochrome}
            {rounded | mitered | beveled} {round | butt | squared}
            {dashed | solid} {dashlength | dl <dl>}
            {linewidth | lw <lw>}
            {fontscale <fontscale>}
            {mppoints | texpoints}
            {inlineimages | externalimages}
            {defaultfont | font "{<fontname>}{,<fontsize>}"}
\end{verbatim}
\postverbatim

standalone でないグラフ ({\bf input}) では、オプションはグラフサイズを選択
する {\bf size}、すべてのラベルを倍率 $<$fontscale$>$ で伸縮する {\bf fontscasle}、
および font サイズのみ意味を持ち、他のオプションは警告なく無視されるの
みで、それらはそのグラフィックを読み込む .tex ファイルの方で設定してく
ださい。元の文書のフォントが 12pt ではない場合は、適切なフォントサイズ
を指定することを強く推奨します。それにより、gnuplot がラベル用にどれく
らいの大きさのスペースを確保すればいいかを知ることができまず。

{\bf default} は、すべてのオプションをデフォルトの値にリセットします。

{\bf defaultsize} は、描画サイズを 5in x 3in に設定します。
{\bf size} $<$scale$>$ は、描画サイズをデフォルトサイズの $<$scale$>$ 倍にしますが
引数を ',' 区切りで 2 つ与えた場合は、最初のものは横のサイズを、2 つ目
のものは垂直サイズを設定します。それらのサイズには、単位としてインチ
('in'), センチ ('cm') が使えますが、省略した場合はデフォルト値に対する
比であるとみなします。

{\bf input} (デフォルト) は、他の ConTeXt 文書から取り込めるグラフを生成し
ます。
{\bf standalone} は、それに数行追加し、それ自身がそのままコンパイルできるよ
うにします。その場合、{\bf header} オプションが必要になるかもしれません。

standalone のグラフに設定/定義/マクロを追加したい場合は {\bf header} を使用
してください。デフォルトは {\bf noheader} です。

{\bf notimestamp} は、コメント部分の日時の出力を抑制します (バージョン管理
システムを使っている場合、日付だけ違うものを新しいバージョンとして登録
したくはないでしょう)。

{\bf color} (デフォルト) は、カラー描画を生成しますが、{\bf monochrome} は一切
special を入れません。白黒プリンタ用には、その挙動をこんな風に変えた方
がもっと良くなるというアイデアを持っている人は、是非提案してください。

{\bf rounded} (デフォルト) と {\bf mitered}, {\bf beveled} は、線分の接合部の形状を
制御し、{\bf round} (default) と {\bf butt}, {\bf squared} は、線分の端の形状を制御
します。詳細は、PostScript か PDF のリファレンスマニュアルを参照してく
ださい。激しく変化する関数と太い線用には、線分の接合部での尖った角を避
けるように{\bf rounded} と {\bf round} を使うといいでしょう。
(これに関する一般的な仕組みは、このオプションを各描画スタイル毎に別々に
指定できるよう gnuplot がサポートすべきだと思います。)

{\bf dashed} (デフォルト) は、異なる線種に異なる点線パターンを使い、{\bf solid}
は、すべての描画に実線を使用します。

{\bf dashlength} (または {\bf dl}) は、点線の線分の長さを $<$dl$>$ 倍します。
{\bf linewidth} (または {\bf lw}) は、すべての線幅を $<$lw$>$ 倍します。
(lw 1 は 0.5bp を意味し、これは Metapost の描画のデフォルトの線幅です)
{\bf fontscale} は、テキストラベルをデフォルトの文書フォントの $<$fontscale$>$
倍に拡大します。

{\bf mppoints} は、Metapost で描画された定義済みの点の形状を使用します。
{\bf texpoints} は、簡単に設定できる記号セットを使用します。これは、以下
のようにして ConTeXt で定義できます:
\preverbatim
\begin{verbatim}
    \defineconversion[my own points][+,{\ss x},\mathematics{\circ}]
    \setupGNUPLOTterminal[context][points=tex,pointset=my own points]
\end{verbatim}
\postverbatim

{\bf inlineimages} は、バイナリ画像を文字列として書き出しますが、これは
ConTeXt MKIV のみで機能します。
{\bf externalimages} は、PNG ファイルを外部出力し、これは ConTeXt MKII で機
能します。これが動作するためには、gnuplot が PNG 画像出力をサポートして
いる必要があります。

standalone のグラフでは、{\bf font} でフォント名とサイズを設定できます。
standalone でないモード ({\bf input}) では、テキストラベルに十分なスペース
を割り当てるためにフォントサイズのみが意味を持ちます
コマンド
\preverbatim
\begin{verbatim}
    set term context font "myfont,ss,10"
\end{verbatim}
\postverbatim
は、以下のようになります:
\preverbatim
\begin{verbatim}
    \setupbodyfont[myfont,ss,10pt]
\end{verbatim}
\postverbatim
例えばさらに追加で {\bf fontscale} を 0.8 に設定すると、結果としてフォント
は 8pt の大きさになり、 
\preverbatim
\begin{verbatim}
    set label ... font "myfont,12"
\end{verbatim}
\postverbatim
は 9.6pt になります。

適当なタイプスクリプトフォント (とヘッダー) を用意するのは自分で行って
さもなくばフォントの切り替えは効果を持ちません。ConTeXt MKII (pdfTeX)
の標準フォントは、以下のようにして使えます:
\preverbatim
\begin{verbatim}
    set terminal context standalone header '\usetypescript[iwona][ec]' \
        font "iwona,ss,11"
\end{verbatim}
\postverbatim
フォントの利用に関する ConTeXt の最新の情報については、ConTeXt の文書、
wiki、メーリングリスト (アーカイブ) を探してみてください。

例:
\preverbatim
\begin{verbatim}
    set terminal context size 10cm, 5cm     # 10cm, 5cm
    set terminal context size 4in, 3in      # 4in, 3in
\end{verbatim}
\postverbatim
UTF-8 エンコードラベルを standalone (ページ全体) グラフで使用するには:
\preverbatim
\begin{verbatim}
    set terminal context standalone header '\enableregime[utf-8]'
\end{verbatim}
\postverbatim

\subsubsection*{Requirements}
\addcontentsline{toc}{subsubsection}{Requirements}
ConTeXt 用の gnuplot モジュール:
\href{http://ctan.org/pkg/context-gnuplot}{\tt      http://ctan.org/pkg/context-gnuplot
}

と、最新の ConTeXt が必要です。
そこから gnuplot を呼び出すには、write18 を可能にする必要があります。
ほとんどの TeX 配付物では、これは texmf.cnf で shell\_escape=t とするこ
とで設定できます。

この出力形式とより詳しいヘルプと例に関しては以下も参照してください:
\href{http://wiki.contextgarden.net/Gnuplot}{\tt           http://wiki.contextgarden.net/Gnuplot
}


\subsubsection*{Calling gnuplot from ConTeXt}
\addcontentsline{toc}{subsubsection}{Calling gnuplot from ConTeXt}
ConTeXt 文書でグラフを作成する最も簡単な方法は以下の通り:
\preverbatim
\begin{verbatim}
    \usemodule[gnuplot]
    \starttext
    \title{How to draw nice plots with {\sc gnuplot}?}
    \startGNUPLOTscript[sin]
    set format y "%.1f"
    plot sin(x) t '$\sin(x)$'
    \stopGNUPLOTscript
    \useGNUPLOTgraphic[sin]
    \stoptext
\end{verbatim}
\postverbatim
これは自動的に gnuplot を実行し、その結果の画像を文書中に取り込みます。
\subsection*{Domterm}
\addcontentsline{toc}{subsection}{Domterm}
\label{set terminal domterm}%
\label{terminal domterm}%
\label{set term domterm}%
\label{term domterm}%
\label{domterm}%
\index{domterm}%
書式:
\preverbatim
\begin{verbatim}
     set terminal domterm 
                {font "<fontname>{,<fontsize>}"} {{no}enhanced}
                {fontscale <multiplier>}
                {rounded|butt|square} {solid|dashed} {linewidth <lw>}
                {background <rgb_color>}
                {animate}
\end{verbatim}
\postverbatim

{\bf domterm} 出力形式は、domterm, qtdomterm プログラム等の DomTerm ターミ
ナルエミュレータ上で動作します。
これは、ターミナル出力内へ直接 SVG グラフ画像を埋め込むことをサポートし
ています。http://domterm.org を参照してください。

terminal オプションについては、{\bf svg} 出力形式を参照してください。

\subsubsection*{Animate}
\addcontentsline{toc}{subsubsection}{Animate}
\label{set term domterm animate}%
\label{term domterm animate}%
\preverbatim
\begin{verbatim}
    set term domterm animate
\end{verbatim}
\postverbatim

オプション {\bf animate} は、カーソル位置をすべてのグラフの最初の、出力形式
左上に戻し、後に続くグラフをスクリーンの同じ場所に上書きするようにしま
す。これは、定位置のアニメーションを作成するためには望ましいでしょう。

\subsection*{Dumb}
\addcontentsline{toc}{subsection}{Dumb}
\label{commands set terminal dumb}%
\label{set terminal dumb}%
\label{set term dumb}%
\label{terminal dumb}%
\label{term dumb}%
\label{dumb}%
\index{dumb}%
ダム端末 ({\bf dumb}) ドライバは、ASCII 文字を使用してテキスト領域に描画し
ます。サイズの指定と改行制御用のオプションがあります。

書式:
\preverbatim
\begin{verbatim}
     set terminal dumb {size <xchars>,<ychars>} {[no]feed}
                       {aspect <htic>{,<vtic>}}
                       {[no]enhanced}
                       {fillchar {solid|"<char>"}}
                       {[no]attributes}
                       {mono|ansi|ansi256|ansirgb}
\end{verbatim}
\postverbatim

$<$xchars$>$, $<$ychars$>$ はテキスト領域のサイズを設定し、デフォルトは 79 x 24
となっています。最後の改行は、{\bf feed} オプションが設定されている場合のみ
出力されます。

オプション {\bf aspect} は、グラフのアスペクト比の制御に使用します。これは
水平軸、垂直軸の目盛り刻みの長さを設定します。整数の指定のみが許されて
いて、デフォルトは 2,1 で、これは共通のスクリーンフォントのアスペクト比
に対応します。

文字 {\tt"}\#{\tt"} を領域塗り潰しに使いますが、これを terminal フォントで利用で
きる任意の文字に置き換えることができます。{\bf fillchar solid} は、
{\bf fillchar {\tt"}$\backslash$U+2588{\tt"}} (Unicode の全角黒四角) の短縮形です。

オプション {\bf ansi}, {\bf ansi256}, {\bf ansirgb} は色扱うために出力にエスケープ
シーケンスを挿入しますが、あなたのターミナルでは処理できないかもしれま
せん。デフォルトは {\bf mono} です。
{\bf ansi} モードでは、色は {\bf set colorsequence classic} を使うのが一番合い
ます。
どのモードを使用するかによって、{\bf dumb} 出力形式は、以下のシーケンスを出
力します (空白を追加せずに):

\preverbatim
\begin{verbatim}
     ESC [ 0 m           属性をデフォルトにリセット
     foreground color:
     表示色:
     ESC [ 1 m           強調/太字をセット
     ESC [ 22 m          強調/太字をオフに
     ESC [ <fg> m        30 <= <fg> <= 37 のカラーコード指定
     ESC [ 39 m          デフォルトにリセット
     ESC [ 38; 5; <c> m  パレットの番号指定 (16 <= <c> <= 255)
     ESC [ 38; 2; <r>; <g>; <b> m  成分指定 (0 <= <r,g,b> <= 255)
     背景色:
     ESC [ <bg> m        40 <= <bg> <= 47 のカラーコード指定
     ESC [ 49 m          デフォルトにリセット
     ESC [ 48; 5; <c> m  パレットの番号指定 (16 <= <c> <= 231)
     ESC [ 48; 2; <r>; <g>; <b> m  成分指定 (0 <= <r,g,b> <= 255)
\end{verbatim}
\postverbatim

例えば、以下の記述も参照してください:
\href{https://en.wikipedia.org/wiki/ANSI_escape_code#Colors}{\tt           https://en.wikipedia.org/wiki/ANSI\_escape\_code\#Colors
}



オプション {\bf attributes} は、太字やイタリック体文字用のエスケープシーケ
ンスをサポートする端末、エミュレーター上でそれらの文字出力を可能にしま
す。
\preverbatim
\begin{verbatim}
     ESC [ 1 m / 22 m    太字 (bold) のオン/オフ
     ESC [ 3 m / 23 m    イタリック体のオン/オフ
\end{verbatim}
\postverbatim

例:
\preverbatim
\begin{verbatim}
     set term dumb mono size 60,15 aspect 1
     set tics nomirror scale 0.5
     plot [-5:6.5] sin(x) with impulse ls -1
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
         1 +-------------------------------------------------+
       0.8 +|||++                   ++||||++                 |
       0.6 +|||||+                 ++|||||||+  sin(x) +----+ |
       0.4 +||||||+               ++|||||||||+               |
       0.2 +|||||||+             ++|||||||||||+             +|
         0 ++++++++++++++++++++++++++++++++++++++++++++++++++|
      -0.2 +        +|||||||||||+              +|||||||||||+ |
      -0.4 +         +|||||||||+                +|||||||||+  |
      -0.6 +          +|||||||+                  +|||||||+   |
      -0.8 +           ++||||+                    ++||||+    |
        -1 +---+--------+--------+-------+--------+--------+-+
              -4       -2        0       2        4        6  
\end{verbatim}
\postverbatim
\subsection*{Dxf}
\addcontentsline{toc}{subsection}{Dxf}
\label{commands set terminal dxf}%
\label{set terminal dxf}%
\label{set term dxf}%
\label{terminal dxf}%
\label{term dxf}%
\label{dxf}%
\index{dxf}%
{\bf dxf} は AutoCad (リリース 10.x) 用の出力ドライバです。
このドライバにはオプションはありません。デフォルトの大きさは AutoCad の
単位での 120x80 です。
{\bf dxf} は 7 色 (白、赤、黄、緑、水色、青、赤紫) を使いますが、これを変更
するにはドライバソースファイルを修正する必要があります。白黒の出力装置
を使う場合、それらの色は線の太さの違いで表現されます。
注意: どなたか、この出力ドライバを DXF 規格 2012 に更新してください !
\subsection*{Emf}
\addcontentsline{toc}{subsection}{Emf}
\label{commands set terminal emf}%
\label{set terminal emf}%
\label{set term emf}%
\label{terminal emf}%
\label{term emf}%
\label{emf}%
\index{emf}%
{\bf emf} ドライバは EMF (Enhanced Metafile Format) ファイルを生成します。
この形式のファイルは多くの MS-Windows アプリケーションで認識できます。

書式:
\preverbatim
\begin{verbatim}
     set terminal emf {color | monochrome}
                      {enhanced {noproportional}}
                      {rounded | butt}
                      {linewidth <LW>} {dashlength <DL>}
                      {size XX,YY} {background <rgb_color>}
                      {font "<fontname>{,<fontsize>}"}
                      {fontscale <scale>}
\end{verbatim}
\postverbatim

{\bf monochorome} モードは折れ線を点線のパターンを循環させて打ち出します。
{\bf linewidth $<$factor$>$} は全ての線幅をここで指定する値倍にします。
{\bf dashlength $<$factor$>$} は、太い線には便利でしょう。
{\bf $<$fontname$>$} はフォント名、
{\bf $<$fontsize$>$} はポイント単位でのフォントの大きさです。

出力画像の形式的な (名ばかりの) サイズは、デフォルトでは適当な単位での
1024x768 になっています。オプション {\bf size} を使って別な形式的なサイズ
を指定できます。

拡張文字列処理モード (enhanced text mode) は、プロポーショナル文字間隔
を近似しようとします。モノスペースフォントを使う場合、あるいはこの近似
を好まない場合、オプション {\bf noproportional} を使うことでこの補正をオフ
にできます。

デフォルトの設定は、{\bf color font {\tt"}Arial,12{\tt"} size 1024,768} で、
{\bf default} を選択すると全てのオプションがそのデフォルトの値になります。

例:
\preverbatim
\begin{verbatim}
     set terminal emf 'Times Roman Italic, 12'
\end{verbatim}
\postverbatim
\subsection*{Epscairo}
\addcontentsline{toc}{subsection}{Epscairo}
\label{set terminal epscairo}%
\label{terminal epscairo}%
\label{set term epscairo}%
\label{term epscairo}%
\label{epscairo}%
\index{epscairo}%
出力形式 {\bf epscairo} は、cairo, pango ライブラリを用いて EPS 出力
(Encapsulated PostScript) を生成します。cairo は version 1.6 以降が必
要です。

詳細は、{\bf pdfcairo} 出力形式のヘルプを参照してください。
\subsection*{Epslatex}
\addcontentsline{toc}{subsection}{Epslatex}
\label{commands set terminal epslatex}%
\label{set terminal epslatex}%
\label{set term epslatex}%
\label{terminal epslatex}%
\label{term epslatex}%
\label{epslatex}%
\index{epslatex}%
{\bf epslatex} ドライバは LaTeX で処理すべき出力を生成します。

書式:
\preverbatim
\begin{verbatim}
     set terminal epslatex   {default}
     set terminal epslatex   {standalone | input}
                             {level1 | leveldefault | level3}
                             {color | colour | monochrome}
                             {background <rgbcolor> | nobackground}
                             {dashlength | dl <DL>}
                             {linewidth | lw <LW>} {pointscale | ps <PS>}
                             {rounded | butt}
                             {clip | noclip}
                             {palfuncparam <samples>{,<maxdeviation>}}
                             {size <XX>{unit},<YY>{unit}}
                             {header <header> | noheader}
                             {blacktext | colortext | colourtext}
                             {{font} "fontname{,fontsize}" {<fontsize>}}
                             {fontscale <scale>}
\end{verbatim}
\postverbatim

epslatex 出力形式は、文字列を PostScript コードに含ませる代わりに LaTeX
ファイルに移すことを除けば {\bf terminal postscript eps} 同様に描画します。
よって、{\bf postscript terminal} と多くのオプションが共通です。

以下のようなエラーメッセージが出た場合:
\preverbatim
\begin{verbatim}
     "Can't find PostScript prologue file ... "
\end{verbatim}
\postverbatim
以下参照: {\bf postscript prologue (p.~\pageref{postscript prologue})\index{prologue}}。そしてその指示に従ってください。

オプション {\bf color} はカラーを有効にし、{\bf monochrome} は各要素を黒と白
描画します。さらに、{\bf monochrome} は灰色の {\bf palette} も使用しますが、
これは、明示的に {\bf colorspec} で指定された部品の色を変更しません。

{\bf dashlength} または {\bf dl} は点線の線分の長さを $<$DL$>$ (0 より大きい実数)
に設定し、
{\bf linewidth} または {\bf lw} は全ての線の幅を $<$LW$>$ に設定します。

デフォルトでは、生成される PostScript コードは、特にフィルタリングや
filledcurves のようなでこぼこな領域のパターン塗りつぶしにおいて、
PostScript Level 2 として紹介されている言語機能を使います。PostScript
Level 2 の機能は条件的に保護されていて、PostScript Level 1 のインター
プリタがエラーを出さず、むしろメッセージか PostScript Level 1 による
近似であることを表示するようになっています。{\bf level1} オプションは、こ
れらの機能を近似する PostScript Level1 で代用し、PostScript Level 2 
コードを一切使用しません。これは古いプリンタや、Adobe Illustrator の
古いバージョンなどで必要になるかもしれません。このフラグ {\bf level1} は
出力された PostScript ファイルのある一行を手で編集することで、後から
強制的に PostScript Level 1 機能を ON/OFF にすることもできます。level
2 のコードが含まれている場合、上の機能は現われないか、このフラグがセ
ットされた場合、あるいは PostScript インタプリタプログラムが level 2
以上の PostScript を解釈するとは言わなかった場合に警告文に置き換わり
ます。{\bf level3} オプションは、ビットマップ画像の PNG 化の機能を有効に
します。それにより出力サイズをかなり削減できます。

{\bf rounded} は、線の端や接合部を丸くし、デフォルトの {\bf butt} は尖った端と
角張った接合部を使用します。

{\bf clip} は、PostScript にすべての出力を BoundingBox (PostScript の外枠)
でクリップすることを指示します; デフォルトは {\bf noclip} です。

{\bf palfuncparam} は {\bf set palette functions} から出力の傾きをどのようにコ
ード化するかを制御します。解析的な色の成分関数 ({\bf set palatte functions} 
で設定される) は、postscript 出力では傾きの線形補完を用いてコード化さ
れます: まず色の成分関数が $<$samples$>$ 個の点で標本化され、そしてそれら
の点は、結果として線形補完との偏差が $<$maxdeviation$>$ 以内に収まるように
削除されます。ほとんど全ての有効なパレットで、デフォルトの $<$samples$>$
=2000 と $<$maxdeviation$>$=0.003 の値をそのまま使うのが良いでしょう。

PostScript 出力のデフォルトの大きさは 10 インチ x 7 インチです。EPS 
出力のデフォルトの大きさは 5 x 3.5 インチです。オプション {\bf size} は
これらをユーザが指定したものに変更します。デフォルトでは X と Y のサ
イズの単位はインチとみなされますが、他の単位 (現在は cm のみ) も使う
ことはできます。描画の BoundingBox (PostScript ファイルの外枠) は、
サイズが変更された画像を丁度含むように正しく設定されます。
スクリーン座標は、オプション {\bf size} で指定された描画枠の全体が 0.0
から 1.0 になります。

{\bf blacktext} は、たとえカラーモードでも全ての文字列を黒で書きます。

epslatex ドライバは文字列の配置の制御に特別な方法を提供します:
(a) '\{' で始まる文字列は、'\}' で閉じる必要がありますが、その文字列全体
が LaTeX によって水平方向にも垂直方向にもセンタリングされます。
(b) '[' で始まる文字列の場合は、位置の指定をする文字列 (t,b,l,r,c のう
ち 2 つまで) が続き、次に ']\{'、文字列本体、で最後に '\}' としますが、
この文字列は  LaTeX が LR-box として整形します。$\backslash$rule\{\}\{\} を使えばさ
らに良い位置合わせが可能でしょう。ドライバ {\bf pslatex} に関する説明も参
照。
複数行の見出しを作成するには $\backslash$shortstack を使用してください。例えば、
\preverbatim
\begin{verbatim}
  set ylabel '[r]{\shortstack{first line \\ second line}}'
\end{verbatim}
\postverbatim

{\bf set label} コマンドのオプション {\bf back} は使えますが、他の出力形式のも
のとは少し違っています。{\bf front} の場合の見出しが他の全ての要素の上に出
力されるのに対して、{\bf back} を使った見出しは他の全ての要素の下に出力され
ます。

このドライバは 2 つの別のファイルを作ります。1 つは図の eps の部分で、
もう一つは LaTeX の部分です。LaTeX ファイルの名前は、{\bf set output} コマ
ンドのものが使われ、eps ファイルの名前はその拡張子 (通常 {\bf .tex}) を
{\bf .eps} に置き換えたものになります。
出力ファイルを指定しなければ LaTeX 出力は行なわれません !
{\bf multiplot} モード以外では、次の描画を行なう前にその出力ファイルをクロ
ーズするのを忘れないでください。

LaTeX の文書で図を取り込むには '$\backslash$input\{filename\}' としてください。
{\bf .eps} ファイルは $\backslash$includegraphics\{...\} コマンドで取り込むので、よって
LaTeX のプリアンブルに $\backslash$usepackage\{graphicx\} も入れる必要があります。
{\bf textcolour} オプションで色付きの文字列を使用している場合は、LaTeX の
プリアンブルに $\backslash$usepackage\{color\} も入れる必要があります。

この eps ファイルから 'epstopdf' を使って pdf ファイルを作ることもでき
ます。graphics パッケージが適切に設定されている場合、その LaTeX のファ
イルは、変更なしに pdflatex によっても処理でき、その場合 eps ファイル
の代わりに pdf ファイルが取り込まれます。

フォントの選択に関する挙動はヘッダーモードに依存します。
どの場合でも、与えられたフォントサイズはスペースの計算にちゃんと使用さ
れます。{\bf standalone} モードが使われなかった場合は、include される場所で
の実際の LaTeX フォントとフォントサイズが使われるので、よってフォントの
変更には LaTeX コマンドを使ってください。例えばフォントサイズとして
LaTeX 文書中で 12pt を使う場合は、オプション '{\tt"}{\tt"} 12' を使います。この
場合フォント名は無視されます。{\bf standalone} を使う場合は、与えられたフォ
ントとフォントサイズが使われます。詳細は下記を参照してください。

文字列がカラーで表示されるかどうかは TeX の Bool 値変数 $\backslash$ifGPcolor と
$\backslash$ifGPblacktext で制御します。$\backslash$ifGPcolor が true で $\backslash$ifGPblacktext が
false の場合のみ文字列はカラーで表示されます。それらは生成される TeX フ
ァイルを変更するか、またはあなたの TeX ファイルで大域的に与えてください。
例えば
\preverbatim
\begin{verbatim}
  \newif\ifGPblacktext
  \GPblacktexttrue
\end{verbatim}
\postverbatim
をあなたのファイルのプリアンブルに書きます。部分的な指定は大域的な値が
与えられていないときのみ働きます。

epslatex 出力形式を使う場合、{\bf set output} コマンドで TeX ファイルの名前
を拡張子付き (通常 {\tt"}.tex{\tt"}) で与えてください。eps ファイルの名前はその
拡張子を {\tt"}.eps{\tt"} に置き換えた名前になります。

{\bf standalone} モードを使う場合、その LaTeX ファイルに完全な LaTeX のヘッ
ダが付加され、eps ファイルのファイル名には {\tt"}-inc{\tt"} が追加されます。
{\bf standalone} モードは、dvips, pdfTeX, VTeX を使う場合に正しいサイズで出
力されるような TeX ファイルを作ります。
デフォルトは {\bf input} モードで、これは $\backslash$input コマンドを使って、別の
\preverbatim
\begin{verbatim}
LaTeX ファイルから読み込まれるようなファイルを生成します。
\end{verbatim}
\postverbatim

{\tt"}{\tt"} か {\tt"}default{\tt"} 以外のフォント名が与えられた場合、それは LaTeX のフ
ォント名と解釈されます。それは、'fontname,fontseries,fontshape' の、コ
ンマで区切られた 3 つ以下の部分からなります。デフォルトのフォントシェイ
プ、フォントシリーズが使いたい場合はそれらは省略できます。つまり、フォ
ント名に対する正式な書式は、'[fontname][,fontseries][,fontshape]' とな
ります。そのいずれの部分も名前に関しては LaTeX のフォント体系の慣習に従
います。fontname は 3 から 4 文字の長さで、次のような規則で作られていま
す: 1 つ目がフォントの製造元を表し、次の 2 つがフォント名、オプションで
追加される 1 つは特別なフォントを意味し、例えば 'j' は旧式の数字を持つ
フォント、'x' は expert フォント等となっています。以下には、多くのフォ
ントの名前について書かれています。
\href{http://www.tug.org/fontname/fontname.pdf}{\tt           http://www.tug.org/fontname/fontname.pdf
}

例えば 'cmr' は Computer Modern Roman フォント、'ptm' は Times-Roman,
'phv' は Helvetica 等を表します。フォントシリーズは文字の線の太さを意味
し、大半は 'm' で普通 ({\tt"}medium{\tt"})、'bx' または 'b' が太字 (bold) フォ
ントを意味します。フォントシェイプは一般に 'n' が立体 (upright)、'it'
はイタリック、'sl' は斜体 (slanted)、'sc' は小さい大文字 (small caps)
となります。これらとは異なるフォントシリーズやフォントシェイプで与えら
れるフォントも存在します。

例:

Times-Roman で太字 (シェイプは周りの文字列と同じもの) を使う場合:
\preverbatim
\begin{verbatim}
     set terminal epslatex 'ptm,bx'
\end{verbatim}
\postverbatim
Helvetica で太字でイタリックを使う場合:
\preverbatim
\begin{verbatim}
     set terminal epslatex 'phv,bx,it'
\end{verbatim}
\postverbatim
斜体のシェイプで周りのフォントを使い続ける場合:
\preverbatim
\begin{verbatim}
     set terminal epslatex ',,sl'
\end{verbatim}
\postverbatim
小型の大文字 (small caps) を使う場合:
\preverbatim
\begin{verbatim}
     set terminal epslatex ',,sc'
\end{verbatim}
\postverbatim

この方法では文字列のフォントのみが変更されます。数式のフォントも変更し
たい場合は、{\tt"}gnuplot.cfg{\tt"} ファイルかまたは {\bf header} オプションを使う
必要がありますが、これについては以下に書きます。

standalone モードでは、フォントサイズは {\bf set terminal} コマンドで与えら
れたフォントサイズが使われます。指定したフォントサイズが使えるためには
LaTeX の検索パスに {\tt"}size$<$size$>$.clo{\tt"} というファイルが存在しなければな
りません。デフォルトでは 10pt, 11pt, 12pt がサポートされています。パッ
ケージ {\tt"}extsizes{\tt"} がインストールされていれば、8pt, 9pt, 14pt, 17pt,
20pt も追加されます。

オプション {\bf header} は文字列引数を取ります。その文字列は、生成される
LaTeX ファイルに書き込まれます。{\bf standalone} モードを使う場合、その文字
列はプリアンブルの $\backslash$begin\{document\} コマンドの直前に書き込まれます。
{\bf input} モードでは、その文字列は $\backslash$begingroup コマンドの直後に置かれ、
描画への設定がすべて局所的になるようにします。

例:

T1 フォントエンコーディングを使い、文字列、数式フォントを Times-Roman
とし、サンセリフフォントを Helvetica と変更する場合:
\preverbatim
\begin{verbatim}
   set terminal epslatex standalone header \
   "\\usepackage[T1]{fontenc}\n\\usepackage{mathptmx}\n\\usepackage{helvet}"
\end{verbatim}
\postverbatim
描画の外の文字列には影響を与えないように描画内で太字 (boldface) フォン
トを使う場合:
\preverbatim
\begin{verbatim}
   set terminal epslatex input header "\\bfseries"
\end{verbatim}
\postverbatim

ファイル {\tt"}gnuplot.cfg{\tt"} が LaTeX によって見つけられると、{\bf standalone}
モードを使っている場合は、それは生成される LaTeX 文書のプリアンブルに取
り込まれます。それは追加の設定を行なうのに使えます。例えば、文書のフォ
ントを TImes-Roman, Helvetica, Courier と変更し、({\tt"}mathptmx.sty{\tt"} で扱
われている) 数式フォントを入れる場合:
\preverbatim
\begin{verbatim}
     \usepackage{mathptmx}
     \usepackage[scaled=0.92]{helvet}
     \usepackage{courier}
\end{verbatim}
\postverbatim
ファイル {\tt"}gnuplot.cfg{\tt"} は {\bf header} コマンドで与えられるヘッダ情報の前
に読み込まれます。よって、{\tt"}gnuplot.cfg{\tt"} で行なわれる設定のいくつかを
{\bf header} を使って上書きすることができます。

\subsection*{Fig}
\addcontentsline{toc}{subsection}{Fig}
\label{commands set terminal fig}%
\label{set terminal fig}%
\label{set term fig}%
\label{terminal fig}%
\label{term fig}%
\label{fig}%
\index{fig}%
\label{xfig}%
\index{xfig}%
{\bf fig} ドライバは、対話型描画ツール xfig に取り込める Fig グラフィック言
語での出力を生成します。
注意:
\preverbatim
\begin{verbatim}
      fig 出力形式は、gnuplot バージョン 5.3 で大きく改訂されました。
      現在は fig ファイル形式バージョン 3.2 のみサポートしています。
      点線/破線パターンを利用するには Xfig 3.2.6 以降が必要です。
\end{verbatim}
\postverbatim

書式:
\preverbatim
\begin{verbatim}
     set terminal fig {monochrome | color}
                      {small | big | size <xsize>{in|cm},<ysize>{in|cm}}
                      {landscape | portrait}
                      {pointsmax <max_points>}
                      {font "<fontname>{,<fontsize>}"} {fontsize <size>}
                      {textnormal | {textspecial texthidden textrigid}}
                      {{linewidth|lw} <multiplier>}
\end{verbatim}
\postverbatim

デフォルトの設定は、
\preverbatim
\begin{verbatim}
     set term fig color small landscape font "Times Roman,10" lw 1.0
\end{verbatim}
\postverbatim

{\bf size} は描画範囲を $<$xsize$>$*$<$ysize$>$ に、インチ単位 (デフォルト) かセン
チ単位で設定 (変更) します。デフォルトは {\bf size 5in,3in} です。
{\bf small} は {\bf size 5in,3in} (portrait モードでは 3in,5in) の省略形、
{\bf big} は {\bf size 8in,5in} の省略形です。

{\bf pointsmax} は、折れ線内の頂点の最大数を設定し、長すぎる折れ線は、分割
します。

{\bf font} は、テキストフォントフェース名を $<$fontname$>$ に、フォントサイズを
$<$fontsize$>$ ポイントに設定します。その選択は、35 の標準 PostScript フォ
ントに限定されています。
{\bf textnormal} はテキストフラグをリセットして postscript フォントを選択し、
{\bf textspecial} はテキストフラグを LaTeX special に設定し、
{\bf texthidden}, {\bf textrigid} はそれぞれ無表示のテキスト、スケーリングされ
ないテキスト用のフラグを設定します。

{\bf linewidth} は、すべての線に対する linewidth の値への倍率です。

{\bf fig} ドライバには {\bf plot} コマンドの {\bf point} スタイルの記号が追加されて
います。記号の指定は ({\bf pointtype} の値) \% 100 の 50 以上の値が使われ、
その塗りつぶしの濃さは $<$pointtype$>$ \% 5 の値で制御し、その輪郭は黒
($<$pointtype$>$ \% 10 $<$ 5 の場合) または現在の色で書かれます。利用可能な記
号は以下の通りです。
\preverbatim
\begin{verbatim}
       50 - 59:  円
       60 - 69:  正方形
       70 - 79:  ひし形
       80 - 89:  上向きの三角形
       90 - 99:  下向きの三角形
\end{verbatim}
\postverbatim
これらの記号の大きさはフォントの大きさで変更できます。

RGB 色は、それが描画の前に線種として定義されているものではない場合、ま
たは登録されている色名やパレット値に一致しなかった場合は灰色で置き換え
られます。以下参照: {\bf colornames (p.~\pageref{colornames})\index{colornames}}。
例:
\preverbatim
\begin{verbatim}
     set linetype 999 lc rgb '#aabbcc'
     plot $data with fillecurve fillcolor rgb '#aabbcc'
\end{verbatim}
\postverbatim

\subsection*{Gif}
\addcontentsline{toc}{subsection}{Gif}
\label{commands set terminal gif}%
\label{set terminal gif}%
\label{set term gif}%
\label{terminal gif}%
\label{term gif}%
\label{gif}%
\index{gif}%
書式:
\preverbatim
\begin{verbatim}
     set terminal gif 
            {{no}enhanced}
            {{no}transparent} {rounded|butt}
            {linewidth <lw>} {dashlength <dl>}
            {tiny | small | medium | large | giant}
            {font "<face> {,<pointsize>}"} {fontscale <scale>}
            {size <x>,<y>} {{no}crop}
            {background <rgb_color>}
            {animate {delay <d>} {loop <n>} {optimize}}
\end{verbatim}
\postverbatim

PNG, JPEG, GIF 画像は、外部ライブラリ libgd を使って生成されます。GIF
の描画は、ImageMagick パッケージのソフト 'display' にその出力を以下の
ようにパイプで渡すことで対話的に表示させることができます:
\preverbatim
\begin{verbatim}
              set term gif
              set output '| display gif:-'
\end{verbatim}
\postverbatim
次の描画コマンドからの出力は、display ウィンドウ上で対話的に $<$space$>$
を打つことで見ることができます。現在の描画をファイルに保存するには、
display ウィンドウで左クリックし、{\bf save} を選択してください。

{\bf transparent} は、ドライバに背景色の透明化 (transparent) を行うよう指
示します。デフォルトは {\bf notransparent} です。

オプション {\bf linewidth} と {\bf dashlength} は拡大率で、描画されるすべての
線に影響を与えます。すなわち、これらは様々な描画コマンドで要求される値
にかけ算されます。

{\bf butt} は線分の描画で、その端の点でのはみだしを起こさない描画メソッド
を使うようドライバに指示します。この設定は、線幅が 1 より大きい場合に
のみ有効です。この設定は、水平線、垂直線の描画の場合に有用でしょう。

出力描画サイズ $<$x,y$>$ はピクセル単位で与えます。デフォルトは 640x480 で
す。以下も参照: {\bf canvas (p.~\pageref{canvas})\index{canvas}}, {\bf set size (p.~\pageref{set size})\index{size}}。
描画終了後の端の余白は、オプション {\bf crop} で取り除くことができ、その結
果としてその画像サイズは小さくなります。デフォルトは {\bf nocrop} です。

\subsubsection*{Animate}
\addcontentsline{toc}{subsubsection}{Animate}
\label{set term gif animate}%
\label{term gif animate}%
\label{gif animate}%
\label{animate}%
\index{animate}%

\preverbatim
\begin{verbatim}
     set term gif animate {delay <d>} {loop <n>} {{no}optimize}}
\end{verbatim}
\postverbatim

gif 出力形式のオプション {\bf animate} は、複数のフレームからなる単一の gif
ファイルを生成します。各画像間の表示間隔は 1/100 秒単位で指定できます
が (デフォルトは 5)、、後でそのアニメーションを見るのに使うプロ
グラムが正確に再現するかもしれませんし、しないかもしれません。
アニメーションの繰り返し回数も指定できますが、デフォルトは 0 で、それは
無限の繰り返しを意味します。改めて言いますが、この値もそれを見るのに使
うプログラムが正確に再現するかもしれませんし、しないかもしれません。
アニメーション画像列は、次の {\bf set output} か {\bf set term} コマンドによっ
て終了します。

連続する回転を表示する例:
\preverbatim
\begin{verbatim}
    set term gif animate loop 0
    set output 'rotating_surface.gif'
    do for [ang=1:359] {
        set view 60, ang
        splot f(x,y) with pm3d
    }
    unset output
\end{verbatim}
\postverbatim

\paragraph*{Optimize}
\addcontentsline{toc}{paragraph}{Optimize}
\label{set term gif animate optimize}%
\label{gif animate optimize}%
\preverbatim
\begin{verbatim}
    set term gif animate optimize
\end{verbatim}
\postverbatim

[非推奨] オプション {\bf optimize} は、出力ファイルを開くときに gd ライブラ
リに渡します。これは、アニメーションに 2 つの効果を持ちます。

1) アニメーション全体を通じて単一のカラーマップが使用されます。これは
アニメーションの全てのフレームで使用される全ての色が最初のフレームで
定義されている必要があります。

2) 可能ならば、個々のフレームで一つ前のフレームと違う部分のみがアニメ
ーションファイルに保存されます。これはファイルサイズを小さくしてくれ
ますが、透明化機能を使用している場合には働かないかもしれません。

これら両方の最適化はより小さいサイズの出力ファイルを作ろうとするもので
すが、多分その減少量は、長いアニメーションのみ意味がある程度でしょう。
警告: libgd の最適化の実装はおかしいことが知られていますので、gnuplot
でこのオプションを使用することは推奨しません。

\subsubsection*{Fonts}
\addcontentsline{toc}{subsubsection}{Fonts}
\label{set term gif fonts}%

フォントの選択の詳細は、やや複雑です。
より詳しい情報については、{\bf fonts gd} の下の該当するセクションを参照して
ください。

例:

\preverbatim
\begin{verbatim}
     set terminal gif medium noenhanced size 640,480 background '#ffffff'
\end{verbatim}
\postverbatim

この例は medium サイズの、大きさ変更不能で回転できない組み込みフォント
を使用します。拡張文字処理 (enhanced text) モードは、このフォントでは機
能しません。そして、透明化されない背景色として白 (16 進数の 24bit RGB)
を使用します。

\preverbatim
\begin{verbatim}
     set terminal gif font arial 14
\end{verbatim}
\postverbatim

これは、'arial' というフェース名のフォントを検索し、フォントサイズを
14pt に設定します。

\subsection*{Hpgl}
\addcontentsline{toc}{subsection}{Hpgl}
\label{commands set terminal hpgl}%
\label{set terminal hpgl}%
\label{set term hpgl}%
\label{terminal hpgl}%
\label{term hpgl}%
\label{hpgl}%
\index{hpgl}%
書式:
\preverbatim
\begin{verbatim}
     set terminal hpgl {<number_of_pens>} {eject} {fontscale <scale>}
\end{verbatim}
\postverbatim

{\bf hpgl} ドライバは、1970 年代以降の HP7475A や多くの他のプロッタのような
Hewlett Packard 社製のペンプロッタ用の HPGL 出力を行ないます。
HPGL グラフィックデータは、多くのソフトウェアで取り込むこともできます。
HPGL コマンド言語は、その後のプリンタでは広く PCL コマンド言語に置き換
えられました。以下参照: {\bf set term pcl5 (p.~\pageref{set term pcl5})\index{pcl5}}。

terminal オプションは、使用するペンの数と、終了時にプロッタにページを排
出 (eject) させるかどうかを制御します。デフォルトでは、6 つのペンを使
い、描画後のページの排出は行ないません。

すべての文字は一様なサイズで描画されます。オプション {\bf fontscale} はこの
サイズを大きく、または小さくするための積因子です。
gnuplot の現在のエンコーディングが iso\_8859\_1 か cp850 のいずれかにセッ
トされていれば、非アスキー文字を、対応する文字セットをサポートするいく
つかのプリンタモデルで処理することで変換することができます。あなたのプ
リンタモデルがこれをサポートしていなければ、これらのエンコーディングは
セットできません。

\subsection*{Jpeg}
\addcontentsline{toc}{subsection}{Jpeg}
\label{commands set terminal jpeg}%
\label{set terminal jpeg}%
\label{set term jpeg}%
\label{terminal jpeg}%
\label{term jpeg}%
\label{jpeg}%
\index{jpeg}%
書式:
\preverbatim
\begin{verbatim}
     set terminal jpeg 
            {{no}enhanced}
            {{no}interlace}
            {linewidth <lw>} {dashlength <dl>} {rounded|butt}
            {tiny | small | medium | large | giant}
            {font "<face> {,<pointsize>}"} {fontscale <scale>}
            {size <x>,<y>} {{no}crop}
            {background <rgb_color>}
\end{verbatim}
\postverbatim

PNG, JPEG, GIF 画像は、外部ライブラリ libgd を使って生成されます。大抵
の場合、単一の描画なら PNG の方が向いていて、GIF はアニメーション用で
す。それらは損失の少ない画像形式で、損失のある JPEG 形式よりも上質の画
像を生成します。これは、特にベタ塗り潰した背景でのカラーの実線、つまり
まさに gnuplot が生成する典型的な画像に対しては注意すべきことです。

オプション {\bf interlace} は、プログレッシブ JPEG 画像を生成します。デフ
ォルトは {\bf nointerlace} です。

オプション {\bf linewidth} と {\bf dashlength} は拡大率で、描画されるすべての
線に影響を与えます。すなわち、これらは様々な描画コマンドで要求される値
にかけ算されます。

{\bf butt} は線分の描画で、その端の点でのはみだしを起こさない描画メソッド
を使うようドライバに指示します。この設定は、線幅が 1 より大きい場合に
のみ意味があります。この逆は {\bf rounded} です。

フォントの選択の詳細は、やや複雑です。
以下に同じ意味を持つ簡単な例を示します:
\preverbatim
\begin{verbatim}
    set term jpeg font arial 11
    set term jpeg font "arial,11"
\end{verbatim}
\postverbatim
より詳しい情報については、{\bf fonts} の下の該当するセクションを参照してく
ださい。

出力描画サイズ $<$x,y$>$ はピクセル単位で与えます。デフォルトは 640x480 で
す。以下も参照: {\bf canvas (p.~\pageref{canvas})\index{canvas}}, {\bf set size (p.~\pageref{set size})\index{size}}。
描画終了後の端の余白は、オプション {\bf crop} で取り除くことができ、その結
果としてその画像サイズは小さくなります。デフォルトは {\bf nocrop} です。

\subsection*{Kittycairo}
\addcontentsline{toc}{subsection}{Kittycairo}
\label{set terminal kittycairo}%
\label{terminal kittycairo}%
\label{set term kittycairo}%
\label{term kittycairo}%
\label{kittycairo}%
\index{kittycairo}%
出力形式 {\bf kittycairo} は、kitty グラフィックプロトコルをサポートする端
末エミュレータ上で、ウィンドウ内出力を生成します。実際の描画は、2 次元
グラフィックライブラリの cairo と文字列レンダリングライブラリの pango
を用いて行います。kitty プロトコルは、sixel グラフィックとは別の選択肢
で、24 ビット RGB カラーをサポートすること、およびリモートセッションで
はコンピュータと端末の間の画像データの転送に必要な大域幅が少し小さいこ
とが優位です。

書式:
\preverbatim
\begin{verbatim}
       set terminal kittycairo
                    {{no}enhanced} {mono|color}
                    {font <font>} {fontscale <scale>}
                    {linewidth <lw>} {rounded|butt|square} {dashlength <dl>}
                    {transparent | background <rgbcolor>}
                    {size <XX>,<YY>} {anchor|scroll}
\end{verbatim}
\postverbatim

この出力形式は、ラベルや他の文字列処理にデフォルトで拡張文字列処理を使
用します。以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。

グラフのすべての線分の幅は、{\bf linewidth} の積因子 $<$lw$>$ で変更できます。
フォントサイズも同様に {\bf fontscale} のスケール積因子で一様に変更できま
す。フォントや文字コードオプションに関する説明については、以下参照:
{\bf pdfcairo (p.~\pageref{pdfcairo})\index{pdfcairo}}。

オプション {\bf rounded} は、線の端や接合部を丸くし、デフォルトの {\bf butt}
は尖った端と角張った接合部を生成します。

グラフのサイズは、スクリーンピクセル単位で与えます。デフォルトでは
({\bf anchor})、それぞれのグラフは、端末ウィンドウの左上に描きます。これは
アニメーションや、キーボードを利用した疑似マウス操作 (以下参照:
{\bf pseudo-mousing (p.~\pageref{pseudo-mousing})\index{pseudo-mousing}}) では便利です。一方、{\bf scroll} では、各グラフを現在の
カーソル位置から開始しますが、それにより端末文字列でそれをスクロールで
きます。

\subsection*{Kittygd}
\addcontentsline{toc}{subsection}{Kittygd}
\label{commands set terminal kittygd}%
\label{set terminal kittygd}%
\label{set term kittygd}%
\label{terminal kittygd}%
\label{term kittygd}%
\label{kittygd}%
\index{kittygd}%
書式:
\preverbatim
\begin{verbatim}
     set terminal kittygd
                  {{no}enhanced} {{no}truecolor} {rounded|butt}
                  {linewidth <lw>} {dashlength <dl>}
                  {font "<face> {,<pointsize>}"} {fontscale <scale>}
                  {size <x>,<y>} {anchor|scroll}
                  {background <rgb_color>}
\end{verbatim}
\postverbatim

出力形式 {\bf kittygd} は、kitty グラフィックプロトコルをサポートする端末
エミュレータ上で、ウィンドウ内出力を生成します。デフォルトでは、ライブ
ラリは 24 ビット RGB PNG 画像を生成し、出力時に 256 色 ({\bf truecolor})
減色変換されます。{\bf notruecolor} は、出力の色をさらに少なく制限しますが
これによる明確な優位性はありません。
透過型の fill style にはオプション {\bf truecolor} が必要です。以下参照:
{\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}}。
あなたの gnuplot が、cairo グラフィックスをサポートするようにビルドさ
れたものなら、むしろ {\bf kittycairo} の方がいいでしょう。

この出力形式は、ラベルや他の文字列処理にデフォルトで拡張文字列処理を使
用します。以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。

グラフのすべての線分の幅は、{\bf linewidth} の積因子 $<$lw$>$ で変更できます。
フォントサイズも同様に {\bf fontscale} のスケール積因子で一様に変更できま
す。フォントや文字コードオプションに関する説明については、以下参照:
{\bf png (p.~\pageref{png})\index{png}}。

{\bf butt} は線分の描画で、その端の点でのはみだしを起こさない描画メソッド
を使うようドライバに指示します。この設定は、線幅が 1 より大きい場合に
のみ意味があります。これの逆が {\bf rounded} で、多少より均一な曲線を生成
しますが、より遅くなります。

グラフのサイズは、スクリーンピクセル単位で与えます。
デフォルトでは ({\bf anchor})、それぞれのグラフは、端末ウィンドウの左上に
描きます。これはアニメーションや、キーボードを利用した疑似マウス操作
(以下参照: {\bf pseudo-mousing (p.~\pageref{pseudo-mousing})\index{pseudo-mousing}}) では便利です。一方、{\bf scroll} では、各グラ
フを現在のカーソル位置から開始しますが、それにより端末文字列でそれをス
クロールできます。

\subsection*{Lua}
\addcontentsline{toc}{subsection}{Lua}
\label{commands set terminal lua}%
\label{set terminal lua}%
\label{set term lua}%
\label{terminal lua}%
\label{term lua}%
\label{lua}%
\index{lua}%
この {\bf lua} 出力ドライバは、対象先指定描画ファイルを作成するための、外
部 Lua スクリプトとの組み合わせで機能します。現在サポートしている対象
は、TikZ -$>$ pdflatex のみです。

Lua に関する情報は、http://www.lua.org で参照できます。

書式:
\preverbatim
\begin{verbatim}
  set terminal lua <target name> | "<file name>"
                      {<script_args> ...}
                      {help}
\end{verbatim}
\postverbatim

スクリプト用に 'target name'、または引用符付きの 'file name' が必須で
す。スクリプトの 'target name' を与えた場合は、この出力形式は、
{\tt"}gnuplot-$<$target name$>$.lua{\tt"} をまずローカルディレクトリで探し、それに
失敗すると環境変数 GNUPLOT\_LUA\_DIR を探します。

その他のすべての引数は、選択したスクリプトに評価させるように与えられま
す。例えば、'set term lua tikz help' は、スクリプトそれ自身に、スクリ
プト用のオプションと選択に関する追加のヘルプを表示させます。

\subsection*{Mf}
\addcontentsline{toc}{subsection}{Mf}
\label{commands set terminal mf}%
\label{set terminal mf}%
\label{set term mf}%
\label{terminal mf}%
\label{term mf}%
\label{mf}%
\index{mf}%
\label{metafont}%
\index{metafont}%
注意: 古い (legacy) 出力形式 (デフォルトではビルドされません)。
{\bf mf} ドライバは METAFONT プログラムへの入力ファイルを作ります。よって
その図は TeX の文書中では文字と同じように使うことができます。

文書中で図を使うには、{\bf gnuplot} の出力するファイルを入力として METAFONT
プログラムを実行する必要があります。よって、ユーザはフォントが作られる
プロセスと新しく作ったフォントをドキュメントに取り込むための基礎知識が
必要となります。しかし、使用するサイトで METAFONT プログラムが適切に設
定されていれば、経験のないユーザでもそう問題なく操作はできるでしょう。

グラフ中の文字は METAFONT の文字セットに基づいてサポートされます。現状
では Computer Modern Roman フォントセットが入力ですが、ユーザは必要な
フォントを何でも自由に選ぶことができます。ただしその選んだフォントの
METAFONT ソースファイルが使える状態になっている必要があります。個々の
文字は METAFONT の中で別々のピクチャー変数に保存され、文字が必要になっ
たときにこれらの変数が操作 (回転、伸縮等) されます。欠点は、METAFONT
プログラムが解釈に要する時間です。ある計算機 (つまり PC) では、ピクチ
ャー変数をたくさん使用しすぎることで、使えるメモリの量の限界が問題を起
こすこともあります。

{\bf mf} ドライバにはオプションはありません。
\subsubsection*{METAFONT の使い方}
\addcontentsline{toc}{subsubsection}{METAFONT の使い方}
\label{commands set terminal mf detailed}%
\label{set terminal mf detailed}%
\label{set term mf detailed}%
\label{mf detailed}%
\label{metafont detailed}%

- 出力形式 (terminal) を METAFONT にセット:
\preverbatim
\begin{verbatim}
 set terminal mf
\end{verbatim}
\postverbatim
- 出力ファイル名を設定。例えば:
\preverbatim
\begin{verbatim}
 set output "myfigures.mf"
\end{verbatim}
\postverbatim
- グラフの描画。各グラフは別々の文字を生成し、そのデフォルトの大きさは
5x3 インチですが、この大きさは {\bf set size 0.5,0.5} のようにしてどんなサ
イズにでも自由に変更できます。

- {\bf gnuplot} を終了

- {\bf gnuplot} の出力ファイルに対して METAFONT を実行し、TFM ファイルと GF
ファイルを作ります。グラフは割と大きい (5x3 インチ) ので、memmax の値が
少なくとも 150000 である METAFONT を使う必要があるでしょう。Unix では、
それは通常 bigmf という名前でインストールされているでしょう。以下では、
virmf コマンドが big 版の METAFONT であると仮定し、実行例を示します:

- METAFONT の立ち上げ:
\preverbatim
\begin{verbatim}
   virmf '&plain'
\end{verbatim}
\postverbatim
- 出力装置の選択: METAFONT プロンプト ('*') 上で次のように打ちます:
\preverbatim
\begin{verbatim}
   \mode:=CanonCX;     % あなたの使用するプリンタを指定
\end{verbatim}
\postverbatim
- 拡大率 (magnification) の選択 (オプション):
\preverbatim
\begin{verbatim}
   mag:=1;             % あなたの好みの値を指定
\end{verbatim}
\postverbatim
- {\bf gnuplot} で作ったファイルを入力:
\preverbatim
\begin{verbatim}
   input myfigures.mf
\end{verbatim}
\postverbatim
典型的な Unix マシンでは、virmf '\&plain' を実行するスクリプト {\tt"}mf{\tt"} が
あるので、virmf \&plain の代わりに mf を使えます。これにより mfput.tfm
と mfput.\$\$\$gf (\$\$\$ は出力装置の解像度) の 2 つのファイルが作られます。
上の作業は、すべてをコマンドライン上で簡単に実行することもできます:
virmf '\&plain' '$\backslash$mode:=CanonCX; mag:=1; input myfigures.mf'
この場合、作られるファイル名は myfigures.tfm と myfigures.300gf という
名前になります。

- gftopk を使って GF ファイルから PK ファイルを生成:
\preverbatim
\begin{verbatim}
 gftopk myfigures.300gf myfigures.300pk
\end{verbatim}
\postverbatim
gftopk が作るファイルの名前はあなたが使用する DVI ドライバに依存します
ので、サイトの TeX の管理者にフォント名の規則について聞いてください。
次に TFM ファイルと PK ファイルを適当なディレクトリにインストールするか
または環境変数を適切な値に設定します。通常それは、TEXFONTS にカレントデ
ィレクトリを含めることと、あなたが使用する DVI ドライバが使用している環
境変数 (標準的な名前はありませんが ...) に対して同じことをやれば済みま
す。これは TeX がフォントメトリック (TFM) ファイル を見つけ、DVI ドライ
バが PK ファイルを見つけられるようにするために必要な作業です。

- 文書にそのグラフを入れるために TeX にそのフォント名を指示:
\preverbatim
\begin{verbatim}
 \font\gnufigs=myfigures
\end{verbatim}
\postverbatim
各グラフは、最初のグラフが文字 0、2 番目のグラフが文字 1 というように、
それぞれ一つの文字として保存されています。上記の作業を行なうと、グラフ
はその他の文字と同じように使うことができ、例えばグラフ 1 と 2 を文書中
にセンタリングして置くために plain TeX ファイル中ですべきことは:
\preverbatim
\begin{verbatim}
 \centerline{\gnufigs\char0}
 \centerline{\gnufigs\char1}
\end{verbatim}
\postverbatim
だけです。もちろん LaTeX では picture 環境を使って $\backslash$makebox と $\backslash$put マ
クロで任意の位置にグラフを配置することができます。

このやり方は、一度フォントを生成してしまえば、大幅に時間の節約になりま
す: TeX はグラフを文字として使い、それを配置するにはごく少ない時間しか
使用しませんし、グラフよりも文書の方が修正することが多いでしょうから。
そしてこれは TeX のメモリの節約にもなります。METAFONT ドライバを使うも
う最後の一つの利点は、生成される DVI ファイルが本来のデバイス非依存な
形になるということです。それは eepic や tpic ドライバのような $\backslash$special
コマンドを全く使わないからです。
\subsection*{Mp}
\addcontentsline{toc}{subsection}{Mp}
\label{commands set terminal mpost}%
\label{set terminal mp}%
\label{set term mp}%
\label{terminal mp}%
\label{term mp}%
\label{mp}%
\index{mp}%
\label{metapost}%
\index{metapost}%

注意: 古い (legacy) 出力形式 (デフォルトではビルドされない)。
{\bf mp} ドライバは Metapost プログラムへ入力することを意図した出力を生成
し、その出力ファイルに対して Metapost を実行するとグラフを含む EPS フ
ァイルが作られます。デフォルトでは Metapost は全ての文字列を TeX に通
します。これはタイトルや見出しに任意の TeX の記号を本質的に使うことが
できる、という利点を持つことを意味します。
この出力形式は、gnuplot バージョン 4 以降十分には更新されておらず、従っ
てその後に追加された多くの機能のサポートが欠けています。

書式:
\preverbatim
\begin{verbatim}
  set term mp {color | colour | monochrome}
              {solid | dashed}
              {notex | tex | latex}
              {magnification <magsize>}
              {psnfss | psnfss-version7 | nopsnfss}
              {prologues <value>}
              {a4paper}
              {amstex}
              {template "<outputtemplate>"}
              {"<fontname> {,<fontsize>}"} 
\end{verbatim}
\postverbatim

オプション {\bf color} は線をカラーで書くことを意味し (それをサポートする
プリンタやディスプレイ上で)、{\bf monochrome} (または何も指定しない場合)
は黒の線が選択されます。オプション {\bf solid} は線を実線で描き、{\bf dashed}
(または無指定) は線を異なるパターンの点線で描き分けます。{\bf solid} が指
定されてかつ {\bf color} が指定されなかった場合、ほとんど全ての線が同じも
のになりますが、これも何かの場合には有用でしょうから認められています。

オプション {\bf notex} は完全に TeX を迂回しますので、このオプションの元で
は見出しには TeX のコードは使うことができません。これは、古いグラフフ
ァイル、あるいは TeX では特殊記号として解釈されてしまう {\bf \$} や {\bf \%} の
ような一般的な文字をたくさん使うファイルのために用意されています。

オプション {\bf tex} は、TeX で処理する文字列を出力するように設定します。

オプション {\bf latex} は、LaTeX で処理する文字列を出力するように設定しま
す。これによって TeX では使えないけれど LaTeX では使えるもの、例えば分
数を $\backslash$frac で書いたりすることができます。このオプションを使う場合は、
環境変数 TEX に LaTeX の実行プログラム名 (通常は latex) を設定するか、
あるいは {\bf mpost --tex=$<$LaTeX の実行プログラム名$>$ ...} とすることを忘れ
ないでください。そうでないと metapost はテキストの処理に TeX を使おう
として失敗してしまうでしょう。

TeX におけるフォントサイズの変更は数式には効果がなく、そのような変更を
行なうとても簡単な方法は、大域的に拡大率 (magnification factor) を設定
する以外にはありません。それがオプション {\bf magnification} の意味です。
その場合は拡大率を後ろに指定する必要があります。全ての文字 (グラフでは
なく) はこの率で拡大されます。数式をデフォルトの 10pt 以外の他のサイズ
で書きたい場合はこれを使用してください。ただ残念なことに全ての数式が同
じサイズになってしまいますが、しかし、以下の MP 出力の編集に関する説明
を参照してください。{\bf mag} は {\bf notex} の元でも働きますが、それを行なう
意味がないくらい (以下に述べる) フォントサイズオプションはうまく働きま
す。

オプション {\bf psnfss} は postscript フォントを LaTeX と組み合わせて使用
します。このオプションは LaTeX が使われる場合のみ意味を持ちますので、
自動的に {\bf latex} オプションが選択されます。このオプションは以下の
LaTeX パッケージを使用します:
inputenc(latin1), fontenc(T1), mathptmx, helvet(scaled=09.2), courier,
latexsym, textcomp

オプション {\bf psnfss-version7} も postscript フォントを LaTeX と組み合わ
せて使用します ({\bf latex} が自動的に選択されます) が、以下の LaTeX パッ
ケージを使用します:
inputenc(latin1), fontenc(T1), times, mathptmx, helvet, courier

オプション {\bf nopsnfss} はデフォルトで、標準的なフォント (何も指定されて
いなければ cmr10) が使われます。

オプション {\bf prologues} は追加の値を引数に持ち、metapost ファイルに
{\bf prologues:=$<$その値$>$} という行を追加します。値として {\bf 2} を指定すると
metapost は eps ファイルを作るように postscript フォントを使用し、それ
によりその結果は例えば ghostscript などで参照できるようになります。標
準では metapost は TeX のフォントを使用しますので、それを参照するには
(La)TeX のファイルに取り込む必要があります。

オプション {\bf noprologues} はデフォルトで、prologue で指定したいかなる行
も追加されません。

オプション {\bf a4paper} は {\bf [a4paper]} を documentclass に追加します。標
準では letter 用紙 (デフォルト) が使われます。このオプションは LaTeX
でのみ使われますので、自動的に {\bf latex} オプションが選択されます。

オプション {\bf amstex} は、自動的に {\bf latex} オプションを選択し、以下の
LaTeX パッケージを使用します: amsfonts, amsmath(intlimits)。デフォルト
ではこれらは使用されません。

オプション {\bf template} は、{\bf outputtemplate:={\tt"}$<$outputtemplate{\tt"};} という
行をヘッダ行の後に追加します。{\tt"}$<$outputtemplate$>${\tt"} は必須の引数です。
その効果は、Metapost ファイルの出力ファイル名を決定することで、例えば
{\tt"}\%j.mps{\tt"} は、ファイルの拡張子をデフォルトの {\bf .0}, {\bf .1} 等を {\bf .mps}
に変えます。複数の出力ファイルを生成するときは、{\tt"}\%c{\tt"} を入れるのを忘れ
でください。template を指定しないと {\tt"}\%j.\%c{\tt"} を指定したのと同じことに
なります。

引用符で囲まれた名前はフォント名を表し、{\bf set label} や {\bf set title} で
明示的にフォントが与えられない場合はこのフォントが使われます。フォント
は TeX が認識できる (TFM ファイルが存在する) ものを使う必要があります。
デフォルトでは {\bf notex} が選択されていなければ {\tt"}cmr10{\tt"} が、そうでなけれ
ば {\tt"}pcrr8r{\tt"} (Courier) が使われます。{\bf notex} の元でも、Metapost には
TFM ファイルは必要です。{\bf pcrr8r.tfm} は LaTeX psnfss パッケージの
Courier フォント名として与えられています。{\bf notex} のデフォルトからフォ
ントを変更する場合は、少なくとも 32-126 のコード範囲は ASCII エンコー
ディングに一致するものを選んでください。{\bf cmtt10} もほぼ使えますが、し
かしこれはコード 32 (スペース) にスペースではない文字が入っています。

サイズは 5.0 から 99.99 の間の任意の数字を指定でき、省略された場合は
10.0 が使われます。なるべく {\bf magstep} サイズ、つまり 1.2 の整数かまた
は 0.5 乗の 10 倍を小数以下 2 桁未満を丸めた値を使用することをお勧め
します。それはそれが TeX のシステムで最もよく使われるフォントのサイズ
だからです。

全てのオプションは省略可能です。フォントを指定する場合はそれは (必要な
らサイズもつけて) 一番最後に指定する必要があります。フォント名にそのサ
イズ情報が含まれていたとしても、サイズを変えるにはフォントサイズを指定
する必要があります。例えば {\bf set term mp {\tt"}cmtt12{\tt"}} は cmtt12 をデフォル
トのサイズである 10 に縮めて使います。それは多分望まないことでしょうし
cmtt10 を使う方が良いでしょう。

以下の ascii 文字は、TeX では特別に扱われます:
\preverbatim
\begin{verbatim}
  $, &, #, %, _;  |, <, >;  ^, ~,  \, {, }
\end{verbatim}
\postverbatim
\$, \#, \&, \_, \% の 5 つは、例えば {\bf $\backslash$\$} とすることで容易にそれをエスケー
プできます。$<$, $>$, $|$ の 3 つは、例えば {\bf \$$<$\$} のように数式モードに入れて
やればうまくいきます。残りのものに関しては少し TeX の回避策が必要にな
りますが、適当なよい TeX の本がそれを指導してくれるでしょう。

Metapost の画像は TeX の文書内で一般に使われています。Metapost はフォ
ントを TeX が行なうのと全く同じ方法で扱い、それは他の大抵の文書整形プ
ログラムとは異なっています。グラフが LaTeX の文書に graphics パッケー
ジで取り込まれ、あるいは epsf.tex を使って plainTeX に取り込まれ、そし
て dvips (または他の dvi から ps への変換ソフト) で PostScript に変換
される場合、そのグラフ内の文字は大抵は正しく扱われているでしょう。しか
し、Metapost 出力をそのまま PostScript インタプリタに送っても、グラフ
内の文字は出力されないでしょう。

\subsubsection*{Metapost の使い方}
\addcontentsline{toc}{subsubsection}{Metapost の使い方}
\label{commands set terminal mp detailed}%
\label{set terminal mp detailed}%
\label{set term mp detailed}%
\label{mp detailed}%
\label{metapost detailed}%

- まず terminal ドライバを Metapost に設定、例えば:
\preverbatim
\begin{verbatim}
  set terminal mp "cmtt12" 12
\end{verbatim}
\postverbatim

- 出力ファイルを選択、例えば:
\preverbatim
\begin{verbatim}
  set output "figure.mp"
\end{verbatim}
\postverbatim

- グラフを作成。各 plot (または multiplot の各グループ) はそれぞれ別な
Metapost beginfig...endfig グループに分けられます。そのデフォルトのサ
イズは 5x3 インチですが、それは {\bf set size 0.5,0.5} とか、そうしたいと
思う適当な割合をそのように指定することで変更できます。

- gnuplot を終了。

-  gnuplot の出力ファイルに対して Metapost を実行して EPS ファイルを作
成:
\preverbatim
\begin{verbatim}
  mpost figure.mp  OR  mp figure.mp
\end{verbatim}
\postverbatim
Metapost プログラム名はシステムに依存し、Unix では通常 {\bf mpost} で、他
の多くのシステムでは {\bf mp} です。Metapost は各グラフに対して 1 つずつの
EPS ファイルを生成します。

- そのグラフを文書に取り込むには LaTeX graphics パッケージや、plainTeX
では epsf.tex を使用:
\preverbatim
\begin{verbatim}
  \usepackage{graphics} % LaTeX
  \input epsf.tex       % plainTeX
\end{verbatim}
\postverbatim
TeX DVI 出力を PS に変換するのに、dvips 以外の DVI ドライバを使う場合
は、LaTeX ファイルに以下の行を入れる必要があるかも知れません:
\preverbatim
\begin{verbatim}
  \DeclareGraphicsRule{*}{eps}{*}{}
\end{verbatim}
\postverbatim
作られた各グラフは分離したファイルになっていて、最初のグラフのファイル
は、例えば figure.0, 2 つ目は例えば figure.1 のような名前になります (出
力用に {\tt"}\%j.\%c{\tt"} 以外のテンプレートを指定していない限り)。よって、3 つ
目のグラフを文書に取り込むためにあなたがしなければいけないことは以下の
みです:
\preverbatim
\begin{verbatim}
  \includegraphics{figure.2} % LaTeX
  \epsfbox{figure.2}         % plainTeX
\end{verbatim}
\postverbatim

mp ドライバの postscript ドライバに代わる利点は、もしあるとすれば、そ
れは編集可能な出力であるということでしょう。この出力を可能な限り綺麗に
するための、かなりの努力が払われました。Metapost 言語に関するそういっ
た知識のおかげで、デフォルトの線種や色は配列 {\bf lt[]} や {\bf col[]} を編集
することで変更できるようになりました。実線/点線、カラー/白黒といった選
択も、真偽値として定義されている {\bf dashedlines} や {\bf colorlines} を変更
することで行なえます。デフォルトの {\bf tex} オプションが有効な場合、ブロ
ック {\bf verbatimtex...etex} を編集することで、ラベル文字フォントに対する
大域的な変更が行なえます。特に、もし望むなら LaTeX のプリアンブルを追
加することもでき、その場合 LaTeX の持つサイズ変更コマンドを使えるので
最大の柔軟性を発揮できるでしょう。ただし、Metapost に plainTeX でなく
LaTeX を実行させるよう、適切な MP 設定変数を設定することを忘れないでく
ださい。
\subsection*{Pcl5}
\addcontentsline{toc}{subsection}{Pcl5}
\label{commands set terminal pcl5}%
\label{set terminal pcl5}%
\label{set term pcl5}%
\label{terminal pcl5}%
\label{term pcl5}%
\label{pcl5}%
\index{pcl5}%
{\bf pcl5} ドライバは、1990 年代以降の Hewlett Packard 社製、あるいはその他
のプリンタをサポートします。

書式:
\preverbatim
\begin{verbatim}
     set terminal pcl5 {<mode>} {{no}enhanced}
         {size <plotsize> | size <width>{unit},<height>{unit}}
         {font "<fontname>,<size>"} {pspoints | nopspoints}
         {fontscale <scale>} {pointsize <scale>} {linewidth <scale}
         {rounded|butt} {color <number_of_pens>}
\end{verbatim}
\postverbatim

$<$mode$>$ は {\bf landscape} か {\bf portrait} です。$<$plotsize$>$ はグラフの物理的
な描画サイズで、それは以下のうちのいずれかです: {\bf letter} は標準の
(8 1/2{\tt"} X 11{\tt"}) 出力、{\bf legal} は (8 1/2{\tt"} X 14{\tt"}) 出力、{\bf noextended} は
(36{\tt"} X 48{\tt"}) 出力 (letter サイズ比)、{\bf extended} は (36{\tt"} X 55{\tt"}) 出力
(ほぼ legal サイズ比)、{\bf a4} は (296mm x 210mm) 出力です。さらに、明示的
にキャンバスサイズを {\bf width}, {\bf height} オプションで指定することもできま
す。単位のデフォルトは {\bf in} です。サイズのデフォルトは {\bf letter} です。

$<$fontname$>$ は stick, univers (デフォルト), albertus, antique\_olive,
arial, avant\_garde\_gothic, bookman, zapf\_chancery, clarendon, coronet,
courier, courier\_ps, cg\_times, garamond\_antigua, helvetica,
helvetica\_narrow, letter\_gothic, marigold, new\_century\_schlbk,
cg\_omega, palatino, times\_new\_roman, times\_roman, zapf\_dingbats,
truetype\_symbols, wingdings のいずれかです。フォント名では大文字小文字
は区別されず、下線はスペースかダッシュに置き換えられるかまたは取り除か
れます。$<$fontsize$>$ はポイント単位でのフォントの大きさです。

点の種類 (point type) は、{\bf nopspoints} を指定することで制限されたデフォ
ルトの組を使用できますが、{\bf pspoints} を指定すると postscript 出力形式と
同じ点種の組を使用することができるようになります。

オプション {\bf butt} (デフォルト) は尖った端と角張った接合部を持つ線を使用
し、{\bf rounded} は線の端や接合部を丸くします。

線幅や点、フォントのサイズは、それぞれオプション {\bf linewidth},
{\bf pointscale}, {\bf fontscale} で変更できます。

{\bf color} は、グラフ内で使用するペンの数 $<$number\_of\_pens$>$ を指定します。
デフォルトは 8 で、最小は 2 です。

これらのオプションのいくつかの組み込まれたサポートは、プリンタに依存す
ることに注意してください。例えば全てのフォントは恐らく HP Laserjet IV
ではサポートされているでしょうが、HP Laserjet III と Designjet 750C で
は 2,3 (例えば univers, stick) がサポートされているのみでしょう。
また、白黒の出力装置ではもちろんカラーも使えませんが、新しい物ならそれ
をグレイスケールでやってくれるでしょう。

デフォルト: landscape, a4, 8 色, univers, 12 point, pspoints, butt,
\preverbatim
\begin{verbatim}
           スケーリングなし
\end{verbatim}
\postverbatim

{\bf pcl5} 出力形式は、{\bf encoding} の設定に合うフォントを要求しようとします。
これは最高の優先度を持つので、結果的に違うフォントの見た目になってしま
かもしれないことに注意してください。この出力ドライバのデフォルトの
{\bf encoding} は、{\bf HP Roman-8} です。

制限:

この出力ドライバは、透過性のアルファ値はサポートしていません。透過型の
塗り潰しは陰影パターンによる疑似的なものです。箱付き文字列は実装してい
ません。

UTF-8 のサポートも制限があります。HP-GL/2 で UTF-8 出力に対するラベルモ
ードが欠けているため、このドライバは 8bit 文字が含まれている文字列に対
しては PCL に戻ります。UTF-8 文字列の回転は、0, 90, 180, 270 度の角のみ
に制限されます。垂直方向の位置合わせも、フォントによっては効かなくなり
えます。

拡張文字列のいくつかの機能 (空ボックスや重ね書き) は、HP-GL/2 に加えて
\preverbatim
\begin{verbatim}
PCL の機能を使うことが必要になります。それは、その能力を持つものには合
\end{verbatim}
\postverbatim
いますが、あなたのプリンタやソフトウェアでは機能しないかもしれません。
\subsection*{Pdfcairo}
\addcontentsline{toc}{subsection}{Pdfcairo}
\label{set terminal pdfcairo}%
\label{terminal pdfcairo}%
\label{set term pdfcairo}%
\label{term pdfcairo}%
\label{pdfcairo}%
\index{pdfcairo}%
出力形式 {\bf pdfcairo} は、PDF 出力を生成します。実際の描画は、2D グラフ
ィックライブラリである cairo と、文字列の配置とレンダリング用のライブ
ラリ pango を経由して行われます。

書式:
\preverbatim
\begin{verbatim}
       set term pdfcairo
                    {{no}enhanced} {mono|color}
                    {font <font>} {fontscale <scale>}
                    {linewidth <lw>} {rounded|butt|square} {dashlength <dl>}
                    {background <rgbcolor>
                    {size <XX>{unit},<YY>{unit}}
\end{verbatim}
\postverbatim

この出力形式は、ラベルやその他の文字列を、デフォルトで拡張文字列処理モ
ード (enhanced text mode) で処理します。以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。

描画における全ての線の幅は、{\bf linewidth} で指定する因子 $<$lw$>$ で変更でき
ます。デフォルトの線幅は 0.5 ポイントです。(1 {\tt"}PostScript{\tt"} ポイント
= 1/72 インチ = 0.353 mm)

{\bf rounded} は、線の端や接合部を丸くします。
デフォルトの {\bf butt} は尖った端と角張った接合部を使用します。

PDF 出力のデフォルトのサイズは、5inch x 3inch です。オプション {\bf size} 
は、これをユーザの指定するものへ変更します。デフォルトの X, Y サイズの
単位はインチですが、他の単位も使用可能です (現在は cm のみ)。
{\bf font} は、{\tt"}FontFace,FontSize{\tt"} の書式、つまりフォント名とサイズをカ
ンマで区切った一つの文字列として表記します。FontFace は、'Arial' の
ような通常のフォント名です。フォント名を与えない場合、pdfcairo 出力形
式では'Sans' が使用されます。FontSize はポイント単位でのフォントサイ
ズです。指定しない場合は、pdfcairo 出力形式では 12 ポイントサイズの標
準フォントが使用されます。しかし、この出力形式のパラメータ fontscale
のデフォルトは 0.5 なので、PDF 出力をフルサイズで見た場合、見かけのフ
ォントサイズは、名目上のポイントサイズよりも小さくなるでしょう。

\preverbatim
\begin{verbatim}
  例 :
     set term pdfcairo font "Arial,12"
     set term pdfcairo font "Serif" # フォント名のみ変更
     set term pdfcairo font ",14" # フォントサイズのみ変更
     set term pdfcairo font "" # フォント名とサイズをリセット
\end{verbatim}
\postverbatim

フォントは、通常のフォント処理機構により取得されます。Windows では、フ
ォントはコントロールパネルの {\tt"}フォント{\tt"} の項目で構成され見つけられる
もので、UNIX では、フォントは {\tt"}fontconfig{\tt"} で処理されます。

文字列の処理を行うライブラリ Pango は、utf-8 に基づいているので、必要
なら pdfcairo 出力形式は、あなたの文字コードを utf-8 に変換します。入
力で想定する文字コードはあなたが使用している 'locale' から取るので、
あなたの文字列が実際には違う文字コードならば、あなたがどの文字コードを
使っているのかを確実に gnuplot がわかるようにしてください。詳細は以下
参照: {\bf encoding (p.~\pageref{encoding})\index{encoding}}。

pango は、unicode マッピングでないフォントに対しては予期せぬ結果を与え
るかもしれません。例えば Symbol フォントに対しては、pdfcairo 出力形式
は、文字コードを unicode に変換するために http://www.unicode.org/ で提
供されるマッピングを利用します。なお、{\tt"}the Symbol font{\tt"} は、Acrobat
Reader と一緒に {\tt"}SY\_\_\_\_\_\_.PFB{\tt"} として配布されている Adobe Symbol フ
ォントであると解釈されることに注意してください。この代わりに、
OpenOffice.org と一緒に {\tt"}opens\_\_\_.ttf{\tt"} として配布される OpenSymbol
フォントが同じ文字を提供しています。Microsoft も Symbol フォント
({\tt"}symbol.ttf{\tt"}) を配布していますが、これは異なる文字セットになってい
て、いくつかは欠けていますし、いくつかは数式記号に変わってしまっていま
す。あなたのデフォルトの設定でなんらかの問題が起きた場合 (例えばデモス
クリプト enhancedtext.dem がちゃんと表示されないといった場合) は、
Adobe か OpenOffice の Symbol フォントをインストールして、Microsoft の
Symbol フォントを削除しないといけないかもしれません。{\tt"}windings{\tt"} のよ
うな他の非標準のフォントでも動作することが報告されています。

グラフのレンダリングは、アンチエイリアス、オーバーサンプリングの 2 つ
の機構を持っています。アンチエイリアスは、水平や垂直でない線をより滑ら
かにします。オーバーサンプリングは、アンチエイリアスと組でピクセルより
も小さいサイズでの精度を提供し、gnuplot が非整数座標の直線を書けるよう
になります。これは、対角方向の直線 (例えば 'plot x') が左右に揺れるの
を避けます。

\subsection*{Pict2e}
\addcontentsline{toc}{subsection}{Pict2e}
\label{commands set terminal pict2e}%
\label{set terminal pict2e}%
\label{set term pict2e}%
\label{terminal pict2e}%
\label{term pict2e}%
\label{pict2e}%
\index{pict2e}%
出力形式 {\bf pict2e} は、picture 環境の LaTeX2e 用の変種を使用します。これ
は、元々の LaTeX picture 環境に基づく出力形式である {\bf latex}, {\bf emtex},
{\bf tpic}, {\bf eepic} に置き換わるものです。

この出力形式に代わり、より完全に gnuplot の機能をサポートするものとして
{\bf tikz}, {\bf pstricks}, {\bf cairolatex}, {\bf pslatex}, {\bf epslatex}, {\bf mp} がありま
す。

書式:
\preverbatim
\begin{verbatim}
     set terminal pict2e
                  {font "{<fontname>}{,<fontsize>}"}
                  {size <XX>{unit}, <YY>{unit}}
                  {color | monochrome}
                  {linewidth <lw>} {rounded | butt}
                  {texarrows | gparrows} {texpoints | gppoints}
                  {smallpoints | tinypoints | normalpoints}
\end{verbatim}
\postverbatim

この出力形式は、以下の LaTeX 標準パッケージを仮定します: {\bf pict2e},
{\bf xcolor}, {\bf graphics}/{\bf graphicx}, {\bf amssymb}。pdflatex の場合は、透過のサ
ポートに {\bf transparent} パッケージを使用します。

デフォルトでは、グラフはこれが埋め込まれる文書のフォント設定を継承しま
すが、オプション {\bf font} でフォントを強制的に、例えば cmtt (Courier) や
cmr (Roman) などの指定したフォントに変更することもできます。その場合、
特定のフォントサイズにも変更できますが、そうでなければ、fontsize 引数は
その文字列用に必要なスペースを計算するのに使います。
あなたのドライバが、例えば dvips のようには任意のサイズのフォントを利用
できない場合は、標準の 10, 11, 12 ポイントサイズに限定してください。

グラフのデフォルトサイズは 5inch x 3inch ですが、オプション {\bf size} でこ
れをユーザが希望する任意のサイズに変更できます。デフォルトでは、X と Y
の単位は inch ですが、他の単位も利用できます (現在は cm のみ)。

{\bf texpoints} は、{\tt"}$\backslash$Diamond{\tt"} や {\tt"}$\backslash$Box{\tt"} のような LaTeX コマンドを使
って点 (point) の記号を書きます。これらは latexsym パッケージで提供され、
これは LaTeX の基本配布物ですので、任意の LaTeX の実装に含まれます。
他の点記号は、amssymb パッケージの記号を使用します。
{\bf gppoints} では、この出力形式は、代わりに gnuplot の内部ルーチンを使っ
て点記号を描画します。

オプション {\bf texpoints} では、3 つの異なる点サイズ指定: {\bf normalpoints},
{\bf smallpoints}, {\bf tinipoints} を選択できます。

{\bf color} は、gnuplot に $\backslash$color\{...\} コマンドを生成させ、それによりグラ
フの色付けを行います。このオプションを使用するには、あなたの LaTeX 文書
のプリアンブルに $\backslash$usepackage\{xcolor\} を入れる必要があります。
{\bf monochrome} は、色に関するコマンドを一切出力しません。
透過色の塗り潰しは、pdflatex を使用すれば利用できます。

{\bf linewidth} は、線幅の拡大倍率を設定します。
{\bf rounded} は、線の端や接合部を丸くします。{\bf butt} は尖った端と角張った接
合部を使用し、こちらがデフォルトです。

{\bf pict2e} は、点線のみサポートし、破線はサポートしていません。
デフォルトの線種はすべて実線です。変更するには、{\bf dashtype} 属性をつけて
{\bf set linetype} を使用してください。

{\bf texarrows} は、LaTeX コマンドを使用して矢 ({\bf arrow}) を描きますが、これ
はやや短かく、オプションをすべてはサポートしていません。{\bf gparrows} は、
gnuplot 自身のルーチンを用いて矢を描くことを選択しますが、こちらはすべ
ての機能を備えています。

\subsection*{Png}
\addcontentsline{toc}{subsection}{Png}
\label{commands set terminal png}%
\label{set terminal png}%
\label{set term png}%
\label{terminal png}%
\label{term png}%
\label{png}%
\index{png}%
書式:
\preverbatim
\begin{verbatim}
     set terminal png 
            {{no}enhanced}
            {{no}transparent} {{no}interlace}
            {{no}truecolor} {rounded|butt}
            {linewidth <lw>} {dashlength <dl>}
            {tiny | small | medium | large | giant}
            {font "<face> {,<pointsize>}"} {fontscale <scale>}
            {size <x>,<y>} {{no}crop}
            {background <rgb_color>}
\end{verbatim}
\postverbatim

PNG, JPEG, GIF 画像は、外部ライブラリ libgd を使って生成されます。PNG
の描画は、ImageMagick パッケージのソフト 'display' にその出力を以下の
ようにパイプで渡すことで対話的に表示させることができます:
\preverbatim
\begin{verbatim}
              set term png
              set output '| display png:-'
\end{verbatim}
\postverbatim
次の描画コマンドからの出力は、display ウィンドウ上で対話的に $<$space$>$
を打つことで見ることができます。現在の描画をファイルに保存するには、
display ウィンドウで左クリックし、{\bf save} を選択してください。

{\bf transparent} は、ドライバに背景色の透明化 (transparent) を行うよう指
示します。デフォルトは {\bf notransparent} です。

{\bf interlace} は、ドライバにインターレース GIF を生成するよう指示します。
デフォルトは {\bf nointerlace} です。

オプション {\bf linewidth} と {\bf dashlength} は拡大率で、描画されるすべての
線に影響を与えます。すなわち、これらは様々な描画コマンドで要求される値
にかけ算されます。

デフォルトでは、png 出力形式は、1 ピクセル毎に 24bit の色情報を持つ
TrueColor 画像生成します。オプション {\bf notruecolor} は、代わりに 8bit
色のみの画像 (256 個に番号付けられた色) を使用します。透明化塗りつぶし
スタイル (transparent fill style) には、オプション {\bf truecolor} が必要
です。以下参照: {\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}}。背景の透明化は、番号付け画像か TrueColor
画像で可能です。アンチエイリアスにも TrueColor が必要です。

{\bf butt} は線分の描画で、その端の点でのはみだしを起こさない描画メソッド
を使うようドライバに指示します。この設定は、線幅が 1 より大きい場合に
のみ意味があります。これの逆が {\bf rounded} で、アンチエイリアスが有効で
ない場合 ({\bf notruecolor}) 多少より均一な曲線を生成しますが、より遅くな
ります。

フォントの選択の詳細は、やや複雑です。
以下に同じ意味を持つ簡単な例を示します:
\preverbatim
\begin{verbatim}
    set term png font arial 11
    set term png font "arial,11"
\end{verbatim}
\postverbatim
より詳しい情報については、{\bf fonts} の下の該当するセクションを参照してく
ださい。

出力描画サイズ $<$x,y$>$ はピクセル単位で与えます。デフォルトは 640x480 で
す。以下も参照: {\bf canvas (p.~\pageref{canvas})\index{canvas}}, {\bf set size (p.~\pageref{set size})\index{size}}。
描画終了後の端の余白は、オプション {\bf crop} で取り除くことができ、その結
果としてその画像サイズは小さくなります。デフォルトは {\bf nocrop} です。

\subsubsection*{例}
\addcontentsline{toc}{subsubsection}{例}
\label{set term png examples}%

\preverbatim
\begin{verbatim}
     set terminal png font "arial,14" size 800,600 background "white"
\end{verbatim}
\postverbatim

これは、'arial' というフェース名のスケーラブルフォントを検索し、フォン
トサイズを 14pt に設定します。フォントの検索がどのように行われるかにつ
いては以下参照: {\bf fonts (p.~\pageref{fonts})\index{fonts}}。

\preverbatim
\begin{verbatim}
     set terminal png transparent enhanced
\end{verbatim}
\postverbatim

これは、24 ビット/ピクセルの色情報を使用し、背景を透明化します。そして
表示される文字列の配置制御として {\bf enhanced text} モードを使用します。

\subsection*{Pngcairo}
\addcontentsline{toc}{subsection}{Pngcairo}
\label{set terminal pngcairo}%
\label{terminal pngcairo}%
\label{set term pngcairo}%
\label{term pngcairo}%
\label{pngcairo}%
\index{pngcairo}%
出力形式 {\bf pngcairo} は、PNG 出力を生成します。実際の描画は、2D グラフ
ィックライブラリである cairo と、文字列の配置とレンダリング用のライブ
ラリ pango を経由して行われます。

書式:
\preverbatim
\begin{verbatim}
       set term pngcairo
                    {{no}enhanced} {mono|color}
                    {{no}transparent} {{no}crop} {background <rgbcolor>
                    {font <font>} {fontscale <scale>}
                    {linewidth <lw>} {rounded|butt|square} {dashlength <dl>}
                    {pointscale <ps>}
                    {size <XX>{unit},<YY>{unit}}
\end{verbatim}
\postverbatim

この出力形式は、拡張文字列処理モード (enhanced text mode) をサポートし
ていて、フォントや書式コマンド (上付、下付など) をラベルや他の文字列に
埋め込むことができます。拡張文字列処理モードの書式は他の gnuplot の出
力形式と共通です。詳細は、以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。

描画における全ての線の幅は、因子 $<$lw$>$ で変更できます。

{\bf rounded} は、線の端や接合部を丸くします。
デフォルトの {\bf butt} は尖った端と角張った接合部を使用します。

PNG 出力のデフォルトのサイズは、640 x 480 ピクセルです。オプション
{\bf size} は、これをユーザの指定するものへ変更します。デフォルトの X, Y
サイズの単位はピクセルですが、他の単位も使用可能です (現在は cm とイン
チ)。サイズを cm かインチで与えるとそれは、解像度 72 dpi でのピクセル
数に変換されます。{\bf size} オプションで指定されたことによる描画の端から
端までの領域は、常にスクリーン座標の 0.0 から 1.0 に対応します。

$<$font$>$ は、{\tt"}FontFace,FontSize{\tt"} の書式、つまりフォント名とサイズをカ
ンマで区切った一つの文字列として表記します。FontFace は、'Arial' の
ような通常のフォント名です。フォント名を与えない場合、pngcairo 出力形
式では'Sans' が使用されます。FontSize はポイント単位でのフォントサイ
ズです。指定しない場合は、pngcairo 出力形式では 12 ポイントのサイズが
使用されます。
\preverbatim
\begin{verbatim}
  例 :
     set term pngcairo font "Arial,12"
     set term pngcairo font "Arial" # フォント名のみ変更
     set term pngcairo font ",12" # フォントサイズのみ変更
     set term pngcairo font "" # フォント名とサイズをリセット
\end{verbatim}
\postverbatim

フォントは、通常のフォント処理機構により取得されます。Windows では、フ
ォントはコントロールパネルの {\tt"}フォント{\tt"} の項目で構成され見つけられる
もので、UNIX では、フォントは {\tt"}fontconfig{\tt"} で処理されます。

文字列のレイアウトに使用されるライブラリ Pango は、utf-8 に基づいてい
ますので、pngcairo 出力形式では、文字コードを utf-8 に変換する必要があ
ります。デフォルトの入力文字コードは、あなたが使用している 'locale'
に基づきます。他の文字コードにしたい場合は、あなたがどの文字コードを使
っているのかを確実に gnuplot がわかるようにしてください。詳細について
は、以下参照: {\bf encoding (p.~\pageref{encoding})\index{encoding}}。

pango は、unicode マッピングでないフォントに対しては予期せぬ結果を与え
るかもしれません。例えば Symbol フォントに対しては、pngcairo 出力形式
は、文字コードを unicode に変換するために http://www.unicode.org/ で提
供されるマッピングを利用します。なお、{\tt"}the Symbol font{\tt"} は、Acrobat
Reader と一緒に {\tt"}SY\_\_\_\_\_\_.PFB{\tt"} として配布されている Adobe Symbol フ
ォントであると解釈されることに注意してください。この代わりに、
OpenOffice.org と一緒に {\tt"}opens\_\_\_.ttf{\tt"} として配布される OpenSymbol
フォントが同じ文字を提供しています。Microsoft も Symbol フォント
({\tt"}symbol.ttf{\tt"}) を配布していますが、これは異なる文字セットになってい
て、いくつかは欠けていますし、いくつかは数式記号に変わってしまっていま
す。あなたのデフォルトの設定でなんらかの問題が起きた場合 (例えばデモス
クリプト enhancedtext.dem がちゃんと表示されないといった場合) は、
Adobe か OpenOffice の Symbol フォントをインストールして、Microsoft の
Symbol フォントを削除しないといけないかもしれません。

レンダリングは、cairo と pango ライブラリがサポートする範囲内で、オーバ
ーサンプリングとアンチエイリアス、フォントのヒンティングを行います。

\subsection*{Postscript}
\addcontentsline{toc}{subsection}{Postscript}
\label{commands set terminal postscript}%
\label{set terminal postscript}%
\label{set term postscript}%
\label{terminal postscript}%
\label{term postscript}%
\label{postscript}%
\index{postscript}%
{\bf postscript} ドライバではいくつかのオプションが設定できます。

書式:
\preverbatim
\begin{verbatim}
     set terminal postscript {default}
     set terminal postscript {landscape | portrait | eps}
                             {enhanced | noenhanced}
                             {defaultplex | simplex | duplex}
                             {fontfile {add | delete} "<filename>"
                              | nofontfiles} {{no}adobeglyphnames}
                             {level1 | leveldefault | level3}
                             {color | colour | monochrome}
                             {background <rgbcolor> | nobackground}
                             {dashlength | dl <DL>}
                             {linewidth | lw <LW>} {pointscale | ps <PS>}
                             {rounded | butt}
                             {clip | noclip}
                             {palfuncparam <samples>{,<maxdeviation>}}
                             {size <XX>{unit},<YY>{unit}}
                             {blacktext | colortext | colourtext}
                             {{font} "fontname{,fontsize}" {<fontsize>}}
                             {fontscale <scale>}
\end{verbatim}
\postverbatim
以下のようなエラーメッセージが出た場合:
\preverbatim
\begin{verbatim}
     "Can't find PostScript prologue file ... "
\end{verbatim}
\postverbatim
以下参照: {\bf postscript prologue (p.~\pageref{postscript prologue})\index{prologue}}。そしてその指示に従ってください。


{\bf landscape} と {\bf portrait} は出力が横置か、縦置かを選択します。
{\bf eps} モードは EPS (Encapsulated PostScript) 出力を生成しますが、これ
は通常の PostScript に、それを他の多くのアプリケーションで取り込むこと
ができるようにいくつかの行を追加したものです (追加される行は PostScript
のコメント行なので、よってそれ自身もちゃんと印刷できます)。EPS 出力を
得るには {\bf eps} モードを使用し、1 つのファイルには 1 つのグラフのみ、と
してください。{\bf eps} モードではフォントも含めてグラフ全体がデフォルトの
大きさの半分に縮められます。

{\bf enhanced} は拡張文字列処理モード (上付き文字、下付き文字、および複数
のフォントの利用) の機能を有効にします。詳細は、以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。
{\bf blacktext} は、たとえカラーモードでも全ての文字列を黒で書きます。

PostScript の両面印刷命令 (duplex) は、プリンタで 1 枚の紙に両面印刷す
ることを可能にします。{\bf defaultplex} はプリンタのデフォルトの設定を使用
し、{\bf simplex} は紙の片面のみ印刷、{\bf duplex} は 両面印刷を行ないます (あ
なたのプリンタがそれを行なえないなら無視されます)。

{\bf {\tt"}$<$fontname$>${\tt"}} は有効な PostScript フォントの名前で、{\bf $<$fontsize$>$} は
PostScript ポイント単位でのフォントの大きさです。
標準的な postscript フォント以外に、数式を表現するのに便利な oblique
Symbol フォント ({\tt"}Symbol-Oblique{\tt"}) が定義されています。

{\bf default} は全てのオプションを以下のデフォルトの値に設定します:
{\bf landscape}, {\bf monochrome}, {\bf dl 1.0}, {\bf lw 1.0}, {\bf defaultplex},
{\bf enhanced}, {\tt"}Helvetica{\tt"}, 14pt。PostScript のグラフのデフォルトの大き
さは、10 インチの幅で 7 インチの高さです。
オプション {\bf color} はカラーを有効にし、{\bf monochrome} は各要素を黒と白
描画します。さらに、{\bf monochrome} は灰色の {\bf palette} も使用しますが、
これは、明示的に {\bf colorspec} で指定された部品の色を変更しません。

{\bf dashlength} または {\bf dl} は点線の線分の長さを $<$DL$>$ (0 より大きい実数)
に設定し、
{\bf linewidth} または {\bf lw} は全ての線の幅を $<$LW$>$ に設定します。

デフォルトでは、生成される PostScript コードは、特にフィルタリングや
filledcurves のようなでこぼこな領域のパターン塗りつぶしにおいて、
PostScript Level 2 として紹介されている言語機能を使います。PostScript
Level 2 の機能は条件的に保護されていて、PostScript Level 1 のインター
プリタがエラーを出さず、むしろメッセージか PostScript Level 1 による
近似であることを表示するようになっています。{\bf level1} オプションは、こ
れらの機能を近似する PostScript Level1 で代用し、PostScript Level 2 
コードを一切使用しません。これは古いプリンタや、Adobe Illustrator の
古いバージョンなどで必要になるかもしれません。このフラグ {\bf level1} は
出力された PostScript ファイルのある一行を手で編集することで、後から
強制的に PostScript Level 1 機能を ON/OFF にすることもできます。level
2 のコードが含まれている場合、上の機能は現われないか、このフラグがセ
ットされた場合、あるいは PostScript インタプリタプログラムが level 2
以上の PostScript を解釈するとは言わなかった場合に警告文に置き換わり
ます。{\bf level3} オプションは、ビットマップ画像の PNG 化の機能を有効に
します。それにより出力サイズをかなり削減できます。

{\bf rounded} は、線の端や接合部を丸くし、デフォルトの {\bf butt} は尖った端と
角張った接合部を使用します。

{\bf clip} は、PostScript にすべての出力を BoundingBox (PostScript の外枠)
でクリップすることを指示します; デフォルトは {\bf noclip} です。

{\bf palfuncparam} は {\bf set palette functions} から出力の傾きをどのようにコ
ード化するかを制御します。解析的な色の成分関数 ({\bf set palatte functions} 
で設定される) は、postscript 出力では傾きの線形補完を用いてコード化さ
れます: まず色の成分関数が $<$samples$>$ 個の点で標本化され、そしてそれら
の点は、結果として線形補完との偏差が $<$maxdeviation$>$ 以内に収まるように
削除されます。ほとんど全ての有効なパレットで、デフォルトの $<$samples$>$
=2000 と $<$maxdeviation$>$=0.003 の値をそのまま使うのが良いでしょう。

PostScript 出力のデフォルトの大きさは 10 インチ x 7 インチです。EPS 
出力のデフォルトの大きさは 5 x 3.5 インチです。オプション {\bf size} は
これらをユーザが指定したものに変更します。デフォルトでは X と Y のサ
イズの単位はインチとみなされますが、他の単位 (現在は cm のみ) も使う
ことはできます。描画の BoundingBox (PostScript ファイルの外枠) は、
サイズが変更された画像を丁度含むように正しく設定されます。
スクリーン座標は、オプション {\bf size} で指定された描画枠の全体が 0.0
から 1.0 になります。

{\bf fontfile} や {\bf fontfile add} で指定されたフォントは、そのフォントのフ
ォント定義を直接 postscript Type 1, TrueType フォントから gnuplot の
postscript 出力の中にカプセル化します。よって、その埋め込まれたフォン
トは見出し、タイトルなどに使うことができます。詳細は、以下参照:
{\bf postscript fontfile (p.~\pageref{postscript fontfile})\index{fontfile}}。{\bf fontfile delete} によってフォントファイルを埋
め込まれるファイルの一覧から取り除くことができます。
{\bf nofontfiles} は埋め込みフォントのリストをクリアします。

{\bf postscript} ドライバは約 70 種類の異なる点種をサポートしていて、これ
は {\bf plot} や {\bf set linetype} の {\bf pointtype} オプションで選択できます。

{\bf gnuplot} と Postscript に関する多分有用と思われるファイルが {\bf gnuplot}
の配布物、またはその配布サイトの /docs/psdos サブディレクトリ内にいく
つか含まれています。そこには {\tt"}ps\_symbols.gpi{\tt"} (実行すると {\bf postscript}
ドライバで使える全ての記号を紹介する {\tt"}ps\_symbols.ps{\tt"} というファイルを生
成する {\bf gnuplot} のコマンドファイル)、{\tt"}ps\_guide.ps{\tt"} (拡張された書式に
関する要約と、文字列内で 8 進コードで生成されるもの、symbol フォント等
を含む PostScript ファイル)、{\tt"}ps\_file.doc{\tt"} ({\bf gnuplot} で作られる
PostScript ファイルの構造の説明を含むテキストファイル)、
{\tt"}ps\_fontfile\_doc.tex{\tt"} (数式フォントの文字の一覧と LaTeX のフォントの埋
め込みに関する短い説明を含む LaTeX ファイル) があります。

PostScript ファイルは編集可能で、一度 {\bf gnuplot} でそれを作れば、それを
望むように修正することは自由に行なえます。そのためのヒントを得るには、
以下参照: {\bf editing postscript (p.~\pageref{editing postscript})\index{postscript}}。
\subsubsection*{PostScript の編集 (editing postscript)}
\addcontentsline{toc}{subsubsection}{PostScript の編集 (editing postscript)}
\label{commands set terminal postscript editing}%
\label{set terminal postscript editing}%
\label{set term postscript editing}%
\label{terminal postscript editing}%
\label{term postscript editing}%
\label{editing_postscript}%
\index{editing postscript}%
\label{editing postscript}%
PostScript 言語はとても複雑な言語で、ここで詳細を記述することはとても
できません。それでも、{\bf gnuplot} で作られる PostScript ファイルには、致
命的なエラーをそのファイルに導入してしまう危険性のない変更を行なうこと
が可能な部分があります。

例えば、PostScript の文 {\tt"}/Color true def{\tt"} ({\bf set terminal postscript color}
コマンドに答えてファイルに書き込まれます) を変更して、その描画を白黒の
ものにする方法はおわかりでしょう。同様に、線の色、文字の色、線の太さ
(weight)、記号のサイズも、本当に簡単に書き換えられるでしょう。タイトル
や見出しなどの文字列の誤植や、フォントの変更も編集可能でしょう。任意の
ものの配置も変更できますし、もちろん、任意のものを追加したり、削除した
りもできますが、それらの修正は PostScript 言語の深い知識が必要でしょう。

{\bf gnuplot} によって作られる PostScript ファイルの構成に関しては、gnuplot
のソース配布物内の docs/ps ディレクトリのテキストファイル {\tt"}ps\_file.doc{\tt"}
に述べられています。
\subsubsection*{Postscript fontfile}
\addcontentsline{toc}{subsubsection}{Postscript fontfile}
\label{commands set terminal postscript fontfile}%
\label{set terminal postscript fontfile}%
\label{set term postscript fontfile}%
\label{terminal postscript fontfile}%
\label{term postscript fontfile}%
\label{postscript fontfile}%
\label{fontfile}%
\index{fontfile}%
\preverbatim
\begin{verbatim}
     set term postscript ... fontfile {add|delete} <filename>
\end{verbatim}
\postverbatim
オプション {\bf fontfile} または {\bf fontfile add} は 1 つのファイル名を引数
として持ち、そのファイルを postscript 出力内にカプセル化して埋め込み、
それによって様々な文字列要素 (ラベル、目盛り見出し、タイトル等) をその
フォントで出力することを可能にします。オプション {\bf fontfile delete} も
1 つのファイル名を引数に持ち、そのファイル名をカプセル化されるファイル
のリストから削除します。

postscript 出力ドライバはいくつかのフォントファイル形式を認識します:
ASCII 形式の Type 1 フォント (拡張子 {\tt"}.pfa{\tt"})、バイナリ形式の Type 1 フ
ォント (拡張子 {\tt"}.pfb{\tt"})、TrueType フォント (拡張子 {\tt"}.ttf{\tt"})。pfa ファイ
ルは直接認識されますが、pfb と ttf ファイルは gnuplot の実行中に並行し
て変換され、そのために適切な変換ツール (下記参照) がインストールされて
いる必要があります。ファイル名は拡張子も含めて完全な形で指定する必要が
あります。各 {\bf fontfile} オプションはちょうど一つのフォントファイル名に
対応しますので、複数のフォントファイルを埋め込むためにはこのオプション
を複数回使って下さい。

フォントファイルを見つけるための検索順は以下の通りです。
(1) 絶対パス名、または現在の作業ディレクトリ (カレントディレクトリ)
(2) {\bf set loadpath} で指定したディレクトリのすべて
(3) {\bf set fontpath} で指定したディレクトリ
(4) 環境変数 GNUPLOT\_FONTPATH に指定されているディレクトリ

埋め込まれたフォントファイルを使うには、フォント名を指定する必要があり
ますが、それは通常ファイル名と同じではありません。対話モードで
{\bf fontfile} オプションを使ってフォントを埋め込んだ場合、フォント名はス
クリーンに表示されます。

例:
\preverbatim
\begin{verbatim}
  set term post "VAGRoundedBT_Regular" 14 fontfile "bvrr8a.pfa"
    Font file 'bvrr8a.pfa' contains the font 'VAGRoundedBT_Regular'.
    Location: /usr/share/fonts/Type1/bvrr8a.pfa
\end{verbatim}
\postverbatim

pfa や pfb フォントでは、フォント名はフォントファイル内に見つけること
ができます。フォントファイル中に {\tt"}/FontName /URWPalladioL-Bold def{\tt"} の
ような行がありますが、この真中の物から / を除いたものがフォント名です。
この例の場合は {\tt"}URWPalladioL-Bold{\tt"} となります。
TrueType フォントでは、フォント名はバイナリ形式で保存されているので見
つけるのは容易ではありません。さらに、その名前は多くの場合、Type 1 フ
ォント (実行中に TrueType が変換される形式である) ではサポートされてい
ない、スペースを含んだ形式になっています。そのため、フォント名はそこか
らスペースを取り除いた形に変換されます。gnuplot で使うために生成された
フォント名が何であるかを知る最も簡単な方法は、gnuplot を対話モードで起
動して、以下のように入力することです:
{\tt"}set terminal postscript fontfile '$<$filename.ttf$>$'{\tt"}.

フォントファイル (ttf, pfb) を pfa 形式に変換するために、フォントファ
イルを読んで、そして変換結果を標準出力に吐き出す変換ツールが必要になり
ます。その出力を標準出力に書き出すことができない場合、実行中の変換はで
きません。

pfb ファイルに対しては、例えば {\tt"}pfbtops{\tt"} が使えます。それがシステム
にインストールされていれば、実行中の変換はうまく行くはずです。pfb ファ
イルのカプセル化をちょっとやってみましょう。もしプログラムの変換時に正
しくツールを呼び出していない場合は、どのようにツールを呼び出したら良い
かを環境変数 GNUPLOT\_PFBTOPFA に、例えば {\tt"}pfbtops \%s{\tt"} のように定義し
て下さい。{\bf \%s} はフォントファイル名に置き換えられますので、これはその
文字列に必ず必要です。

実行中の変換をしたくなくて、けれども pfa 形式のファイルは必要である場
合、{\tt"}pfb2pfa{\tt"} という C で書かれた簡単なツールを使えば良いでしょう。こ
れは大抵の C コンパイラでコンパイルでき、たくさんの ftp サーバに置いて
あります。例えば
\href{ftp://ftp.dante.de/tex-archive/fonts/utilities/ps2mf/}{\tt           ftp://ftp.dante.de/tex-archive/fonts/utilities/ps2mf/
}

実際に {\tt"}pfbtopfa{\tt"} と {\tt"}pfb2ps{\tt"} は同じ作業を行います。{\tt"}pfbtops{\tt"} は結果の
pfa コードを標準出力に出力しますが、{\tt"}pfbtopfa{\tt"} はファイルに出力します。

TrueType フォントは、例えば {\tt"}ttf2pt1{\tt"} というツールを使って Type 1 pfa
フォーマットに変換できます。これは以下にあります:
\href{http://ttf2pt1.sourceforge.net/}{\tt           http://ttf2pt1.sourceforge.net/
}

もし gnuplot に組み込まれている変換手順がうまく行かない場合、変換コマ
ンドは環境変数 GNUPLOT\_TTFTOPFA で変更できます。ttf2pt1 を使う場合は、
それを {\tt"}ttf2pt1 -a -e -W 0 \%s - {\tt"} のように設定して下さい。ここでも
{\bf \%s} はファイル名を意味します。

特殊な用途のために、パイプも使えるようになっています (パイプをサポート
している OS 上で)。ファイル名を {\tt"}$<${\tt"} で始め、その後にプログラム呼び出し
を追加します。そのプログラム出力は標準出力への pfa データでなければい
けません。結果として pfa ファイルを、例えば以下のようにしてアクセスで
きることになります: {\bf set fontfile {\tt"}$<$ cat garamond.pfa{\tt"}}。

Type 1 フォントを取り込むことは、例えば LaTeX 文書中に postscript ファ
イルを取り込む場合に使えます。pfb 形式の {\tt"}european computer modern{\tt"} フ
ォント ({\tt"}computer modern{\tt"} フォントの一種) が各地の CTAN サーバに置かれ
ています。
\href{ftp://ftp.dante.de/tex-archive/fonts/ps-type1/cm-super/}{\tt           ftp://ftp.dante.de/tex-archive/fonts/ps-type1/cm-super/
}

例えば、ファイル {\tt"}sfrm1000.pfb{\tt"} は、中太、セリフ付き、立体の 10 ポイン
トのフォント (フォント名 {\tt"}SFRM1000{\tt"}) です。computer modern フォントは
今でも数式を書くのに必要ですが、それは以下にあります:
\href{ftp://ftp.dante.de/tex-archive/fonts/cm/ps-type1/bluesky}{\tt           ftp://ftp.dante.de/tex-archive/fonts/cm/ps-type1/bluesky
}

これらによって、TeX 用の任意の文字も使えます。しかし、computer modern
フォントは少しエンコーディングがおかしくなっています (このため、文字列
には cmr10.pfb の代わりに sfrm1000.pfb を使うべきです)。
TeX フォントの使用法はいくつかのデモの一つで知ることができます。
{\bf gnuplot} のソース配布物の /docs/psdoc に含まれるファイル
{\tt"}ps\_fontfile\_doc.tex{\tt"} に TeX 数学フォントの文字の一覧表が含まれていま
す。

フォント {\tt"}CMEX10{\tt"} (ファイル {\tt"}cmex10.pfb{\tt"}) を埋め込むと、gnuplot は
追加フォント {\tt"}CMEX10-Baseline{\tt"} も定義します。それは、他の文字にあうよ
うに垂直方向にずらされたものです (CMEX10 は、記号の天辺にベースライン
があります)。
\subsubsection*{PostScript prologue ファイル}
\addcontentsline{toc}{subsubsection}{PostScript prologue ファイル}
\label{commands set terminal postscript prologue}%
\label{set terminal postscript prologue}%
\label{terminal postscript prologue}%
\label{postscript prologue}%
\label{prologue}%
\index{prologue}%
各 PostScript 出力ファイルは \%\%Prolog セクションを含みますし、例えば文
字エンコーディングなどを含む追加ユーザ定義セクションを含むかもしれませ
せん。これらのセクションは、gnuplot の実行ファイル中にコンパイルされて
いる、あるいはあなたのコンピュータの別のところに保存されている
PostScript prologue ファイル群からコピーされます。これらのファイルが置
かれるデフォルトのディレクトリは、gnuplot のインストール時に設定されま
すが、このデフォルトは gnuplot コマンドの {\bf set psdir} を使うか、環境変
数 GNUPLOT\_PS\_DIR を定義することで変更できます。以下参照: {\bf set psdir (p.~\pageref{set psdir})\index{psdir}}。
\subsubsection*{Postscript adobeglyphnames}
\addcontentsline{toc}{subsubsection}{Postscript adobeglyphnames}
\label{commands set terminal postscript adobeglyphnames}%
\label{set terminal postscript adobeglyphnames}%
\label{terminal postscript adobeglyphnames}%
\label{postscript adobeglyphnames}%
\label{adobeglyphnames}%
\index{adobeglyphnames}%
\index{UTF 8}%
この設定は、UTF-8 エンコーディングでの PostScript 出力にのみ関係します。
これは、0x00FF より大きい Unicode エントリポイント (つまり Latin1 集合
外のすべて) の文字を記述するのに使われる名前を制御します。一般に、
unicode 文字は一意の名前を持たず、それは unicode 識別番号しか持ちませ
ん。しかし、Adobe は、ある範囲の文字 (拡張ラテン文字、ギリシャ文字等)
に名前を割り当てる推奨規則を持っています。フォントによってはこの規則を
利用しているものありますし、そうでないものもあります。gnuplot はデフォ
ルトでは Adobe グリフ名を使用します。例えば、ギリシャ文字の小文字のア
ルファは /alpha となります。{\bf noadobeglyphnames} を指定した場合、この文
字に対して gnuplot は代わりに /uni03B1 を使おうとします。
この設定でおかしくなったとすれば、それはその文字がフォント内にあるにも
かかわらずそれが見つからない場合です。Adobe フォントに対しては、デフォ
ルトを使うのが常に正しいかもしれませんが、他のフォントでは両方の設定を
試してみないといけないかもしれません。以下も参照: {\bf fontfile (p.~\pageref{fontfile})\index{fontfile}}。


\subsection*{Pslatex and pstex}
\addcontentsline{toc}{subsection}{Pslatex and pstex}
\label{commands set terminal pslatex}%
\label{set terminal pslatex}%
\label{set term pslatex}%
\label{terminal pslatex}%
\label{term pslatex}%
\label{pslatex}%
\index{pslatex}%
\label{commands set terminal pstex}%
\label{set terminal pstex}%
\label{set term pstex}%
\label{terminal pstex}%
\label{term pstex}%
\label{pstex}%
\index{pstex}%
{\bf pslatex} ドライバは LaTeX で後処理される出力を生成し、{\bf pstex} ドライ
バは TeX で後処理される出力を生成します。{\bf pslatex} は dvips と xdvi で
認識可能な $\backslash$special 命令を使用します。{\bf pstex} で生成される図は、任意
の plain-TeX ベースの TeX (LaTeX もそうです) で取り込むことができます。

書式:
\preverbatim
\begin{verbatim}
     set terminal [pslatex | pstex] {default}
     set terminal [pslatex | pstex]
                             {rotate | norotate}
                             {auxfile | noauxfile}
                             {level1 | leveldefault | level3}
                             {color | colour | monochrome}
                             {background <rgbcolor> | nobackground}
                             {dashlength | dl <DL>}
                             {linewidth | lw <LW>} {pointscale | ps <PS>}
                             {rounded | butt}
                             {clip | noclip}
                             {palfuncparam <samples>{,<maxdeviation>}}
                             {size <XX>{unit},<YY>{unit}}
                             {<font_size>}
\end{verbatim}
\postverbatim

以下のようなエラーメッセージが出た場合:
\preverbatim
\begin{verbatim}
     "Can't find PostScript prologue file ... "
\end{verbatim}
\postverbatim
以下参照: {\bf postscript prologue (p.~\pageref{postscript prologue})\index{prologue}}。そしてその指示に従ってください。

オプション {\bf color} はカラーを有効にし、{\bf monochrome} は各要素を黒と白
描画します。さらに、{\bf monochrome} は灰色の {\bf palette} も使用しますが、
これは、明示的に {\bf colorspec} で指定された部品の色を変更しません。

{\bf dashlength} または {\bf dl} は点線の線分の長さを $<$DL$>$ (0 より大きい実数)
に設定し、
{\bf linewidth} または {\bf lw} は全ての線の幅を $<$LW$>$ に設定します。

デフォルトでは、生成される PostScript コードは、特にフィルタリングや
filledcurves のようなでこぼこな領域のパターン塗りつぶしにおいて、
PostScript Level 2 として紹介されている言語機能を使います。PostScript
Level 2 の機能は条件的に保護されていて、PostScript Level 1 のインター
プリタがエラーを出さず、むしろメッセージか PostScript Level 1 による
近似であることを表示するようになっています。{\bf level1} オプションは、こ
れらの機能を近似する PostScript Level1 で代用し、PostScript Level 2 
コードを一切使用しません。これは古いプリンタや、Adobe Illustrator の
古いバージョンなどで必要になるかもしれません。このフラグ {\bf level1} は
出力された PostScript ファイルのある一行を手で編集することで、後から
強制的に PostScript Level 1 機能を ON/OFF にすることもできます。level
2 のコードが含まれている場合、上の機能は現われないか、このフラグがセ
ットされた場合、あるいは PostScript インタプリタプログラムが level 2
以上の PostScript を解釈するとは言わなかった場合に警告文に置き換わり
ます。{\bf level3} オプションは、ビットマップ画像の PNG 化の機能を有効に
します。それにより出力サイズをかなり削減できます。

{\bf rounded} は、線の端や接合部を丸くし、デフォルトの {\bf butt} は尖った端と
角張った接合部を使用します。

{\bf clip} は、PostScript にすべての出力を BoundingBox (PostScript の外枠)
でクリップすることを指示します; デフォルトは {\bf noclip} です。

{\bf palfuncparam} は {\bf set palette functions} から出力の傾きをどのようにコ
ード化するかを制御します。解析的な色の成分関数 ({\bf set palatte functions} 
で設定される) は、postscript 出力では傾きの線形補完を用いてコード化さ
れます: まず色の成分関数が $<$samples$>$ 個の点で標本化され、そしてそれら
の点は、結果として線形補完との偏差が $<$maxdeviation$>$ 以内に収まるように
削除されます。ほとんど全ての有効なパレットで、デフォルトの $<$samples$>$
=2000 と $<$maxdeviation$>$=0.003 の値をそのまま使うのが良いでしょう。

PostScript 出力のデフォルトの大きさは 10 インチ x 7 インチです。EPS 
出力のデフォルトの大きさは 5 x 3.5 インチです。オプション {\bf size} は
これらをユーザが指定したものに変更します。デフォルトでは X と Y のサ
イズの単位はインチとみなされますが、他の単位 (現在は cm のみ) も使う
ことはできます。描画の BoundingBox (PostScript ファイルの外枠) は、
サイズが変更された画像を丁度含むように正しく設定されます。
スクリーン座標は、オプション {\bf size} で指定された描画枠の全体が 0.0
から 1.0 になります。

{\bf rotate} が指定されると y 軸の見出しが回転されます。
$<$font\_size$>$ は希望するフォントの (ポイント単位での) 大きさです。

{\bf auxfile} が指定されると、ドライバは PostScript コマンドを、LaTeX ファ
イルに直接出力する代わりに、補助ファイルに書き出すようになります。これ
は、dvips がそれを扱えないくらい大きいグラフである場合に有用です。補助
PostScript ファイルの名前は、{\bf set output} コマンドで与えられる TeX フ
ァイルの名前から導かれるもので、それはその最後の {\bf .tex} の部分 (実際の
ファイル名の最後の拡張子の部分) を {\bf .ps} で置き換えたもの、または、TeX
ファイルに拡張子がないならば {\bf .ps} を最後に付け足したものになります。
{\bf .ps} ファイルは $\backslash$special\{psfile=...\} という命令で {\bf .tex} ファイルに
取り込まれます。{\bf multiplot} モード以外では、次の描画を行なう前にその出
力ファイルをクローズするのを忘れないでください。

pslatex ドライバは文字列の配置の制御に特別な方法を提供します:
(a) '\{' で始まる文字列は、'\}' で閉じる必要がありますが、その文字列全体
が LaTeX によって水平方向にも垂直方向にもセンタリングされます。
(b) '[' で始まる文字列の場合は、位置の指定をする文字列 (t,b,l,r のうち
2 つまで) が続き、次に ']\{'、文字列本体、で最後に '\}' としますが、この
文字列は LaTeX が LR-box として整形します。$\backslash$rule\{\}\{\} を使えばさらに良
い位置合わせが可能でしょう。

ここに記述されていないオプションは {\bf Postscript terminal} のものと同一で
すので、それらが何を行なうのかを知りたければそちらを参照してください。

例:
\preverbatim
\begin{verbatim}
     set term pslatex monochrome rotate       # デフォルトに設定
\end{verbatim}
\postverbatim
PostScript コマンドを {\tt"}foo.ps{\tt"} に書き出す:
\preverbatim
\begin{verbatim}
     set term pslatex auxfile
     set output "foo.tex"; plot ...; set output
\end{verbatim}
\postverbatim
見出しの位置合わせに関して:
gnuplot のデフォルト (大抵それなりになるが、そうでないこともある):
\preverbatim
\begin{verbatim}
      set title '\LaTeX\ -- $ \gamma $'
\end{verbatim}
\postverbatim
水平方向にも垂直方向にもセンタリング:
\preverbatim
\begin{verbatim}
      set label '{\LaTeX\ -- $ \gamma $}' at 0,0
\end{verbatim}
\postverbatim
位置を明示的に指定 (上に合わせる):
\preverbatim
\begin{verbatim}
      set xlabel '[t]{\LaTeX\ -- $ \gamma $}'
\end{verbatim}
\postverbatim
他の見出し -- 目盛りの長い見出しに対する見積り:
\preverbatim
\begin{verbatim}
      set ylabel '[r]{\LaTeX\ -- $ \gamma $\rule{7mm}{0pt}}'
\end{verbatim}
\postverbatim

線幅と点の大きさは {\bf set style line} で変更できます。

\subsection*{Pstricks}
\addcontentsline{toc}{subsection}{Pstricks}
\label{commands set terminal pstricks}%
\label{set terminal pstricks}%
\label{set term pstricks}%
\label{terminal pstricks}%
\label{term pstricks}%
\label{pstricks}%
\index{pstricks}%
{\bf pstricks} ドライバは TeX、または LaTeX の {\tt"}pstricks.sty{\tt"} マクロパッ
ケージと共に使われることを意図しています。
{\tt"}pstricks.sty{\tt"} は必要ですが、もちろん PostScript を解釈するプリンタ、
または Ghostscript のような変換ソフトも必要です。

PSTricks は以下にあります。
\href{http://tug.org/PSTricks/}{\tt           http://tug.org/PSTricks/。
}

このドライバは、PSTricks パッケージの全ての能力を使おうとなどとは全く考
えていません。

書式:
\preverbatim
\begin{verbatim}
     set terminal pstricks
                    {unit | size <XX>{unit},<YY>{unit}}
                    {standalone | input}
                    {blacktext | colortext | colourtext}
                    {linewidth <lw>} {rounded | butt}
                    {pointscale <ps>}
                    {psarrows | gparrows}
                    {background <rgbcolor>}
                    {pstricks | pdftricks2}
\end{verbatim}
\postverbatim

オプション {\bf unit} は、内部サイズ 1x1 のグラフを生成します。デフォルトの
グラフは、{\bf size 5in,3in} です。

{\bf standalone} は、そのままコンパイルできる、複数のグラフも可能な LaTeX
ファイルを生成します。デフォルトは {\bf input} で、これは他の LaTeX ファイ
から include できるものを生成します。

{\bf blacktext} は、すべての文字列を強制的に黒で書き出し、{\bf colortext} は色
付きの文字を可能にします。デフォルトは {\bf blacktext} です。

{\bf rounded} は、線の端や接合部を丸くし、デフォルトの {\bf butt} は尖った端と
角張った接合部を使用します。

{\bf linewidth} と {\bf pointscale} は、それぞれ線幅と点 (point) 記号のサイズを
伸縮します。

{\bf psarrows} は、{\bf arrow} (矢) を PSTricks コマンドで描きますが、これは少
し短かく、そしてすべてのオプションを無視します。{\bf gparrows} は、それに代
わり、gnuplot 自身のサブルーチンによる、すべての gnuplot 用の機能に対応
する arrow を描きます。

オプション {\bf pdftricks2} を使用すると、{\bf pdftricks} マクロパッケージ用の
出力を生成し、これは pdflatex/lualatex で利用できます。そうでない場合
は伝統的な tex/latex、あるいは xelatex で使用する {\bf pstricks} パッケー
ジ用の出力を生成します。

古いオプション {\bf hacktext} は、新しいデフォルトの書式 (\%h) で置き換えら
れています。以下参照: {\bf format specifiers (p.~\pageref{format specifiers})\index{specifiers}}。

透過色の使用は、Ghostscript、または PDF に変換する他のものがそれをサポ
ートしている必要があります。
\subsection*{Qms}
\addcontentsline{toc}{subsection}{Qms}
\label{commands set terminal qms}%
\label{set terminal qms}%
\label{set term qms}%
\label{terminal qms}%
\label{term qms}%
\label{qms}%
\index{qms}%
{\bf qms} ドライバは QMS/QUIC レーザープリンタ、Talaris 1200、その他をサポ
ートします。オプションはありません。
\subsection*{Qt}
\addcontentsline{toc}{subsection}{Qt}
\label{set terminal qt}%
\label{terminal qt}%
\label{set term qt}%
\label{term qt}%
\label{qt}%
\index{qt}%
{\bf qt} 出力形式は、Qt ライブラリを用いて別ウィンドウへの出力を生成します。

書式:
\preverbatim
\begin{verbatim}
       set term qt {<n>}
                   {size <width>,<height>}
                   {position <x>,<y>}
                   {title "title"}
                   {font <font>} {{no}enhanced}
                   {rounded|butt}
                   {{no}replotonresize}
                   {{no}antialias}
                   {linewidth <lw>} {dashlength <dl>}
                   {{no}persist} {{no}raise} {{no}ctrl}
                   {close}
                   {widget <id>}
\end{verbatim}
\postverbatim

複数の描画ウィンドウもサポートしていて、{\bf set terminal qt $<$n$>$} とすれば
番号 n の描画ウィンドウへ出力します。

デフォルトのウィンドウタイトルは、このウィンドウ番号に基づいています。
そのタイトルはキーワード {\tt"}title{\tt"} でも指定できます。

描画ウィンドウは、{\bf gnuplot} の出力形式を別なものに変更した後でも開いた
まま残ります。描画ウィンドウは、そのウィンドウが入力フォーカスを持って
いる状態で文字 'q' を打つか、ウィンドウマネージャメニューで {\bf close} を
選択するか、または {\bf set term qt $<$n$>$ close} とすることで閉じることができ
ます。

描画領域のサイズはピクセル単位で与えます、デフォルトは 640x480 です。
それに加えて、ウィンドウの実際のサイズには、ツールバーやステータスバー
用のスペースも追加されます。
ウィンドウのサイズを変更すると、描画グラフもウィンドウの新しいサイズに
ぴったり合うようにすぐに伸縮されます。{\bf qt} 出力形式はフォント、線幅も含
めて描画全体を伸縮しますが、全体のアスペクト比は一定に保ちます。
その後 {\bf replot} とタイプするか、ターミナルツールバーの {\bf replot} アイコ
ンをクリックするか、新たに {\bf plot} コマンドを入力すると、その新しい描画
では完全にそのウィンドウに合わせられますが、フォントサイズや線幅はそれ ぞれのデフォルトにリセットされます。

position オプションは描画ウィンドウの位置を設定するのに使えます。これは
コマンド {\bf set term} 後の最初の描画にのみ適用されます。


現在の描画ウィンドウ ({\bf set term qt $<$n$>$} で選択されたもの) は対話型で、
その挙動は、他の出力形式と共通です。詳細は、以下参照: {\bf mouse (p.~\pageref{mouse})\index{mouse}}。それには
追加のアイコンもいくつかついていますが、それらはそれ自体が説明的なもの
になっているはずです。

この出力形式は、拡張文字列処理モード (enhanced text mode) をサポートし
ていて、フォントや書式コマンド (上付、下付など) をラベルや他の文字列に
埋め込むことができます。拡張文字列処理モードの書式は、gnuplot の他の出
力形式と共通です。詳細は、以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。

$<$font$>$ は {\tt"}FontFace,FontSize{\tt"} の形式で、FontFace と FontSize とをコ
ンマで分離して一つの文字列として書きます。FontFace は、'Arial' のよ
うな通常のフォント名です。FontFace を与えない場合は、qt 出力形式は
'Sans' を使用します。FontSize はポイント単位のフォントサイズです。
FontSize を与えない場合は、qt 出力形式は 9 ポイントを使用します。
\preverbatim
\begin{verbatim}
  例 :
     set term qt font "Arial,12"
     set term qt font "Arial" # フォント名のみ変更
     set term qt font ",12" # フォントサイズのみ変更
     set term qt font "" # フォント名、、フォントサイズをリセット
\end{verbatim}
\postverbatim

dashlength は、点線/破線パターンのユーザ定義にのみ影響を与え、Qt が内部
に持っているパターンには影響を与えません。

可能な限り最も良い出力を生成するために、このレンダリングはアンチアリア
ス、オーバーサンプリング、ヒンチングの 3 つの機構を持っています。
オーバーサンプリングは、アンチエイリアスと組でピクセルよりも小さいサイ
ズでの精度を提供し、gnuplot が非整数座標の直線を書けるようになります。
これは、対角方向の直線 (例えば 'plot x') が左右に揺れるのを避けます。
ヒンティングは、オーバーサンプリングによって引き起こされる水平、垂直方
向の線分のぼかしを避けます。この出力形式は、これらの直線を整数座標に揃
え、それにより、1 ピクセル幅の直線は本当に 1 つ (1 つより多くも少なく
もない) のピクセルで描画します。

{\bf butt} は、求める線分の端点がはみ出さないような線分の描画方法を使うよう
ドライバに指示します。この設定は、線幅が 1 より大きい場合にのみ適用しま
す。この設定は、水平か垂直の線を書く場合に最も有用です。デフォルトは、
{\bf rounded} です。

オプション {\bf replotonresize} は、描画ウィンドウのサイズが変更されるとデ
ータを replot します。このオプションがない状態では、アスペクト比を変え
ないウィンドウサイズ変更の後で、ウィンドウの一部分しか描画されないかも
しれません。このオプションをつけると、gnuplot は個々のサイズ変更イベン
ト毎に完全に replot を行い、スペースを適切に利用した結果になります。こ
のオプションは、サイズ変更の間の再描画に対する CPU の内在的な集中に心配
がある場合を除いては、一般的に望ましいものです。replot は、ホットキーの
'e' を使ったりコマンド 'replot' によって手動で実行することも可能です。

デフォルトでは、描画が行われたときにウィンドウはデスクトップの一番上
(最前面) に表示されます。これは、キーワード {\tt"}raise{\tt"} で制御できます。
キーワード {\tt"}persist{\tt"} は、すべての描画ウインドウを明示的に閉じない間
は、gnuplot が終了しないようにします。

$<$space$>$ キーは gnuplot コンソールウィンドウを上に上げます (MS Windows
のみ)。'q' は描画ウィンドウを閉じます。これらのホットキーは、terminal
オプションキーワドの {\tt"}\{no\}ctrl{\tt"} を使うことで、ctl-space や ctrl-q に
変更できます。しかし、'q' の代わりに ctrl-q を選択するよりもよい方法は、
描画ウィンドウのツールウィジェットのトグルスィッチを使うことです。

プログラムのコンパイル時に選択した場所に、gnuplot の外部ドライバ
gnuplot\_qt がインストールされますが、環境変数 GNUPLOT\_DRIVER\_DIR を設定
することで置き場所を変更することもできます。
\subsection*{Sixelgd}
\addcontentsline{toc}{subsection}{Sixelgd}
\label{commands set terminal sixelgd}%
\label{set terminal sixelgd}%
\label{set term sixelgd}%
\label{terminal sixelgd}%
\label{term sixelgd}%
\label{sixelgd}%
\index{sixelgd}%
書式:
\preverbatim
\begin{verbatim}
     set terminal sixelgd
            {{no}enhanced} {{no}truecolor} {rounded|butt}
            {linewidth <lw>} {dashlength <dl>}
            {tiny | small | medium | large | giant}
            {font "<face> {,<pointsize>}"} {fontscale <scale>}
            {size <x>,<y>} {anchor|scroll} {{no}transparent}
            {background <rgb_color>}
\end{verbatim}
\postverbatim

{\bf sixel} 出力フォーマットは、元々 DEC のターミナルやプリンタで使われて
いたものです。gnuplot の sixelgd ドライバは、gd ライブラリを内部的に使
用して作成した PNG 画像を変換して sixel 出力列を生成します。sixel 出力
列は、それを作成したときにターミナル上に表示させることができますが、ま
たはその出力列をファイルに書きだしておいて、後からそのファイルをターミ
ナルに吐き出すことで表示に置き換えることもできます。

sixel 出力形式は、ウィンドウシステムか、またはグラフィックディスプレイ
マネージャが有効でない場合に、gnuplot のグラフを linux コンソールで表
示させたい場合にも便利です。以下参照: {\bf linux console (p.~\pageref{linux console})\index{console}}。

オプション {\bf linewidth} と {\bf dashlength} は拡大率で、描画されるすべての
線に影響を与えます。これらは、描画コマンドで要求される値にかけ算されま
す。

デフォルトでは、sixel 出力は、番号付きの 16 色を使用します。オプション
{\bf truecolor} では、24bit RGB PNG 画像を作成し、それを 256 色の sixel 画
像出力に減色します。透過型塗り潰しスタイルには、オプション {\bf truecolor}
が必要です。以下参照: {\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}}。

{\bf butt} は線分の描画で、その端の点でのはみだしを起こさない描画メソッド
を使うようドライバに指示します。この設定は、線幅が 1 より大きい場合に
のみ意味があります。これの逆が {\bf rounded} で、多少より均一な曲線を生成
しますが、より遅くなります。

gdlib を使用する出力形式におけるフォントの選択の詳細は、やや複雑です。
詳細は、以下参照: {\bf fonts (p.~\pageref{fonts})\index{fonts}}。

出力描画サイズ $<$x,y$>$ はピクセル単位で与えます。デフォルトは 640x480 で
すが、あなたのターミナルウィンドウのサイズより多分小さいでしょう。

{\bf transparent} は、ドライバに背景色の透明化 (transparent) を行うよう指示
しますが、ほとんどの端末エミュレータはこれをサポートしていません。デフ
ォルトは {\bf notransparent} です。

gnuplot の sixelgd 出力は、以下の端末エミュレータ上でテストされ正常動
作しています: konsole, mlterm, mintty, vt340 モードの xterm (注意: 元
々付属する xterm は sixel グラフィックをサポートするようにビルドされて
いないかもしれません)。KDE konsole terminal の sixel サポートは、バー
ジョン 22.04.0 で追加されました。

デフォルトでは ({\bf anchor}) 各グラフは、ウィンドウの左上の領域に上書きす
る形で描画します。これは、再描画することでの場所固定式アニメーション
(in-place animation) の作成や、{\bf pause mouse} の間に矢印キーを使った疑
似マウス操作を可能にします。
それに対しオプション {\bf scroll} は、各グラフを現在のカーソル位置に描くこ
とで、その後のグラフスクロールをテキストを挟むことで行えるようにします。

\subsection*{Svg}
\addcontentsline{toc}{subsection}{Svg}
\label{commands set terminal svg}%
\label{set terminal svg}%
\label{set term svg}%
\label{terminal svg}%
\label{term svg}%
\label{svg}%
\index{svg}%
このドライバは W3C SVG (Scalable Vector Graphics) フォーマットを生成し
ます。

書式:
\preverbatim
\begin{verbatim}
     set terminal svg {size <x>,<y> {|fixed|dynamic}}
                {mouse} {standalone | jsdir <dirname>}
                {name <plotname>}
                {font "<fontname>{,<fontsize>}"} {{no}enhanced}
                {fontscale <multiplier>}
                {rounded|butt|square} {solid|dashed} {linewidth <lw>}
                {background <rgb_color>}
\end{verbatim}
\postverbatim

ここで $<$x$>$ と $<$y$>$ は生成される SVG グラフのサイズですが、{\bf dynamic} は
svg ビューワに描画のリサイズを許し、{\bf fixed} は絶対サイズを要求します
(デフォルト)。

{\bf linewidth $<$w$>$} は図の中で使用される全ての線の幅を因子 $<$w$>$ だけ増加さ
せます。

$<$font$>$ はデフォルトとして使われるフォント名 (デフォルトでは Arial)、
$<$fontsize$>$ はポイント単位でのフォントサイズ (デフォルトは 12) です。
svg ビューワソフトは、そのファイルの表示の際には別の代用フォントを使う
ことになるでしょう。

拡張文字列処理 (enhanced) モードの書式指定は、他の出力形式の場合と同じ
です。詳細は、以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。

オプション {\bf mouse} は、マウストラッキング機能と、対応する key 上でクリ
ックすることでそれぞれのグラフの描画を On/Off にする機能をサポートを追
加することを gnuplot に指示します。デフォルトではローカルディレクトリ、
通常は /usr/local/share/gnuplot/$<$version$>$/js 内のあるスクリプトを指すリ
ンクを取り込むことで行われますが、オプション {\bf jsdir} に別のローカルディ
レクトリか、通常の URL を指定することでこれは変更できます。SVG 画像を
Web ページに入れるのであれば、普通は後者の URL の方を指定します。一方で
オプション {\bf standalone} は、マウス操作プログラムを SVG 文書自体に埋め込
み、外部リソースへのリンクは行いません。

SVG ファイルを何かの外部ファイルと組み合わせて利用したい場合、例えばそ
れがある Web ページや親文書の javascriptコードから参照されているような
場合、他の SVG グラフへの参照との衝突を避けるために一意的な名前が必要に
なります。その場合はオプション {\bf name} を使って固有の名前を確保してくだ
さい。

\subsection*{Texdraw}
\addcontentsline{toc}{subsection}{Texdraw}
\label{commands set terminal texdraw}%
\label{set terminal texdraw}%
\label{set term texdraw}%
\label{terminal texdraw}%
\label{term texdraw}%
\label{texdraw}%
\index{texdraw}%
{\bf texdraw} ドライバは (La)TeX texdraw 環境をサポートします。それは
texdraw パッケージと共に利用されることを想定しています。以下を参照して
ください: https://www.ctan.org/tex-archive/graphics/texdraw/ 。

\preverbatim
\begin{verbatim}
     set terminal texdraw
                    {size <XX>{unit},<YY>{unit}}
                    {standalone | input}
                    {blacktext | colortext | colourtext}
                    {linewidth <lw>} {rounded | butt}
                    {pointscale <ps>}
                    {psarrows | gparrows} {texpoints | gppoints}
                    {background <rgbcolor>}
\end{verbatim}
\postverbatim

注意: グラフィックは、灰色階調のみです。文字列は常に黒です。箱 (box) と
多角形の塗り潰しは、ベタ塗り (solid) の灰色階調のみで、パターン塗りは使
えません。

数ある中で、点 (point) は、LaTeX のコマンド {\tt"}$\backslash$Diamond{\tt"}, {\tt"}$\backslash$Box{\tt"} などを
使って描かれます。これらのコマンドは現在は LaTeX2e のコアには存在せず
latexsym パッケージに含まれていますが、このパッケージ基本配布の一部で
あり、よって多くの LaTeX のシステムの一部になっています。このパッケー
ジを使うことを忘れないでください。
他の点種は、amssymb パッケージの記号を使用します。plain TeX との互換性
のためには、オプション {\bf gppoints} を指定する必要があります。

{\bf standalone} は、コンパイルの用意ができた、複数のグラフを持つ可能性のあ
る LaTeX ファイルを生成します。デフォルトは {\bf input} で、他のファイルか
ら include できる TeX ファイルを生成します。

{\bf blacktext} は、強制的にすべの文字列を黒で書きますが、{\bf colortext} は、
「色付き」の文字列を可能にします。デフォルトは {\bf blacktext} で、ここでの
「色」は、実際には灰色階調を意味します。

{\bf rounded} は線の端や接合部を丸くし、{\bf butt} は尖った端と角張った接合部を
使用し、これがデフォルトです。

{\bf linewidth} と {\bf pointscale} は、線幅と点記号のサイズをそれぞれ伸縮しま
す。{\bf pointscale} は、{\bf gppoints} にのみ適用します。

{\bf psarrows} は、TeXdraw コマンドを用いて {\bf arrow} (矢) を書きます。これは
は簡単ですが、どんなオプションも提供しません。{\bf gparrows} は、代わりに、
gnuplot 自身の、すべての機能を備えたサブルーチンによる arrow の描画を選
択します。同様に、{\bf texpoints} と {\bf gppoints} は LaTeX の記号と gnuplot
の点描画ルーチンの選択です。
\subsection*{Tgif}
\addcontentsline{toc}{subsection}{Tgif}
\label{commands set terminal tgif}%
\label{set terminal tgif}%
\label{set term tgif}%
\label{terminal tgif}%
\label{term tgif}%
\label{tgif}%
\index{tgif}%
古い (legacy) 出力形式です (gnuplot の configure 時に --with-tgif をつ
けたときのみ使用可能)。
tgif は、Xlib ベースの対話型、2 次元ベクトル形式のドローイングツールで
ビットマップ画像を取り込んだり、結果をビットマップ化したりできます。

{\bf tgif} ドライバは、フォント指定、フォントサイズ指定、1 ページ内の複数の
グラフ描画をサポートしています。軸の比率は変更されません。

書式:
\preverbatim
\begin{verbatim}
     set terminal tgif {portrait | landscape | default} {<[x,y]>}
                       {monochrome | color}
                       {{linewidth | lw} <LW>}
                       {solid | dashed}
                       {font "<fontname>{,<fontsize>}"}
\end{verbatim}
\postverbatim

$<$[x,y]$>$ にはそのページ内の x 方向、y 方向のグラフの数を指定し、
{\bf color} はカラー機能を有効にし、{\bf linewidth} は全ての線幅を $<$LW$>$ 倍し、
{\tt"}$<$fontname$>${\tt"} には有効な PostScript フォント名、$<$fontsize$>$ はその
PostScript フォントの大きさを指定します。{\bf defaults} は全てのオプション
の値をデフォルトの値にセットします。デフォルトは {\bf portrait}, {\bf [1,1]},
{\bf color}, {\bf linewidth 1.0}, {\bf dashed}, {\bf {\tt"}Helvetica,18{\tt"}} です。

{\bf solid} オプションは、編集作業中にそうであるように、線がカラーである場
合に普通使われます。ハードコピーは白黒になることが多いので、その場合は
{\bf dashed} を選択すべきでしょう。

多重描画 (multiplot) は 2 種類の方法で実装されています。

その一つは、標準的な gnuplot の多重描画のやり方です:

\preverbatim
\begin{verbatim}
     set terminal tgif
     set output "file.obj"
     set multiplot
     set origin x01,y01
     set size  xs,ys
     plot ...
          ...
     set origin x02,y02
     plot ...
     unset multiplot
\end{verbatim}
\postverbatim

より詳しい情報については、以下参照: {\bf set multiplot (p.~\pageref{set multiplot})\index{multiplot}}。

もう一つの方法はドライバの [x,y] オプションです。この方法の長所は、原
点 (origin) や大きさ (size) の設定をしなくても全てのグラフが自動的に縮
尺され配置されることです。グラフの比 x/y は、自然な比 3/2 (または {\bf set
size} で設定されたもの) が保持されます。

両方の多重描画の実装が選択された場合、標準的なやり方の方が選択され、警
告のメッセージが表示されます。

単一描画 (または標準的な多重描画) の例:
\preverbatim
\begin{verbatim}
     set terminal tgif                  # デフォルト
     set terminal tgif "Times-Roman,24"
     set terminal tgif landscape
     set terminal tgif landscape solid
\end{verbatim}
\postverbatim

ドライバの持つ多重描画の仕組みを利用する例:
\preverbatim
\begin{verbatim}
     set terminal tgif portrait [2,4]  # 縦置、x-方向に 2 つ、y-方向
                                       # に 4 つのグラフ描画
     set terminal tgif [1,2]           # 縦置、x-方向に 1 つ、y-方向
                                       # に 2 つのグラフ描画
     set terminal tgif landscape [3,3] # 横置、両方の方向に 3 つのグ
                                       # ラフ描画
\end{verbatim}
\postverbatim
\subsection*{Tikz}
\addcontentsline{toc}{subsection}{Tikz}
\label{commands set terminal tikz}%
\label{set terminal tikz}%
\label{set term tikz}%
\label{terminal tikz}%
\label{term tikz}%
\label{tikz}%
\index{tikz}%
このドライバは、TeX のグラフィックマクロの TikZ パッケージとともに使用
する出力を生成します。現在は、外部 lua script によって実装されていて、
{\bf set term tikz} は {\bf set term lua tikz} の省略形です。
完全な説明は、以下参照: {\bf term lua tikz (p.~\pageref{term lua tikz})\index{tikz}}。
出力形式オプションの表示は、{\bf set term tikz help} を使用してください。
\subsection*{Tkcanvas}
\addcontentsline{toc}{subsection}{Tkcanvas}
\label{commands set terminal tkcanvas}%
\label{set terminal tkcanvas}%
\label{set term tkcanvas}%
\label{terminal tkcanvas}%
\label{term tkcanvas}%
\label{tkcanvas}%
\index{tkcanvas}%
このドライバは、以下のスクリプト言語のうちの一つの Tk canvas widget コ
マンドを生成します: Tcl (デフォルト), Perl, Python, Ruby, REXX。

書式:
\preverbatim
\begin{verbatim}
     set terminal tkcanvas {tcl | perl | perltkx | python | ruby | rexx}
                           {standalone | input}
                           {interactive}
                           {rounded | butt}
                           {nobackground | background <rgb color>}
                           {{no}rottext}
                           {size <width>,<height>}
                           {{no}enhanced}
                           {externalimages | pixels}
\end{verbatim}
\postverbatim

結果を表示するには、以下の Tcl/Tk コマンド列を実行します:

\preverbatim
\begin{verbatim}
     package require Tk
     # 以下の 2 行は、外部画像を使用する場合にのみ必要
     package require img::png
     source resize.tcl
     source plot.tcl
     canvas .c -width 800 -height 600
     pack .c
     gnuplot .c
\end{verbatim}
\postverbatim

Perl/Tk の場合は、以下のようにします:

\preverbatim
\begin{verbatim}
     use Tk;
     my $top = MainWindow->new;
     my $c = $top->Canvas(-width => 800, -height => 600)->pack;
     my $gnuplot = do "plot.pl";
     $gnuplot->($c);
     MainLoop;
\end{verbatim}
\postverbatim

Perl/Tkx の場合は、以下のようにします:

\preverbatim
\begin{verbatim}
     use Tkx;
     my $top = Tkx::widget->new(".");
     my $c = $top->new_tk__canvas(-width => 800, -height => 600);
     $c->g_pack;
     my $gnuplot = do "plot.pl";
     $gnuplot->($c);
     Tkx::MainLoop();
\end{verbatim}
\postverbatim

Python/Tkinter の場合は、以下のようにします:

\preverbatim
\begin{verbatim}
     from tkinter import *
     from tkinter import font
     root = Tk()
     c = Canvas(root, width=800, height=600)
     c.pack()
     exec(open('plot.py').read())
     gnuplot(c)
     root.mainloop()
\end{verbatim}
\postverbatim

Ruby/Tk の場合は、以下のようにします:

\preverbatim
\begin{verbatim}
     require 'tk'
     root = TkRoot.new { title 'Ruby/Tk' }
     c = TkCanvas.new(root, 'width'=>800, 'height'=>600) { pack  { } }
     load('plot.rb')
     gnuplot(c)
     Tk.mainloop
\end{verbatim}
\postverbatim

Rexx/Tk の場合は、以下のようにします:

\preverbatim
\begin{verbatim}
     /**/
     call RxFuncAdd 'TkLoadFuncs', 'rexxtk', 'TkLoadFuncs'
     call TkLoadFuncs
     cv = TkCanvas('.c', '-width', 800, '-height', 600)
     call TkPack cv
     call 'plot.rex' cv
     do forever
         cmd = TkWait()
         if cmd = 'AWinClose' then leave
         interpret 'call' cmd
     end
\end{verbatim}
\postverbatim

{\bf gnuplot} が生成するコード (上の例では、{\tt"}plot.$<$ext$>${\tt"} として書き出され
ているものです) は、以下のような手続き関数を含んでいます:

gnuplot(canvas)
\preverbatim
\begin{verbatim}
  引数として canvas の名前を取ります。
  これを呼び出すと、その canvas をクリアし、canvas のサイズを探し、そ
  の中にグラフを描き、それに合うように伸縮します。
\end{verbatim}
\postverbatim

gnuplot\_plotarea()
\preverbatim
\begin{verbatim}
  canvas スクリーン座標での描画領域の境界 (xleft, xright, ytop, ybot)
  を含むリストを返します。
  2 次元グラフ描画 (`plot`) に対してのみ動作します。
\end{verbatim}
\postverbatim

gnuplot\_axisranges()
\preverbatim
\begin{verbatim}
  グラフ座標での 2 つの軸の範囲 (x1min, x1max, y1min, y1max, x2min,
  x2max, y2min, y2max) を返します。
  2 次元グラフ描画 (`plot`) に対してのみ動作します。
\end{verbatim}
\postverbatim

オプション {\bf standalone} を使えば、自己完結した最小スクリプトを生成でき
ます。デフォルトは {\bf input} で、これは取り込まれるべきスクリプトを作りま
す (すなわち、load されるか call されるか、または選択した言語用のなんら
かの適切な方法で)。

オプション {\bf interactive} を指定すると、一つの線分上でマウスクリックした
ときにその中点の座標が標準出力に出力されるようになります。
この動作は、user\_gnuplot\_coordinates という手続き関数を定義することで、
別なものに置き換えることも可能です。その手続き関数には以下の引数が渡さ
れます:
\preverbatim
\begin{verbatim}
 win id x1s y1s x2s y2s x1e y1e x2e y2e x1m y1m x2m y2m,
\end{verbatim}
\postverbatim
これらは、canvas の名前、線分の id、2 つの座標系でのその線分の開始点の
座標、終了点の座標、中点の座標です。中点の座標は、対数軸に対してのみ与
えられます

デフォルトでは、canvas は {\bf transparent} ですが、オプション {\bf background}
で、明示的に背景色を設定することもできます。

{\bf rounded} は、線の端や接合部を丸くします。
デフォルトの {\bf butt} は、尖った端と角張った接合部を使用します。

オプション {\bf rottext} で、文字列の任意角での回転を有効にできますが、それ
には Tcl/Tk 8.6 以降が必要です。デフォルトは {\bf norottext} です。

オプション {\bf size} は、目盛りの刻みとフォントサイズを、指定された canvas
サイズに対して最適化なものにしようとします。デフォルトでは、出力サイズ
は 800 x 600 ピクセルとしています。

{\bf enhanced} は、拡張文字列処理を選択します (デフォルト) が、これは今のと
ころ Tcl でのみ利用可能です。

オプション {\bf pixels} (デフォルト) は、フェールセーフなピクセル毎の画像処
理ルーチンを選択します。以下参照: {\bf image pixels (p.~\pageref{image pixels})\index{pixels}}。
オプション {\bf externalimages} は、画像を外部 PNG 画像として保存し、それを
あとで tkcanvas コードが読み込んで伸縮します。このオプションは、Tcl で
のみ有効で、しかも Tk の画像処理ルーチンが任意の伸縮を提供していないた
めに、ある状況では遅くなります。この場合、スクリプトで、提供される
rescale.tcl を取り込まなければいけません。

対話型モードは、Python/Tk, Rexx/Tk ではまだ実装されていません。Ryby/Tk
の対話型モードは、まだ user\_gnuplot\_coordinates をサポートしていません。
\subsection*{Webp}
\addcontentsline{toc}{subsection}{Webp}
\label{set terminal webp}%
\label{terminal webp}%
\label{set term webp}%
\label{term webp}%
\label{webp}%
\index{webp}%
{\bf webp} 出力形式は、単一フレーム、またはアニメーションを生成します。実際
の描画は、2 次元グラフィックライブラリ cairo と、レイアウト、文字の描画
ライブラリ pango が担当します。

書式:
\preverbatim
\begin{verbatim}
       set term webp
                    {size <x_pixels>,<y_pixels>}
                    {font <font>} {fontscale <scale>} {{no}enhanced}
                    {{no}transparent} {background <rgbcolor>
                    {linewidth <lw>} {rounded|butt|square} {dashlength <dl>}
                    {pointscale <ps>}
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
                    {{no}animate {quality <q>} {delay <msec>} {loop <n>}}
\end{verbatim}
\postverbatim

ンネル画像として、pngcairo 出力形式と共有するルーチンを使って作ります。
フォントや terminal オプションに関する詳細は、以下参照:
{\bf set terminal pngcairo (p.~\pageref{set terminal pngcairo})\index{pngcairo}}。
その後、そのフレームを出力時に webp 形式に変換します。

オプション {\bf animate} は、複数のフレームからなる webp ファイルを生成しま
す。個々のフレームは、個別の {\bf plot}、または {\bf splot} コマンドで生成した
ものです。そのアニメーション列は、コマンド {\bf set output} か、
{\bf set terminal} で終了します。

{\bf quality} (1..100) は、出力ファイルのサイズに影響します。1-74 の q の値
は、損失 (loss) のある圧縮を使用します。より小さい値を指定すると、描画
する画像の細部の喪失を犠牲にして、より小さいファイルを作成します。
75-100 の q の値は、損失のない (lossless) 圧縮を行います。これはすべて
同じ画像品質です (lossless!)。より大きな値を指定すると、減らすファイル
サイズにおける価値の減少のためにより多くの計算時間を費します。
デフォルトは 75 で、余分な計算なしに損失のない圧縮を行います。

サブオプション {\bf delay} は、再生時のフレーム間隔をミリ秒単位で設定します
(デフォルトは 50 ミリ秒)。

サブオプション {\bf loop} は、再生時にアニメーション列を何回繰り返して再生
するかを指定します。デフォルトの 0 はループし続けます。

\subsection*{Windows}
\addcontentsline{toc}{subsection}{Windows}
\label{commands set terminal windows}%
\label{set terminal windows}%
\label{set term windows}%
\label{terminal windows}%
\label{term windows}%
\label{windows}%
\index{windows}%
出力形式 {\bf windows} は、グラフ描画と文字列描画に Windows GDI を使用する
高速な対話型出力ドライバです。Windows では、複数の環境で動作する {\bf wxt}
出力形式、{\bf qt} 出力形式もサポートされています。

書式:
\preverbatim
\begin{verbatim}
     set terminal windows {<n>}
                          {color | monochrome}
                          {solid | dashed}
                          {rounded | butt}
                          {enhanced | noenhanced}
                          {font <fontspec>}
                          {fontscale <scale>}
                          {linewidth <scale>}
                          {pointscale <scale>}
                          {background <rgb color>}
                          {title "Plot Window Title"}
                          {{size | wsize} <width>,<height>}
                          {position <x>,<y>}
                          {docked {layout <rows>,<cols>} | standalone}
                          {close}
\end{verbatim}
\postverbatim

複数のウィンドウ描画がサポートされています: {\bf set terminal win $<$n$>$} で
出力が番号 n の描画ウィンドウに送られます。

{\bf color}, {\bf monochrome} は、カラー出力か白黒出力かの選択で、
{\bf dashed} と {\bf solid} は、点線と実線の選択です。{\bf color} では {\bf solid} が
デフォルトで、{\bf monochrome} では {\bf dashed} がデフォルトです。
{\bf rounded} は、線の端や接合部を丸くし、デフォルトの {\bf butt} は尖った端と
角張った接合部を使用します。
{\bf enhanced} は拡張文字列処理 (enhanced text mode) の機能 (上付、下付文字
やフォントの混在) を有効にします。詳細は以下参照: {\bf enhanced text (p.~\pageref{enhanced text})\index{text}}。
{\bf $<$fontspec$>$} は {\tt"}$<$fontface$>$,$<$fontsize$>${\tt"} の形式で、{\tt"}$<$fontface$>${\tt"} は有
効な Windows のフォント名で、{\bf $<$fontsize$>$} はポイント単位でのフォントの
大きさです。この両要素はいずれも省略可能です。
以前の版の gnuplot では、{\bf font} キーワードは省略可能で、$<$fontsize$>$ は引
用符なしの数値で与えることができましたが、現在はその形式はサポートして
いませんので注意してください。
{\bf linewidth}, {\bf fontscale}, {\bf pointscale} で、線の幅、文字サイズ、点記号の
大きさを伸縮できます。
{\bf title} は、グラフウィンドウのタイトルを変更します。
{\bf size} はウィンドウ内の描画領域のピクセル単位での幅と高さを、{\bf wsize} は
ウィンドウ自身の実際のサイズを、{\bf position} はウィンドウの原点、すなわち
左上角のスクリーン上のピクセル単位での位置を定義します。これらのオプシ
ョンは、ファイル {\bf wgnuplot.ini} のデフォルトの設定を上書きします。

{\bf docked} は、グラフウィンドウを、wgnuplot のテキストウィンドウの中に埋
め込み、{\bf size} と {\bf position} のオプションを無視します。{\bf docked} は、コ
ンソール版の gnuplot では利用できないことに注意してください。このオプシ
ョンを設定すると、新規のウィンドウに対してデフォルトの値を変更します。
最初のデフォルトは、{\bf standalone} です。ドッキングモードでは、グラフの最
小列数、行数は追加オプション {\bf layout} で保持できます。指定されたレイア
ウト以上にグラフがある場合は、行を追加します。複数のグラフは、数値 ID
でソートし、行方向に埋めていきます。

他のオプションもグラフメニューや初期化ファイル {\bf wgnuplot.ini} で変更で
きます。

Windows 版は、非対話型モードでは通常、コマンドラインから与えたファイル
の最後に達すると直ちに終了しますが、コマンドラインの最後に {\bf -} を指定
した場合は別です。また、このモードではテキストウィンドウは表示せず、グ
ラフのみの表示となりますが、オプションとして {\bf -persist} (x11 版の
gnuplot と同じオプション; 従来の Windows のみのオプション {\bf /noend} や
{\bf -noend} を使うこともできます) を指定すると gnuplot は終了しなくなりま
す。この場合他の OS での gnuplot の挙動とは異なり、-persist オプション
後も gnuplot の対話型コマンドラインを受け付けます。

コマンド {\bf set term} で gnuplot の出力形式を変更した場合、描画ウィンドウ
はそのまま残りますが、{\bf set term windows close} で描画ウィンドウを閉じる
ことができます。

{\bf gnuplot} は、Windows 上での出力の生成のためのいくつかの方法をサポート
しています。以下参照: {\bf windows printing (p.~\pageref{windows printing})\index{printing}}。windows 出力形式は、クリップ
ボードや EMF ファイルを通して他のプログラムとのデータの交換をサポートし
ています。以下参照: {\bf graph-menu (p.~\pageref{graph-menu})\index{graph-menu}}。EMF ファイルを生成するには、{\bf emf} 出
力形式を使うこともできます。
\subsubsection*{グラフメニュー (graph-menu)}
\addcontentsline{toc}{subsubsection}{グラフメニュー (graph-menu)}
\label{commands set terminal windows graph-menu}%
\label{set terminal windows graph-menu}%
\label{set term windows graph-menu}%
\label{windows graph-menu}%
\label{graph-menu}%
\index{graph menu}%
{\bf gnuplot graph} ウィンドウでマウスの右ボタン(*) を押すか、システムメニ
ューやツールバーから {\bf Options} を選択すると以下のオプションを持つポップ
アップメニューが現われます:

{\bf Copy to Clipboard} クリップボードにビットマップや EMF 画像をコピー

{\bf Save as EMF...} 現在のグラフウィンドウをメタファイル (EMF か EMF+) と
して保存

{\bf Save as Bitmap...} 現在のグラフをビットマップファイルとして保存

{\bf Print...} グラフィックウィンドウを Windows プリンタドライバでプリント
アウト。プリンタと拡大率の選択が可能。以下も参照: {\bf windows printing (p.~\pageref{windows printing})\index{printing}}。

{\bf Bring to Top} チェックを入れるとグラフウィンドウを他の全ての描画ウィン
ドウの手前に表示

{\bf Color} チェックを入れるとカラー出力が有効、チェック無しだとすべて灰色
階調表示。これは例えば白黒のプリントアウトの見た目の確認に有用です。

{\bf GDI backend} 古典的な GDI API を使うもので、非推奨であり、このバージョ
ンでは無効になっています。

{\bf GDI+ backend} GDI+ Windows API を使うスクリーン描画。これは、アンチエ
イリアス、オーバーサンプリング、透過、点線/破線パターンのカスタマイズの
すべてを完全にサポートします。バージョン 5.0, 5.2 ではデフォルトでした。

{\bf Direct2D backend} Direct2D と DirectWrite API を使用する描画。これは、
グラフィックカード加速機能を使用し、よって通常は最も高速です。Direct2D
は EMF データを作れませんので、EMF データのクリップボードへのコピーの際
には、D2d でビットマップデータを生成している間 GDI+ で作業します。
現在はこれを推奨していて、バージョン 5.3 からはこれがデフォルトのバック
エンドになります

{\bf Oversampling} これにより、対角線は非整数のピクセル位置に描画され、左右
にふらつくことが避けられます。しかし鉛直線、水平線は、ぼやけた線になら
ないよう整数のピクセル位置に置かれます。

{\bf Antialiasing} 折れ線や線の端の平滑化を可能にします。これは描画を遲くす
ることに注意してください。
{\bf Antialiasing of polygons} 多角形描画のアンチエイリアスは、デフォルトで
は有効ですが、GDI+ のバックエンドでは描画を遅くする可能性があります。

{\bf Fast rotation} グラフウィンドウをマウスで回転している際にアンチエイリ
アスを一時的にオフにします。これは、マウスボタンを離した後に追加の再描
画が行われますが、相当に描画を早くしてくれます。

{\bf Background...} ウィンドウ背景色の設定

{\bf Choose Font...} グラフィックウィンドウで使うフォントの選択

{\bf Update wgnuplot.ini} 現在のウィンドウの位置、ウィンドウの大きさ、テキ
ストウィンドウのフォントとそのフォントサイズ、グラフウィンドウのフォン
トとそのフォントサイズ、背景色を初期化ファイル {\bf wgnuplot.ini} に保存

(*) このメニューは、{\bf unset mouse} によって右マウスボタン押ししか使えな
くなるので注意。
\subsubsection*{印刷 (printing)}
\addcontentsline{toc}{subsubsection}{印刷 (printing)}
\label{commands set terminal windows printing}%
\label{set terminal windows printing}%
\label{set term windows printing}%
\label{windows printing}%
\label{printing}%
\index{printing}%
\label{screendump}%
\index{screendump}%
好みにより、グラフは以下のような方法で印刷できます。

{\bf 1.} {\bf gnuplot} のコマンド {\bf set terminal} でプリンタを選択し、{\bf set output}
で出力をファイルにリダイレクト

{\bf 2.} {\bf gnuplot graph} ウィンドウから {\bf Print...} コマンドを選択。テキス
トウィンドウからこれを行なう特別なコマンド {\bf screendump} もある。

{\bf 3.} {\bf set output {\tt"}PRN{\tt"}} とすると出力は一時ファイルに出力され、{\bf gnuplot}
を終了するかまたは {\bf set output} コマンドで出力を他のものへ変更すると、
ダイアログ (対話) ボックスが現われ、そこでプリンタポートを選択。そこで
OK を選択すると、出力はプリントマネージャでは加工されずにそのまま選択
されたポートでプリントアウトされる。これは偶然 (または故意) に、あるプ
リンタ用の出力を、それに対応していないプリンタに送り得ることを意味する。

\subsubsection*{テキストメニュー (text-menu)}
\addcontentsline{toc}{subsubsection}{テキストメニュー (text-menu)}
\label{commands set terminal windows text-menu}%
\label{set terminal windows text-menu}%
\label{set term windows text-menu}%
\label{windows text-menu}%
\label{text-menu}%
\index{text menu}%
{\bf gnuplot text} ウィンドウでマウスの右ボタンを押すか、システムメニュー
から {\bf Options} を選択すると以下のオプションを持つポップアップメニュー
が現われます:

{\bf Copy to Clipboard} マークしたテキストをクリップボードにコピー

{\bf Paste} 打ち込んだのと同じようにクリップボードからテキストをコピー

{\bf Choose Font...} テキストウィンドウで使うフォントの選択

{\bf System Colors} 選択するとコントロールパネルで設定したシステムカラーを
テキストウィンドウに与える。選択しなければ白背景で文字は黒か青。

{\bf Wrap long lines} 選択すると現在のウィンドウ幅よりも長い行を折り返す

{\bf Update wgnuplot.ini} 現在の設定を、ユーザのアプリケーションデータディ
レクトリにある初期化ファイル {\bf wgnuplot.ini} に保存

\subsubsection*{メニューファイル wgnuplot.mnu}
\addcontentsline{toc}{subsubsection}{メニューファイル wgnuplot.mnu}
\label{windows wgnuplot.mnu}%
\label{wgnuplot.mnu}%
\index{wgnuplot.mnu}%
メニューファイル {\bf wgnuplot.mnu} が {\bf gnuplot} と同じディレクトリにある場
合、{\bf wgnuplot.mnu} に書かれているメニューが読み込まれます。メニューコマ
ンドは以下の通り:

\preverbatim
\begin{verbatim}
[Menu]      次の行の名前で新しいメニューを開始
[EndMenu]   現在のメニューを終了
[--]        水平なメニューの仕切りを入れる
[|]         垂直なメニューの仕切りを入れる
[Button]    メニューに押しボタンを入れ、それに次のマクロを割り当てる
\end{verbatim}
\postverbatim

マクロは 2 行で書き、最初の行はマクロ名 (メニューの見出し)、2 行目がマ
クロ本体です。先頭の空白列は無視されます。マクロコマンドは以下の通り:

[INPUT]     [EOS] か \{ENTER\} までをプロンプトとして出力し文字列を入力
[EOS]       文字列の終り (End Of String)。何も出力しない
[OPEN]      開くファイル名を取得。最初の [EOS] までが対話ウィンドウのタ
\preverbatim
\begin{verbatim}
           イトル、そこから次の [EOS] か {ENTER} までがデフォルトのフ
           ァイル名
\end{verbatim}
\postverbatim
[SAVE]      セーブファイル名を取得 ([OPEN] 同様)
[DIRECTORY] ディレクトリ名を取得。[EOS] か \{ENTER\} までが対話ウィンドウ
\preverbatim
\begin{verbatim}
           のタイトル
\end{verbatim}
\postverbatim
マクロ文字の置き換えは以下の通り:

\preverbatim
\begin{verbatim}
{ENTER}     復帰 '\r'
{TAB}       タブ '\011'
{ESC}       エスケープ '\033'
{^A}        '\001'
...
{^_}        '\031'
\end{verbatim}
\postverbatim

マクロは展開後の文字数が最大 256 文字に制限されています。

\subsubsection*{Wgnuplot.ini}
\addcontentsline{toc}{subsubsection}{Wgnuplot.ini}
\label{commands set terminal windows wgnuplot.ini}%
\label{set terminal windows wgnuplot.ini}%
\label{set term windows wgnuplot.ini}%
\label{windows wgnuplot.ini}%
\label{wgnuplot.ini}%
\index{wgnuplot.ini}%
Windows テキストウィンドウと {\bf windows} 出力形式は、オプションのいくつか
{\bf wgnuplot.ini} の {\bf [WGNUPLOT]} セクションから読み込みます。このファイル
は、ユーザのアプリケーションデータディレクトリに置きます。
{\bf wgnuplot.ini} ファイルのサンプル:

\preverbatim
\begin{verbatim}
     [WGNUPLOT]
     TextOrigin=0 0
     TextSize=640 150
     TextFont=Consolas,9
     TextWrap=1
     TextLines=400
     TextMaximized=0
     SysColors=0
     GraphOrigin=0 150
     GraphSize=640 330
     GraphFont=Tahoma,10
     GraphColor=1
     GraphToTop=1
     GraphGDI+=1
     GraphD2D=0
     GraphGDI+Oversampling=1
     GraphAntialiasing=1
     GraphPolygonAA=1
     GraphFastRotation=1
     GraphBackground=255 255 255
     DockVerticalTextFrac=350
     DockHorizontalTextFrac=400
\end{verbatim}
\postverbatim


以下の設定は wgnuplot のテキストウィンドウのみに適用されます。

{\bf TextOrigin} と {\bf TextSize} は、テキストウィンドウの位置とサイズの指定
です。{\bf TextMaximized} が 0 でない場合、ウィンドウは最大化されます。

{\bf TextFont} は、テキストウィンドウのフォントとサイズの指定です。

{\bf TextWrap} は、長いテキスト行の折り返しを選択します。

{\bf TextLines} は、テキストウィンドウの内部バッファに何行 (折り返しなし)
保持するかを指定します。現在は、この値を wgnuplot 内からは変更できませ
ん。

以下参照: {\bf text-menu (p.~\pageref{text-menu})\index{text-menu}}。


{\bf DockVerticalTextFrac} と {\bf DockHorizontalTextFrac} は、それぞれ千分率単
位での、テキストウィンドウ内に垂直方向、水平方向に確保される割合です。


{\bf GraphFont} は、フォント名とポイント単位のフォントサイズの指定です。

以下参照: {\bf graph-menu (p.~\pageref{graph-menu})\index{graph-menu}}。
\subsection*{Wxt}
\addcontentsline{toc}{subsection}{Wxt}
\label{set terminal wxt}%
\label{terminal wxt}%
\label{set term wxt}%
\label{term wxt}%
\label{wxt}%
\index{wxt}%
{\bf wxt} 出力形式は、個々のウィンドウへの出力を生成します。ウィンドウは 
wxWidgets ライブラリで生成されます (これが {\bf wxt} の名前の由来です)。実
際の描画は、2D グラフィックライブラリ cairo と、文字列配置/レンダリン
グライブラリ pango が処理します。

書式:
\preverbatim
\begin{verbatim}
       set term wxt {<n>}
                    {size <width>,<height>} {position <x>,<y>}
                    {background <rgb_color> | nobackground}
                    {{no}enhanced}
                    {font <font>} {fontscale <scale>}
                    {title "title"}
                    {linewidth <lw>} {butt|rounded|square}
                    {dashlength <dl>}
                    {{no}persist}
                    {{no}raise}
                    {{no}ctrl}
                    {close}
\end{verbatim}
\postverbatim

複数の描画ウィンドウもサポートしていて、{\bf set terminal wxt $<$n$>$} とすれば
番号 n の描画ウィンドウへ出力します。

デフォルトのウィンドウタイトルは、このウィンドウ番号に基づいています。
そのタイトルは {\tt"}title{\tt"} キーワードでも指定できます。

描画ウィンドウは、{\bf gnuplot} の出力形式を別なものに変更しても残ったまま
になります。それを閉じるには、そのウィンドウに入力フォーカスがある状態
で 'q' を入力するか、ウィンドウマネージャのメニューで {\bf close} を選択す
るか、{\bf set term wxt $<$n$>$ close} としてください。

描画領域のサイズはピクセル単位で与えます。デフォルトは 640x384 です。
それに加えて、ウィンドウの実際のサイズには、ツールバーやステータスバー
用のスペースも追加されます。
ウィンドウのサイズを変更すると、描画グラフもウィンドウの新しいサイズに
ぴったり合うようにすぐに伸縮されます。他の対話型出力形式と違い、{\bf wxt}
出力形式はフォント、線幅も含めて描画全体を伸縮しますが、全体のアスペク
ト比は一定に保って、空いたスペースは灰色で塗り潰します。その後 {\bf replot}
とタイプするかターミナルツールバーの {\bf replot} アイコンをクリックするか
新たに {\bf plot} コマンドを入力すると、その新しい描画では完全にそのウィン
ドウに合わせられますが、フォントサイズや線幅はそれぞれのデフォルトにリ
セットされます。

position オプションは描画ウィンドウの位置を設定するのに使えます。これは
コマンド {\bf set term} 後の最初の描画にのみ適用されます。

現在の描画ウィンドウ ({\bf set term wxt $<$n$>$} で選択されたもの) は対話的で
その挙動は、他の出力形式と共通です。詳細は、以下参照: {\bf mouse (p.~\pageref{mouse})\index{mouse}}。それに
は追加のアイコンもいくつかついていますが、それらはそれ自体が説明的なも
のになっているはずです。

この出力形式は、拡張文字列処理モード (enhanced text mode) をサポートし
ていて、フォントや書式コマンド (上付、下付など) をラベルや他の文字列に
埋め込むことができます。拡張文字列処理モードの書式は他の gnuplot の出
力形式と共通です。詳細は、以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。

$<$font$>$ は {\tt"}FontFace,FontSize{\tt"} の形式で、FontFace と FontSize とをコ
ンマで分離して一つの文字列として書きます。FontFace は、'Arial' のよ
うな通常のフォント名です。FontFace を与えない場合は、wxt 出力形式は
'Sans' を使用します。FontSize は、ポイント単位のフォントサイズです。
FontSize を与えない場合は、wxt 出力形式は 10 ポイントを使用します。
\preverbatim
\begin{verbatim}
  例:
     set term wxt font "Arial,12"
     set term wxt font "Arial" # フォント名のみ変更
     set term wxt font ",12" # フォントサイズのみ変更
     set term wxt font "" # フォント名、フォントサイズをリセット
\end{verbatim}
\postverbatim

フォントは通常のフォントサブシステムから取得します。MS-Windows 上では
コントロールパネルの {\tt"}Fonts{\tt"} エントリで検索されるので、そこに設定し
ます。Unix 上では、フォントは {\tt"}fontconfig{\tt"} が処理します。

文字列のレイアウトに使用される pango ライブラリは utf-8 を基本としてい
ますので、wxt 出力形式ではエンコーディングを utf-8 にする必要がありま
す。デフォルトの入力エンコーディングは、システムの 'locale' によりま
す。他のエンコーディングを使用したい場合は、それを gnuplot に知らせる
必要があります。詳細は、以下参照: {\bf encoding (p.~\pageref{encoding})\index{encoding}}。

pango は、unicode マッピングでないフォントに対しては予期せぬ結果を与え
るかもしれません。例えば Symbol フォントに対しては、wxt 出力形式は、文
字コードを unicode に変換するために http://www.unicode.org/ で提供され
るマッピングを利用します。pango は、その文字を含むフォントを見つけるた
めにあなたの Symbol フォントを検索し、そして DejaVu フォントのように、
幅広く unicode をカバーする他のフォントを探す、といった最善の作業を行
おうとします。なお、{\tt"}the Symbol font{\tt"} は、Acrobat Reader と一緒に
{\tt"}SY\_\_\_\_\_\_.PFB{\tt"} として配布されている Adobe Symbol フォントであると解
釈されることに注意してください。この代わりに、OpenOffice.org と一緒に
{\tt"}opens\_\_\_.ttf{\tt"} として配布される OpenSymbol フォントが同じ文字を提供
しています。Microsoft も Symbol フォント ({\tt"}symbol.ttf{\tt"}) を配布してい
ますが、これは異なる文字セットになっていて、いくつかは欠けていますし、
いくつかは数式記号に変わってしまっています。あなたのデフォルトの設定で
なんらかの問題が起きた場合 (例えばデモスクリプト enhancedtext.dem がち
ゃんと表示されないといった場合) は、Adobe か OpenOffice の Symbol フォ
ントをインストールして、Microsoft の Symbol フォントを削除しないといけ
ないかもしれません。
{\tt"}windings{\tt"} のような他の非標準のフォントでも動作することが報告されて
います。

描画のレンダリングは、ツールバーで対話的に変更できます。可能な限り最も
良い出力を生成するためにこのレンダリングは、アンチエイリアス、オーバー
サンプリング、ヒンティングの 3 つの機構を持っています。
アンチエイリアスは、水平や垂直でない線の滑らかな表示を可能にします。
オーバーサンプリングは、アンチエイリアスと組でピクセルよりも小さいサイ
ズでの精度を提供し、gnuplot が非整数座標の直線を書けるようになります。
これは、対角方向の直線 (例えば 'plot x') が左右に揺れるのを避けます。
ヒンティングは、オーバーサンプリングによって引き起こされる水平、垂直方
向の線分のぼかしを避けます。この出力形式は、これらの直線を整数座標に揃
え、それにより、1 ピクセル幅の直線は本当に 1 つ (1 つより多くも少なく
もない) のピクセルで描画します。

デフォルトでは、描画が行われたときにウィンドウはデスクトップの一番上
(最前面) に表示されます。これは、キーワード {\tt"}raise{\tt"} で制御できます。
キーワード {\tt"}persist{\tt"} は、すべての描画ウインドウを明示的に閉じない間
は、gnuplot が終了しないようにします。
最後に、デフォルトでは $<$space$>$ キーは gnuplot コンソールウィンドウを上
に上げ、'q' は描画ウィンドウを閉じます。キーワード {\tt"}ctrl{\tt"} は、それら
のキー割り当てを、それぞれ $<$ctrl$>$+$<$space$>$ と $<$ctrl$>$+'q' に変更します。
これらの 3 つのキーワード (raise, persist, ctrl) は、設定ダイアログ上
のやりとりでも設定し、記憶させることができます。
\part{Index}
\printindex
\end{document}
