\input{titlepag.tex}
\part{Gnuplot}
\section{著作権 (Copyright)}
\label{copyright}
\index{copyright}
\label{license}
\index{license}
\preverbatim
\begin{verbatim}
   Copyright (C) 1986 - 1993, 1998, 2004, 2007  Thomas Williams, Colin Kelley
\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
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     Original Software:
        Thomas Williams,  Colin Kelley.
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     Gnuplot 2.0 additions:
        Russell Lang, Dave Kotz, John Campbell.
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     Gnuplot 3.0 additions:
        Gershon Elber and many others.
\end{verbatim}
\postverbatim


\preverbatim
\begin{verbatim}
     Gnuplot 4.0 additions:
        See list of contributors at head of this document.
\end{verbatim}
\postverbatim

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

\preverbatim
\begin{verbatim}
     Copyright (C) 1986 - 1993, 1998, 2004   Thomas Williams, Colin Kelley
\end{verbatim}
\postverbatim

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

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

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


\preverbatim
\begin{verbatim}
     著者
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     オリジナルソフトウェア:
        Thomas Williams,  Colin Kelley.
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     Gnuplot 2.0 追加:
        Russell Lang, Dave Kotz, John Campbell.
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     Gnuplot 3.0 追加:
        Gershon Elber とその他の人々。
\end{verbatim}
\postverbatim

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

gnuplot は、2 次元、または 3 次元の、多くの種類のグラフをサポートして
います: 折線グラフ、点グラフ、棒グラフ、等高線、ベクトル場描画、曲面、
そしてそれらに関連するさまざまな文字列等。そしてさらにいくつかの特別な
描画型もサポートしています。

gnuplot は多くの異なる出力をサポートしています: 対話型スクリーン出力形
式 (マウスやホットキー入力も可能)、ペンプロッタや現在のプリンタへの直
接出力、または多くのファイル形式への出力 (eps, fig, jpeg, LaTeX,
metafont, pbm, pdf, png, postscript, svg, ...)。gnuplot は、容易に新し
い出力形式を追加するよう拡張することができます。最近追加された対話型出
力形式には、aquaterm (OSX) や wxWidgets (マルチプラットホーム) を元に
したものがあります。

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

\preverbatim
\begin{verbatim}
     load "filename"
     cd 'dir'
\end{verbatim}
\postverbatim

{\bf gnuplot} のコマンドの多くは複数のオプションを持っています。Version 4
は以前の版に比べて、それらのオプションの順序に関しては許容的になっていますが、しかし順序に依存するものも残ってはいます。オプションが認識され
ないといったエラーメッセージが現われたら、正確にドキュメントに書かれて
いる通りの順番で指定して試してみてください。

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

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

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

初めて {\bf gnuplot} を使う方は、{\bf plotting} に関する説明から読みはじめると
良いでしょう (対話型で使用中ならば {\bf help plotting} と入力して下さい)。

simple.dem デモを参照してください。あるいは以下の Web ページにも他のデモと一緒にあります。
\par\hskip2.7em\href{http://www.gnuplot.info/demo/}{\tt           http://www.gnuplot.info/demo/
}

{\bf gnuplot} はコマンドラインから、あるいはデスクトップ環境のアイコンから
起動することができます。コマンドラインから起動するときは、以下の書式が使えます。
\preverbatim
\begin{verbatim}
     gnuplot {OPTIONS} file1 file2 ...
\end{verbatim}
\postverbatim
ここで file1, file2 等は、{\bf local} コマンドで取り込むのと同等の入力ファ
イル (スクリプトファイル) です。
X11 ベースのシステムでは、以下の書式が使えます。
\preverbatim
\begin{verbatim}
     gnuplot {X11OPTIONS} {OPTIONS} file1 file2 ...
\end{verbatim}
\postverbatim
詳細は、X11 のドキュメントか、あるいは以下参照: {\bf x11 (p.~\pageref{x11})\index{x11}}。

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}}。gnuplot 用のオプションについては、
以下のようにして一覧を見ることができます:
\preverbatim
\begin{verbatim}
     gnuplot --help
\end{verbatim}
\postverbatim
詳細は以下参照: {\bf command line options (p.~\pageref{command line options})\index{options}}。

対話型スクリーン出力形式 ({\bf pm}, {\bf windows}, {\bf wxt}, {\bf x11}) では、'h' を
打つとホットキー ({\bf hotkeys}) とマウス機能 ({\bf mousing}) に関するヘルプが
表示されます。

{\bf seeking-assistance} のセクションは、さらなる情報やヘルプ、FAQ を探す
手掛りを与えてくれるでしょう。
\section{探し出す手助け (Seeking-assistance)}
\label{help-desk}
\index{help desk}
\label{seeking-assistance}
\index{seeking assistance}
\label{Seeking-assistance}
公式の gnuplot Web ページは以下にあります。
\par\hskip2.7em\href{http://www.gnuplot.info}{\tt           http://www.gnuplot.info
}


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

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

gnuplot ユーザとしての手助けが必要なら、以下のニュースグループを利用してください。
\preverbatim
\begin{verbatim}
         comp.graphics.apps.gnuplot
\end{verbatim}
\postverbatim
私達はメーリングリストに参加するより、むしろニュースグループのメッセー
ジを読むことを勧めます。メーリングリストも有効で、同じメッセージ列を配
送しています。メーリングリストに参加する方法に関しては、SouceForge に
ある gnuplot の開発 Web サイト
\par\hskip2.7em\href{http://sourceforge.net/projects/gnuplot}{\tt           http://sourceforge.net/projects/gnuplot
}

を参照してください。

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

バグリポート、ソースの改良等は以下の trackers に upload してください:
\preverbatim
\begin{verbatim}
         http://sourceforge.net/projects/gnuplot/support
\end{verbatim}
\postverbatim
ただし、リポートを送る前に、あなたがリポートしようとしているバグが、よ
り新しい gnuplot で既に修正されていないかチェックしてください。

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

何か質問を投稿するときは、あなたが使用している {\bf gnuplot} のバージョン、
実行マシン、オペレーティングシステム、といった全ての情報を含むようにし
てください。その問題を引き起こす \_小さい\_ スクリプトがあればなお良いで
す。その場合、データファイルのプロットよりも関数のプロットの方がより良
いです。もし、gnuplot-info へメールをするなら、そのメーリングリストの
購読をしているかどうかを述べてください。そうすれば、ニュースを見たユー
ザはあなたへの返事をメールで出せば良いことが分かるでしょうから。そのよ
うな記事のポストの form が Web サイトにあります。

\section{バージョン 4.4 で導入された新しい機能 (New features)}
\label{new-features}
\index{new features}
gnuplot version 4.4 は、直前の公式バージョン 4.2 以降に追加されたたくさんの機能を提供します。この節では、主な追加機能の一覧と、変更や細かい
新機能の一部を紹介します。より網羅的な一覧は、ファイル NEWS を参照して
ください。

\subsection{国際化 (Internationalization)}
gnuplot 4.4 には、ロカールの設定と UTF-8 文字エンコードのサポートに関
する意味深い改良が含まれています。以下参照: {\bf set locale (p.~\pageref{set locale})\index{locale}},{\bf set encoding (p.~\pageref{set encoding})\index{encoding}}, {\bf set decimalsign (p.~\pageref{set decimalsign})\index{decimalsign}}。

\subsection{透明化 (Transparency)}
現在の gnuplot は、いくつかの形式の透明化をサポートしています。塗り潰
しスタイルを使用する任意のオブジェクト、描画要素には「完全な不透明」か
ら「完全な透明」までの透明化を割り当てることができます。画像 (image)
や matrix データは、新しい描画スタイル {\bf with rgbalpha} を使用すること
で、アルファチャネル指定付きで描画できます。以下参照: {\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}},{\bf rgbalpha (p.~\pageref{rgbalpha})\index{rgbalpha}}。

\subsection{揮発性データ (Volatile Data)}
新しいコマンド {\bf refresh} はほぼ {\bf replot} と同じですが、入力データファ
イルの再読み込みをせず、前に保存した入力データを使うところが違います。
入力データが {\bf volatile} と指定されていれば、マウス操作 (ズーム、回転)
は {\bf replot} ではなく自動的に {\bf refresh} を使用します。パイプ入力、イン
ランデータも自動的に {\bf volatile} と扱われます。以下参照: {\bf refresh (p.~\pageref{refresh})\index{refresh}},{\bf plot datafile volatile (p.~\pageref{plot datafile volatile})\index{volatile}}。

\subsection{キャンバスサイズ (Canvas size)}
\label{canvas size}
\label{canvas}
\index{canvas}
\label{set term size}

gnuplot の以前の版では、{\bf set size} の値を、出力する描画領域 (キャンバス) のサイズを制御するのにも使っていた出力形式もありましたが、すべての
出力形式がそうだったわけではありませんでした。この目的のために
{\bf set size} を使用することは version 4.2 で非推奨となり、version 4.4 で
は、ほとんどの出力形式が以下のルールに従うようになりました:

{\bf set term $<$terminal\_type$>$ size $<$XX$>$, $<$YY$>$} は、出力ファイルのサイズ、
または {\tt"}キャンバス{\tt"} のサイズを制御します。サイズパラメータの有効な値に
ついては、個々の出力形式のヘルプを参照してください。デフォルトでは、グ
ラフはそのキャンバス全体に描画されます。

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

このルールに沿わない主な例外は PostScript ドライバで、デフォルトでは以前の版のと同じ振舞いをします。gnuplot の次の版では、PostScript ドライ
バも同様にデフォルトの振舞いを変更することになるでしょう。

例:

\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"} を生成します。グラフはキャンバスの中の左下に置かれます。
これは、multiplot モードが常に行ってきた方法とは矛盾していませんが、し
かし単一のグラフに対する version 4.0 の png ドライバの挙動とは異ってい
ます。

\subsection{新しい描画要素}
\index{circles}
\index{ellipse}
\index{polygon}
コマンド {\bf set object} は、現在は固定された長方形だけでなく、円、楕円、
多角形も定義でき、そして、それに対応する新しい描画スタイル
{\bf plot with circles} もあります。以下参照: {\bf circle (p.~\pageref{circle})\index{circle}}, {\bf ellipse (p.~\pageref{ellipse})\index{ellipse}},{\bf polygon (p.~\pageref{polygon})\index{polygon}}。

\subsection{新しい/修正された出力形式}
cairo, pango ライブラリによる 2 つの新しいドライバ {\bf pngcairo},
{\bf pdfcairo} が含まれています。これらは、古い libgd ベースの png ドライ
バ、古い PDFLib ベースの pdf ドライバの代替品です。このマニュアルの
pdf 版の図は、pdfcairo 出力ドライバで作成されたものです (訳注: PDF 版
マニュアルにこの図を入れるのには pdflatex が必要なため、日本語 PDF 版
マニュアルには今のところこの図は含まれていないでしょう)。

出力ドライバ {\bf canvas} は、ウェブページの canvas 要素 HTML 中に描画する
javascript 出力を生成します。これは、一つの描画だけを含む完全なウェブ
ページ、あるいは外部に生成された HTML ドキュメントの一部 (複数の描画を
入れることができる) として埋め込めるスクリプト、のいずれかを作成できま
す。埋め込ませる描画は、拡大/縮小などの、ブラウザ側のマウス動作をサポ
ートしています。

出力ドライバ {\bf lua} は、lua プログラミング言語のスクリプトによってさら
なる処理が可能なデータを生成します。現時点では、そのようなスクリプトと
しては gnuplot-tikz.lua のみが用意されていて、これは、latex TikZ パッ
ケージ用の出力を作成します。もちろん、他の TeX パッケージ用、あるいは
TeX 以外のツール用の gnuplot 出力を生成する lua スクリプトなどを作成することも可能でしょう。

{\bf set term tikz} は、{\bf set term lua tikz} の省略形です。上に書いたように
これは lua 出力形式と外部の lua スクリプトを使用して latex 文書を生成
します。

\subsection{新しい平滑化アルゴリズム}
\index{kdensity}
\index{cumulative}
2 次元、3 次元描画の両方に、新しい平滑化アルゴリズムが追加されていて、
滑らかなヒストグラムや累積分布関数の {\bf plot} による描画に、それぞれ
{\bf smooth kdensity} や {\bf smooth cumul} が使えます。{\bf splot} での使用に対し
ては、{\bf dgrid3d} にいくつかの新しい平滑化重み付け関数 (kernel) が追加さ
れています。以下参照: {\bf smooth (p.~\pageref{smooth})\index{smooth}}, {\bf dgrid3d (p.~\pageref{dgrid3d})\index{dgrid3d}}。

\section{後方互換性 (Backwards compatibility)}
\label{backwards compatibility}
\label{compatibility}
\index{compatibility}
以前の版で使われていたいくつかの書式は gnuplot 4.0 で非推奨となりましたが、それは今でも認識はされ続けています。これは現在コンパイル時に制御
され、以下のようにして無効にできます:

\preverbatim
\begin{verbatim}
     ./configure --disable-backwards-compatibility
\end{verbatim}
\postverbatim

注意: 非推奨の書式は、未来の gnuplot のある版からは、完全に無効になっ
てしまうかもしれません。

一つの主な違いは、複雑なコマンド (特に文字列変数を含むコマンド) のあい
まいさを避けるようなキーワードの導入です。特に注意すべき点は、オフセッ
ト、線種、点種に対する生の数の使用でした。
具体例:

非推奨:
\preverbatim
\begin{verbatim}
     set title "Old" 0,-1
     set data linespoints
     plot 1 2 4               # horizontal line at y=1
\end{verbatim}
\postverbatim
新:
\preverbatim
\begin{verbatim}
     TITLE = "New"
     set title TITLE offset char 0, char -1
     set style data linespoints
     plot 1 linetype 2 pointtype 4
\end{verbatim}
\postverbatim

\section{バッチ/対話型操作 (Batch/Interactive)}
\label{batch/interactive}
\index{batch/interactive}
\label{command line options}
{\bf gnuplot} は多くのシステム上で、バッチ処理形式、あるいは対話型のどちら
の形式でも実行でき、それらを組み合わせることも可能です。

コマンドライン引数は、プログラムへのオプション (文字 - で始まる) か、
{\bf gnuplot} コマンドを含むファイルの名前であると解釈されます。
-e {\tt"}command{\tt"} の形式のオプションは、gnuplot コマンドを強制的に実行させ、
各ファイルとこのコマンド文字列は、指定された順に実行されます。特別なフ
ァイル名 {\tt"}-{\tt"} は、コマンドを標準入力から読み込むことを意味します。最後
のファイルを実行した後に {\bf gnuplot} は終了します。読み込ませるファイル、
およびコマンド文字列を指定しなかった場合は、{\bf gnuplot} は標準入力からの
対話型の入力を受け付けます。

{\bf exit} と {\bf quit} はどちらも現在のコマンドファイルを終了し、まだ全ての
ファイルが終っていなければ、次のファイルを {\bf load} するのに使われます。

例:

対話を開始する:
\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{コマンドライン編集 (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 版の場合の編集コマンドは以下の通りです。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, DEL~ & 直前の文字を削除\\
\verb~^D~ & 現在位置の文字を削除\\
\verb~^K~ & 現在位置から行末まで削除\\
\verb~^L, ^R~ & 壊れた表示の行を再表示\\
\verb~^U~ & 行全体の削除\\
\verb~^W~ & カーソル手前の単語から行末まで削除\\ \hline
 & \multicolumn{1}{|c|}{履歴} \\ \cline{2-2}
\verb~^P~ & 前の履歴へ移動\\
\verb~^N~ & 次の履歴へ移動\\
\hline
\end{tabular}
\end{center}
\section{コメント (Comments)}
\label{comments}
\index{comments}
コメントは次のように実装されています: 文字 '\#' は、行中のたいていの場
所に書くことができます。このとき {\bf gnuplot} はその行の残りの部分を無視し
ます。ただし、引用符の中、数 (複素数を含む) の中、コマンド置換 (command
substitution) の中などではこの効果がありません。簡単に言うと、意味
のあるような使い方をしさえすれば、正しく動作すると言うことです。

データファイル中のコメント文字の指定については、以下参照:{\bf set datafile commentschars (p.~\pageref{set datafile commentschars})\index{commentschars}}。コメント行が '$\backslash$' で終わっている場合、次
の行もコメントとして扱われることに注意してください。
\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 graph}, {\bf screen},
{\bf character} のいずれかが入ります。

{\bf first} は左と下の軸で定義される x,y (3D の場合は z も) の座標系を使用
します。{\bf second} は第 2 軸 (上と右の軸) を使用します。{\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} は、画面領域の左下
(screen 0,0) からの、文字の幅、文字の高さでの位置を与えます。よって、
{\bf character} 座標は、選択されたフォントのサイズに依存します。

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} は整数表記も
認めていて、その場合その整数は 2000 年 1 月 1 日からの秒数と解釈されま
す。
\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) 座標と
して取り出し、それらの点の列を結ぶ線分を描画します。しかしこの場合
gnuplot は、x 軸に沿って標準的に間の空いた数字ラベルのついた目盛り刻み
をつけるのではなく、入力データファイルの 1 行目の X 座標の位置に、目盛
り刻みと文字列を x 軸に沿ってつけて行きます。

\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

以下参照: {\bf set style labels (p.~\pageref{set style 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}}。
\section{拡張文字列処理モード (Enhanced text mode)}
\label{enhanced text}
\label{enhanced}
\index{enhanced}
多くの出力形式が、拡張文字列処理モード (enhanced text mode) をサポート
しています。これは、文字列に追加の書式情報を埋めこみます。例えば {\tt"}x\verb+^+2{\tt"}
は x の自乗を、通常我々が見る上付きの 2 がついた形で書き出します。この
モードは、例えば、{\tt"}set term png enhanced{\tt"} のように普通は出力形式を設定
するときに選択しますが、後で {\tt"}set termoption enhanced{\tt"} を使ってその機
能を有効/無効にもできますし、{\tt"}set label 'x\_2' noenhanced{\tt"} のように個々
の文字列に適用することもできます。


\begin{center}
\begin{tabular}{|cccl|} \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 倍持ち上げた位置に重ね書き\\
\hline
\end{tabular}
\end{center}

中カッコは一文字が期待される箇所に複数の文字を書く場合に使われます (例
えば 2\verb+^+\{10\})。フォント、およびそのサイズを変更するには、以下の形式を使ってください: \{/[fontname][=fontsize $|$ *fontscale] text\} よって、例えば \{/Symbol=20 G\} は 20 ポイントのΓ (ガンマ)に、\{/*0.75 K\} は現在の有
効なフォントサイズの 3/4 の大きさの K になります (文字 '/' は、'\{' の
直後の文字でなくてはなりません)。

空ボックス (phantom box) は a@\verb+^+b\_c の上付き文字と下付き文字を揃えると
きに有用ですが、文字にアクセント記号を重ねる場合にはうまく働きません。
後者の目的のためには、色々なアクセントやその他のダイアクリティカルマ
ークのある多くの文字を持つエンコード (例えば iso\_8859\_1 や 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$\verb+^+\}' のように特殊な文字をエスケープするこ
と (下記参照) は可能です。

$\backslash$文字コード (8 進数) を指定することで特殊な記号を指定することができま
す。例えば、\{/Symbol $\backslash$245\} は無限大の記号になります。しかし、これは、
UTF-8 のようなマルチバイトエンコードの場合にはうまくいきません。UTF-8
環境では、タイプ入力するかまたは別のやり方であなたが望む文字を選択する
ことでマルチバイト列を入力できるようにすべきです。

制御文字は、 $\backslash$$\backslash$ や $\backslash$\{ などのように $\backslash$ を使ってエスケープできます。

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

例 (これらは言葉で説明するのは難しいのでとりあえずやってみてください):
\preverbatim
\begin{verbatim}
     set xlabel 'Time (10^6 {/Symbol m}s)'
     set title '{/Symbol=18 \\362@_{/=9.6 0}^{/=12 x}} \\
                {/Helvetica e^{-{/Symbol m}^2/2} d}{/Symbol m}'
\end{verbatim}
\postverbatim

gnuplot ソース配布物内の /docs/psdoc サブディレクトリにあるファイル
{\tt"}ps\_guide.ps{\tt"} に、拡張された書式に関する例が更に載っています。
\section{環境変数 (Environment)}
\label{environment}
\index{environment}
{\bf gnuplot} は多くのシェル環境変数を認識します。必須のものはありませんが、
使えば便利になるかも知れません。

GNUTERM が定義されている場合、それは使用される出力形式 (terminal) の名
前として使われます。これは {\bf gnuplot} が起動時に見つけた出力形式に優先
して使用されますが、.gnuplot (またはそれに相当する) スタートアップファ
イル (以下参照: {\bf startup (p.~\pageref{startup})\index{startup}}) による指定や、当り前のことですが、その後に
明示的に指定した物の方が優先されます。

GNUHELP にヘルプファイル (gnuplot.gih) のパス名を定義しておくことがで
きます。

VMS では、論理名 GNUPLOT\$HELP を {\bf gnuplot} のヘルプライブラリの名前と
して定義します。{\bf gnuplot} のヘルプは任意のシステムのヘルプライブラリに
入れることができ、{\bf gnuplot} の内部からでも外部からでも参照して構いませ
ん。

Unix においては、カレントディレクトリに .gnuplot というファイルがない
場合には、HOME に定義されたディレクトリを探します。AmigaOS, MS-DOS,
Windows, OS/2 では GNUPLOT がその役割に使われます。Windows では、NT 専
用の変数 USERPROFILE も参照されます。VMS では SYS\$LOGIN です。
{\bf help startup} と打ってみてください。

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

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

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

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

出力ドライバの中には gd ライブラリ経由で TrueType フォントを扱えるもの
もいくつかあります。これらのドライバのフォント検索パスは、環境変数
GDFONTPATH で制御できます。さらに、それらのドライバでのデフォルトのフ
ォントは環境変数 GNUPLOT\_DEFAULT\_GDFONT で制御できます。

postscript 出力ドライバは自分で持っているフォント検索パスを使いますが、
それは環境変数 GNUPLOT\_FONTPATH で制御できます。書式は GNUPLOT\_LIB と
同じです。GNUPLOT\_FONTPATH の値は変数 {\bf fontpath} に追加されますが、そ
れは {\bf save} や {\bf save set} コマンドでは保存されません。

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

複素数の定数は \{$<$real$>$,$<$imag$>$\} と表現します。ここで $<$real$>$ と $<$imag$>$
(実部、虚部) は数値定数である必要があります。例えば \{3,2\} は 3 + 2i を
あらわし、\{0,1\} は 'i' 自身を表します。これらには明示的に中カッコを使
う必要があります。

\index{division}
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"} として、あなたのシステ
ムが -2 と -3 のどちらを答えとするかを確認してください。

数式 {\tt"}1/0{\tt"} は {\tt"}未定義値 (undefined){\tt"} フラグを生成し、それによりその点
は無視されます。{\bf ternary} 演算子 (三項演算子) の項にその例があります。
または、あらかじめ定義されている値 NaN を使っても同じことになります。
\index{NaN}

複素数表現の実数部分、虚数部分は、どんな形で入力されても常に実数です:
\{3,2\} の {\tt"}3{\tt"} と {\tt"}2{\tt"} は実数であり、整数ではありません。

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{関数 (Functions)}
\label{expressions functions}
\label{functions}
\index{functions}
{\bf gnuplot} の関数は、Unix 数学ライブラリの関数とほぼ同じですが、特に注
意がなければ全ての関数が整数、実数、複素数の引数を取ることができます。

度、あるいはラジアンのどちらかで角度を引数としたり戻り値としたりする関
数 (sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(x), arg(z))
に対しては、その単位は {\bf set angles} で選択でき、デフォルトはラジアンで
す。


\begin{center}
\begin{tabular}{|ccl|} \hline
\multicolumn{3}{|c|}{数学ライブラリ関数} \\ \hline \hline
関数 & 引数 & 戻り値 \\ \hline
\label{expressions functions abs}
\label{functions abs}
\label{abs}
\index{abs}
abs(x) & 任意  &  $x$ の絶対値, $|x|$; 同じ型\\
abs(x) & 複素数 &  $x$ の長さ, $\sqrt{{\mbox{real}(x)^{2} +
\mbox{imag}(x)^{2}}}$ \\
\label{expressions functions acos}
\label{functions acos}
\label{acos}
\index{acos}
acos(x) & 任意 & $\cos^{-1} x$ (アークコサイン) \\
\label{expressions functions acosh}
\label{functions acosh}
\label{acosh}
\index{acosh}
acosh(x) & 任意 & ラジアンでの $\cosh^{-1} x$ (逆双曲余弦)\\
\label{expressions functions arg}
\label{functions arg}
\label{arg}
\index{arg}
arg(x) & 複素数 & $x$ の偏角 \\
\label{expressions functions asin}
\label{functions asin}
\label{asin}
\index{asin}
asin(x) & 任意  & $\sin^{-1} x$ (アークサイン) \\
\label{expressions functions asinh}
\label{functions asinh}
\label{asinh}
\index{asinh}
asinh(x) & 任意  & ラジアンでの $\sinh^{-1} x$ (逆双曲正弦)\\
\label{expressions functions atan}
\label{functions atan}
\label{atan}
\index{atan}
atan(x) & 任意  & $\tan^{-1} x$ (アークタンジェント) \\
\label{expressions functions atan2}
\label{functions atan2}
\label{atan2}
\index{atan2}
atan2(y,x) & 整数または実数 & $\tan^{-1} (y/x)$ (アークタンジェント) \\
\label{expressions functions atanh}
\label{functions atanh}
\label{atanh}
\index{atanh}
atanh(x) & 任意  & ラジアンでの $\tanh^{-1} x$ (逆双曲正接)\\
EllipticK(k) & 実数 k $\in$ (-1:1) & $K(k)$ 第 1 種完全楕円積分\\
EllipticE(k) & 実数 k $\in$ [-1:1] & $E(k)$ 第 2 種完全楕円積分\\
EllipticPi(n,k) & 実数 n$<$1, 実数 k $\in$ (-1:1) & $\Pi(n,k)$ 第 3 種完全楕円積分\\
\label{expressions functions besj0}
\label{functions besj0}
\label{besj0}
\index{besj0}
besj0(x) & 整数または実数 & $j_{0}$ ベッセル関数 (0 次ベッセル関数)\\
\label{expressions functions besj1}
\label{functions besj1}
\label{besj1}
\index{besj1}
besj1(x) & 整数または実数 & $j_{1}$ ベッセル関数 (1 次ベッセル関数)\\
\label{expressions functions besy0}
\label{functions besy0}
\label{besy0}
\index{besy0}
besy0(x) & 整数または実数 & $y_{0}$ ベッセル関数 (0 次ノイマン関数)\\
\label{expressions functions besy1}
\label{functions besy1}
\label{besy1}
\index{besy1}
besy1(x) & 整数または実数 & $y_{1}$ ベッセル関数 (1 次ノイマン関数)\\
\label{expressions functions ceil}
\label{functions ceil}
\label{ceil}
\index{ceil}
ceil(x) & 任意 & $\lceil x \rceil$, $x$ (の実部) 以上の最小の整数\\
\label{expressions functions cos}
\label{functions cos}
\label{cos}
\index{cos}
cos(x) & 任意 & $x$ のコサイン $\cos x$\\
\label{expressions functions cosh}
\label{functions cosh}
\label{cosh}
\index{cosh}
cosh(x) & 任意 & $\cosh x$, $x$ のハイパボリックコサイン \\
\label{expressions functions erf}
\label{functions erf}
\label{erf}
\index{erf}
erf(x) & 任意 & $\mbox{erf}(\mbox{real}(x))$,  $x$ の 実部の誤差関数\\
\label{expressions functions erfc}
\label{functions erfc}
\label{erfc}
\index{erfc}
erfc(x) & 任意 & $\mbox{erfc}(\mbox{real}(x))$,  1.0 - ($x$ の実部の誤差関数) \\
\label{expressions functions exp}
\label{functions exp}
\label{exp}
\index{exp}
exp(x) & 任意 & $e^{x}$, $x$ の指数関数\\
\label{expressions functions floor}
\label{functions floor}
\label{floor}
\index{floor}
floor(x) & 任意 & $\lfloor x \rfloor$, $x$ (の実部) 以下の最大の整数\\
\label{expressions functions gamma}
\label{functions gamma}
\label{gamma}
\index{gamma}
gamma(x) & 任意 & $\mbox{gamma}(\mbox{real}(x))$, $x$ の実部のガンマ関数\\
\label{expressions functions ibeta}
\label{functions ibeta}
\label{ibeta}
\index{ibeta}
ibeta(p,q,x) & 任意 & $\mbox{ibeta}(\mbox{real}(p,q,x))$, $p$,$q$,$x$ の実部の不完全ベータ関数 \\
\label{expressions functions inverf}
\label{functions inverf}
\label{inverf}
\index{inverf}
inverf(x) & 任意 & $x$ の実部の逆誤差関数 \\
\label{expressions functions igamma}
\label{functions igamma}
\label{igamma}
\index{igamma}
igamma(a,x) & 任意 & $\mbox{igamma}(\mbox{real}(a,x))$, $a$,$x$ の実部の不完全ガンマ関数 \\
\label{expressions functions imag}
\label{functions imag}
\label{imag}
\index{imag}
imag(x) & 複素数 & $x$ の虚数部分 (実数) \\
\label{expressions functions invnorm}
\label{functions invnorm}
\label{invnorm}
\index{invnorm}
invnorm(x) & 任意 & $x$ の実部の逆正規分布関数 \\
\label{expressions functions int}
\label{functions int}
\label{int}
\index{int}
int(x) & 実数 &  $x$ の整数部分 (0 に向かって丸め) \\
\label{expressions functions lambertw}
\label{functions lambertw}
\label{lambertw}
\index{lambertw}
lambertw(x) & 実数 & Lambert W 関数 \\
\label{expressions functions lgamma}
\label{functions lgamma}
\label{lgamma}
\index{lgamma}
lgamma(x) & 任意 & $\mbox{lgamma}(\mbox{real}(x))$, $x$ の実部のガンマ対数関数\\
\label{expressions functions log}
\label{functions log}
\label{log}
\index{log}
log(x) & 任意 & $\log_{e} x$,  $x$ の自然対数 (底 $e$) \\
\label{expressions functions log10}
\label{functions log10}
\label{log10}
\index{log10}
log10(x) & 任意 & $\log_{10} x$, $x$ の対数 (底 $10$) \\
\label{expressions functions norm}
\label{functions norm}
\label{norm}
\index{norm}
norm(x) & 任意 & $x$ の実部の正規分布 (ガウス分布) 関数 \\
\label{expressions functions rand}
\label{functions rand}
\label{rand}
\index{rand}
rand(x) & 任意 & $\mbox{rand}(\mbox{real}(x))$, 疑似乱数生成器\\
\label{expressions functions real}
\label{functions real}
\label{real}
\index{real}
real(x) & 任意 &  $x$ の実部 \\
\label{expressions functions sgn}
\label{functions sgn}
\label{sgn}
\index{sgn}
sgn(x) & 任意 & $x>0$ なら 1, $x<0$ なら -1, $x=0$ なら 0. $x$ の虚部は無視 \\
\label{expressions functions sin}
\label{functions sin}
\label{sin}
\index{sin}
sin(x) & 任意 & $\sin x$, $x$ のサイン\\
\label{expressions functions sinh}
\label{functions sinh}
\label{sinh}
\index{sinh}
sinh(x) & 任意 & $\sinh x$, $x$ のハイパボリックサイン \\
\label{expressions functions sqrt}
\label{functions sqrt}
\label{sqrt}
\index{sqrt}
sqrt(x) & 任意 & $\sqrt{x}$,  $x$ の平方根\\
\label{expressions functions tan}
\label{functions tan}
\label{tan}
\index{tan}
tan(x) & 任意 & $\tan x$,  $x$ のタンジェント \\
\label{expressions functions tanh}
\label{functions tanh}
\label{tanh}
\index{tanh}
tanh(x) & 任意 & $\tanh x$, $x$ のハイパボリックタンジェント\\
\hline
\end{tabular}
\end{center}


\begin{center}
\begin{tabular}{|ccl|} \hline
\multicolumn{3}{|c|}{文字列関数} \\ \hline \hline
関数 & 引数 & 返り値 \\ \hline
\label{expressions functions gprintf}
\label{functions gprintf}
gprintf("format",x) & 任意 & gnuplot の書式解析器を適用した結果の文字列 \\
\label{expressions functions sprintf}
\label{functions sprintf}
\label{sprintf}
\index{sprintf}
sprintf("format",x,...) & 複数個 & C 言語の sprintf の返す文字列 \\
\label{expressions functions strlen}
\label{functions strlen}
\label{strlen}
\index{strlen}
strlen("string") & 文字列 & 文字列の長さ (整数) \\
\label{expressions functions strstrt}
\label{functions strstrt}
\label{strstrt}
\index{strstrt}
strstrt("string","key") & 文字列 & 部分文字列 "key" が現れる先頭位置\\
\label{expressions functions substr}
\label{functions substr}
\label{substr}
\index{substr}
\index{substring}
substr("string",beg,end) & 複数個 & 文字列 "string"[beg:end] \\
\label{expressions functions strftime}
\label{functions strftime}
\label{strftime}
\index{strftime}
strftime("timeformat",t) & 任意 & gnuplot による時刻解析結果の文字列 \\
\label{expressions functions strptime}
\label{functions strptime}
\label{strptime}
\index{strptime}
strptime("timeformat",s) & 文字列 & 文字列 s を変換した 2000 年からの秒数 \\
\label{expressions functions system}
\label{functions system}
\index{system}
system("command") & 文字列 & シェルコマンドの出力を持つ文字列\\
\label{expressions functions word}
\label{functions word}
\label{word}
\index{word}
\index{word}
word("string",n) & 文字列, 整数 & 文字列 "string" の n 番目の単語 \\
\label{expressions functions words}
\label{functions words}
\label{words}
\index{words}
\index{words}
words("string") & 文字列 & 文字列 "string" 中の単語数 \\
\hline
\end{tabular}
\end{center}


\begin{center}
\begin{tabular}{|ccl|} \hline
\multicolumn{3}{|c|}{他の {\bf gnuplot} の関数} \\ \hline \hline
関数 & 引数 & 返り値 \\ \hline
\label{expressions functions column}
\label{functions column}
\label{column}
\index{column}
column(x) & 整数 & データファイル処理中の $x$ 列目 \\
\label{expressions functions defined}
\label{functions defined}
\label{defined}
\index{defined}
defined(X) & 変数名 & [非推奨] X が定義されていれば 1, そうでなければ 0\\
\label{expressions functions exists}
\label{functions exists}
\label{exists}
\index{exists}
exists("X") & 文字列 & 変数名 X が定義されていれば 1, そうでなければ 0\\
\label{expressions functions stringcolumn}
\label{functions stringcolumn}
\label{stringcolumn}
\index{stringcolumn}
\label{expressions functions strcol}
\label{functions strcol}
\label{strcol}
\index{strcol}
stringcolumn(x) & 整数 & 文字列としての $x$ 列目の内容 \\
\label{expressions functions timecolumn}
\label{functions timecolumn}
\label{timecolumn}
\index{timecolumn}
timecolumn(x) & 整数 & データファイル処理中の $x$ 列目の日時データ \\
\label{expressions tm_hour}
\label{functions tm_hour}
\label{tm_hour}
\index{tm hour}
tm\_hour(x) & 整数 & 時\\
\label{expressions tm_mday}
\label{functions tm_mday}
\label{tm_mday}
\index{tm mday}
tm\_mday(x) & 整数 & 日 \\
\label{expressions tm_min}
\label{functions tm_min}
\label{tm_min}
\index{tm min}
tm\_min(x) & 整数 & 分 \\
\label{expressions tm_mon}
\label{functions tm_mon}
\label{tm_mon}
\index{tm mon}
tm\_mon(x) & 整数 & 月 \\
\label{expressions tm_sec}
\label{functions tm_sec}
\label{tm_sec}
\index{tm sec}
tm\_sec(x) & 整数 & 秒 \\
\label{expressions tm_wday}
\label{functions tm_wday}
\label{tm_wday}
\index{tm wday}
tm\_wday(x) & 整数 & その週の何日目 \\
\label{expressions tm_yday}
\label{functions tm_yday}
\label{tm_yday}
\index{tm yday}
tm\_yday(x) & 整数 & その年の何日目 \\
\label{expressions tm_year}
\label{functions tm_year}
\label{tm_year}
\index{tm year}
tm\_year(x) & 整数 & 西暦 \\
\label{expressions functions valid}
\label{functions valid}
\label{valid}
\index{valid}
valid(x) & 整数 & データ中の $\mbox{column}(x)$ の正当性\\
value("name") & 文字列 & 名前 name の変数の現在の値\\
\hline
\end{tabular}
\end{center}

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

関数 {\bf EllipticE(k)} は、第 2 種完全楕円積分、すなわち、関数
{\bf (1-(k*sin(p))**2)**0.5} の 0 からπ/2 までの範囲の広義積分の値を返し
ます。{\bf k} の定義域は -1 から 1 です (両端も含む)。

関数 {\bf EllipticPi(n,k)} は、第 3 種完全楕円積分、すなわち関数
{\bf (1-(k*sin(p))**2)**(-0.5)/(1-n*sin(p)**2)} の 0 からπ/2 までの範囲の
広義積分の値を返します。パラメータ {\bf n} は 1 より小さく、{\bf k} は -1 と 1
の間 (両端は含まない) でなければいけません。定義より、すべての正の {\bf k}
に対し EllipticPi(0,k) == EllipticK(k) であることに注意してください。
\subsubsection{乱数の生成 (random)}
\label{expressions random}
\label{functions random}
\label{random}
\index{random}
古い版の gnuplot では、疑似乱数列を生成するのに rand(x$>$0) を使っていた
こともありますが、現在の挙動は以下の通りです:
\preverbatim
\begin{verbatim}
`rand(0)`  内部に持つ 2 つの 32bit の種 (seed) の現在の値から生成され
           る [0:1] 区間内の疑似乱数値を返す
`rand(-1)` 2 つの種の値を標準値に戻す
`rand(x)`  x>0 ならば両方の種に x の値に基づく値を設定する
`rand({x,y})` x>0 ならば seed1 を x に、seed2 を y に設定する
\end{verbatim}
\postverbatim

\subsubsection{Value}
\label{expressions functions value}
\label{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 を返します。

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

演算の評価の順序を変更するにはかっこを使います。
\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}
\begin{tabular}{|ccl|} \hline
\multicolumn{3}{|c|}{単項演算子}\\ \hline \hline
記号 & 例 & 説明 \\ \hline
\verb@-@ & \verb@-a@ & マイナス符号 \\
\verb@+@ & \verb@+a@ & プラス符号 (何もしない) \\
\verb@~@ & \verb@~a@ & * 1 の補数 (ビット反転) \\
\verb@!@ & \verb@!a@ & * 論理的否定 \\
\verb@!@ & \verb@a!@ & * 階乗 \\
\verb@$@ & \verb@$3@ & * `using` 内での引数/列指定 \\
\hline
\end{tabular}
\end{center}
説明に星印 (*) のついた演算子の引数は整数でなければなりません。

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

階乗演算子は、大きな値を返せるように実数を返します。
\subsubsection{二項演算子 (Binary)}
\label{expressions operators binary}
\label{operators binary}
以下は、二項演算子とその使用法の一覧です:


\begin{center}
\index{bitwise operators}
\index{string operators}
\index{modulo}
\index{exponentiation}
\begin{tabular}{|ccl|} \hline
\multicolumn{3}{|c|}{二項演算子} \\ \hline \hline
記号 & 例 & 説明 \\ \hline
\verb~**~ & \verb~a**b~ & 累乗\\
\verb~*~ & \verb~a*b~ & 積\\
\verb~/~ & \verb~a/b~ & 商\\
\verb~%~ & \verb~a%b~ & * 余り\\
\verb~+~ & \verb~a+b~ & 和\\
\verb~-~ & \verb~a-b~ & 差\\
\verb~==~ & \verb~a==b~ & 等しい\\
\verb~!=~ & \verb~a!=b~ & 等しくない\\
\verb~<~ & \verb~a<b~ & より小さい\\
\verb~<=~ & \verb~a<=b~ & 以下\\
\verb~>~ & \verb~a>b~ & より大きい\\
\verb~>=~ & \verb~a>=b~ & 以上\\
\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)}
\label{expressions operators ternary}
\label{operators ternary}
\label{ternary}
\index{ternary}
一つだけ三項演算子があります:


\begin{center}
\begin{tabular}{|ccl|} \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{定義済み変数 (Gnuplot-defined variables)}
\label{gnuplot-defined variables}
gnuplot は、プログラムの現在の内部状態と直前の描画を反映するような読み
出し専用の変数をいくつか持っています。これらの変数の名前は、例えば
GPVAL\_TERM, GPVAL\_X\_MIN, GPVAL\_X\_MAX, GPVAL\_Y\_MIN のように {\tt"}GPVAL\_{\tt"} で
始まります。これらすべての一覧とその値を見るには、{\bf show variables all}
と入力してください。ただし、軸のパラメータに関連する値 (範囲、対数軸で
あるか等) は、現在 {\bf set} したものではなく、最後に描画されたものが使用
されます。

\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 fit} の使用に際しては、例
えば {\tt"}FIT\_LIMIT{\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)}
\label{expressions 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$>$ で表される数式です。

ユーザ定義変数書式:
\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}}。
\section{フォント}
\label{fonts}
\index{fonts}
gnuplot それ自身にはどんなフォントも含まれてはおらず、外部フォント処理
に頼っているだけで、その細部は悲しいことに出力形式毎に異なります。ここ
では、複数の出力形式に適用されるフォント機構について説明します。ここに
上げたもの以外の出力形式でのフォントの使用に関しては、その出力形式のドキュメントを参照してください。
\subsection{Cairo (pdfcairo, pngcairo, wxt 出力形式)}
\label{fonts cairo}
\index{fonts}
\index{pdf}
\index{png}
\index{wxt}
すみません。このセクションはまだできていません。
これらの出力形式は、フォントの検索とアクセスに外部の fontconfig ツール
群を使用します。
\par\hskip2.7em\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 terminals)}
\label{gd}
\index{gd}
\label{fonts gd}
\index{fonts}
\index{png}
\index{jpeg}
\index{gif}
png, gif, jpeg 出力形式のフォント処理は、外部ライブラリ libgd によって
行われます。libgd は、次の 5 種類の基本フォントを直接提供しています:
{\bf tiny} (5x8 ピクセル), {\bf small} (6x12 ピクセル), {\bf medium}, (7x13 Bold),
{\bf large} (8x16), {\bf giant} (9x15 ピクセル)。これらのフォントは大きさを変
更したり回転したりすることはできません。使用する際は、{\bf font} キーワー
ドの代わりに上のキーワードを指定します。例:
\preverbatim
\begin{verbatim}
    set term png tiny
\end{verbatim}
\postverbatim

多くのシステムで、libgd は Adobe Type 1 フォント (*.pfa) と TrueType
フォントへのアクセスも提供します。その場合フォント自身の名前ではなく、
フォントファイルの名前を、{\tt"}$<$face$>$ \{,$<$pointsize$>$\}{\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

TrueType と Adobe Type 1 フォントは、完全に大きさの変更や回転が可能で
す。{\tt"}set term{\tt"} コマンドでフォントを指定しなかった場合、gnuplot は別の
デフォルトフォントの設定があるかどうかを調べるために環境変数
GNUPLOT\_DEFAULT\_GDFONT を参照します。
\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)}
\label{glossary}
\index{glossary}
このドキュメント全体に渡って、用語に関する一貫性の維持が考えられていま
す。しかしこの試みは完全には成功していません。それは {\bf gnuplot} が時間
をかけて進化してきたように、コマンドやキーワードの名前もそのような完全
性を排除するかのように採用されて来ているからです。この節では、これらの
キーワードのいくつかがどのように使われているかを説明します。

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

表示画面は、一つ、またはそれ以上の {\tt"}グラフ描画 (plot){\tt"} を含みます。グ
ラフ描画は一つの横座標と一つの縦座標で定義されますが、余白 (margin) や
その中に書かれる文字列 (text) 同様、それらは実際にその上に表示されてい
る必要はありません。

グラフ描画は一つの {\tt"}グラフ{\tt"} を含みます。グラフは一つの横座標と一つの縦
座標で定義されますが、これらは実際にその上に表示されている必要はありま
せん。

グラフは一つまたはそれ以上の {\tt"}曲線 (line){\tt"} を含みます。曲線は一つの関
数、またはデータ集合です。用語 {\tt"}line{\tt"} は描画スタイルとしても使われます。
さらにこの用語は {\tt"}文字列の一行 (a line of text){\tt"} のように使われること
もあります。多分文脈からそれらは区別できるでしょう。

一つのグラフ上の複数の曲線はそれぞれ名前を持ちます。その名前は、その曲
線の表現に使われる描画スタイルのサンプルとともに {\tt"}(説明) key{\tt"} 内に一覧
表示されます。説明は、時には {\tt"}(表題) legend{\tt"} とも呼ばれます。

用語 {\tt"}タイトル (title){\tt"} は {\bf gnuplot} では複数の意味で使われます。この
ドキュメントではそれらを区別するために、形容詞として {\tt"}描画の (plot){\tt"}、
{\tt"}曲線の (line){\tt"}、{\tt"}説明の (key){\tt"} を頭につけたりもします。
2 次元のグラフは 4 つまでの見出し付けされる軸を持つことができます。こ
れら 4 つの軸の名前はそれぞれ、グラフ描画の下の境界に沿う軸である {\tt"}x{\tt"}、
左の境界に沿う軸 {\tt"}y{\tt"}、上の境界に沿う軸 {\tt"}x2{\tt"}、右の境界に沿う軸 {\tt"}y2{\tt"} と
なっています。以下参照: {\bf axes (p.~\pageref{axes})\index{axes}}。

3 次元のグラフは  3 つまでの見出し付けされる軸 ({\bf axes}) {\tt"}x{\tt"},{\tt"}y{\tt"},{\tt"}z{\tt"} を
持つことができます。どの特定の軸に関してもそれがグラフ上でどこに書かれ
るかを述べることはできません。それは、{\bf set view} でグラフを見る方向を
変更できるからです。

データファイルに関する議論では、用語 {\tt"}行 (record){\tt"} を復活し、ファイル
の一行の文字列、すなわち、改行文字や行末文字同士の間の文字列、を指し示
すのに使います。{\tt"}点 (point){\tt"} は行から取り出した一つのデータです。{\tt"}デー
タブロック (datablock){\tt"} は、空行で区切られた連続した複数の行からなる点
の集合です。データファイルの議論の中で {\tt"}line{\tt"} が参照される場合は、これ
はデータブロックの部分集合を指します。

(訳注: この日本語訳の中ではここに書かれているような用語の統一は考慮さ
れてはおらず、よって混乱を引き起こす可能性があります。厳密には原文を参
照すべきでしょう。)
\section{線種、色、スタイル (linetype)}
\label{linetype}
\index{linetype}
\label{colors}
\index{colors}
gnuplot の各出力形式は {\tt"}線種 (linetype){\tt"} をある程度用意しています。そ
れらは色、太さ、点線/破線のパターン、または色と点線/破線の組合せで違い
を表現しています。特定の出力形式のデフォルトの線種は、その出力形式を設
定した ({\bf set terminal}) 後で {\bf test} コマンドを発行することで確認できま
す。定義されている色、点線/破線のパターンはすべての出力形式で同じもの
であるという保証は何もありませんが、線種 -1 は特別に全ての出力形式で、
最も普通の表示色 (通常は黒) の実線を意味しています。デフォルトでは、一
つの描画コマンド内での関数やデータファイルの並びには、順番に線種が割り
当てられます。そのデフォルトは、関数、データファイル、またはその他の描
画要素に個別に線種を指定することで上書きできます。

例:

\preverbatim
\begin{verbatim}
    plot "foo", "bar"                 # 線種 1, 2 で 2 ファイルを描画
    plot sin(x) linetype 4            # 出力形式に依存する線種色 4
    plot sin(x) lt -1                 # 黒
\end{verbatim}
\postverbatim

\index{colors}
多くの出力形式で、ユーザ定義色を定義できるようになっています。色の定義
は明示的な rgb (赤、緑、青) を指定するか、色名か、現在の pm3d パレット
を参照する色の値のいずれかで行ないます。

例:

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

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

点線/破線のパターンをサポートする出力形式では、デフォルトの線種は点線/
破線のパターンと色の両方が定義されています。しかし、デフォルトの色は、
キーワード {\bf linecolor} (省略形は {\bf lc}) を使うことで上書きできます。例
えば、postscript 出力形式のデフォルトの線種 3 は青の破線です。以下の描画コマンドは同じ破線パターンで 3 つの描画を行ないますが、一つは青 (デフォルト)、一つは赤 (線種 1 のデフォルト色)、もう一つは金色になります。

例:

\preverbatim
\begin{verbatim}
    set term postscript dashed color
    plot 'foo' lt 3, 'baz' lt 3 linecolor 1, 'bar' lt 3 lc rgb 'gold'
\end{verbatim}
\postverbatim

線は、線幅のような他の属性も持つことができます。点 (point) の記号に対
する同様の属性とともに、これらの属性をコマンド {\bf set style line} を使っ
てユーザ定義 {\tt"}ラインスタイル (linestyle){\tt"} として結びつけることができま
す。一度定義された linestyle は、plot コマンド中で、一つまたは多くの描
画要素に対してその表示を制御するのに使うことができます。

例:

\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

以下参照: {\bf linestyle (p.~\pageref{linestyle})\index{linestyle}}, {\bf set style line (p.~\pageref{set style line})\index{line}}。
\subsection{色指定 (colorspec)}
\label{colorspec}
\index{colorspec}
\label{rgbcolor}
\index{rgbcolor}
\index{colors}
\label{lc}
\index{lc}
\label{linecolor}
\index{linecolor}
\label{tc}
\index{tc}
\label{textcolor}
\index{textcolor}
多くのコマンドで、明示的な色の指定をともなった線種を指定することができ
ます。出力形式に依存する色の選択は、使用している出力形式が RGB カラー
か pm3d パレットをサボートしている場合にのみ利用可能です。

書式:

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

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

\preverbatim
\begin{verbatim}
     rgbcolor "colorname"
     rgbcolor "#RRGGBB"
     rgbcolor variable       # 色は入力ファイルから読み込む
     palette frac <val>      # <val> は 0 から 1 の値
     palette cb <value>      # <val> は cbrange の範囲の値
     palette z
     variable                # 入力ファイルから色番号を読み込む
\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}}。

{\tt"}\#RRGGBB{\tt"} は {\tt"}\#{\tt"} 記号の後に 16 進定数を並べます。RRGGBB は、赤、緑、青
の色の成分を意味し、それぞれは 0 - 255 の範囲の数です。例えば、マゼン
タ (紫) = 最も明るい赤 + 最も明るい青、なので、\#FF00FF と表され、これ
は 16 進数で、(255 $<$$<$ 16) + (0 $<$$<$ 8) + (255) を意味しています。

カラーパレットとは、色の線型な勾配で、単一の数値を特定の色に滑らかに対
応づけます。常にそのような 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 次元描画スタイルがこの追加列を認識するわけではありません)。
\subsubsection{Rgbcolor variable}
\label{rgbcolor variable}
\label{lc rgbcolor variable}
\label{tc rgbcolor variable}
大抵の場合描画コマンドは、各描画要素に一つの色 (線種) を割り当て、一つ
のグラフに複数の描画を行う場合、デフォルトの色 (線種) が順番に使われて
いきます。これとは別に、入力データファイルの追加情報に基づいて、各デー
タ点、各線分、または各ラベルにそれぞれ異なる色を割り当てることも可能で、
これは、色指定のキーワード {\bf variable} を使うことで行えます。

{\bf lc rgbcolor variable} は、データファイルの別の列から 24-bit RGB 色を
取得して使用するようプログラムに指示します。よってこれは、{\bf using} 指定
子へ対応する列の指定の追加を必要とし、その列は 24-bit 形式の RGB の 3
つ組であるとみなされます。これは、最も簡単な形式の 16 進値として指定し
ます (以下参照: {\bf rgbcolor (p.~\pageref{rgbcolor})\index{rgbcolor}})。文字の色も同様に、{\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

\subsubsection{Linecolor variable}
\label{linecolor variable}
\label{lc variable}
\label{textcolor variable}
\label{tc variable}
大抵の場合描画コマンドは、各描画要素に一つの色 (線種) を割り当て、一つ
のグラフに複数の描画を行う場合、デフォルトの色 (線種) が順番に使われて
いきます。これとは別に、入力データファイルの追加情報に基づいて、各デー
タ点、各線分、または各ラベルにそれぞれ異なる色を割り当てることも可能で、
これは、色指定のキーワード {\bf variable} を使うことで行えます。

{\bf lc variable} は、入力データの一つの列から読んだ値をラインスタイルの番
号として使い、そのラインスタイルに属する色を使うようプログラムに指示し
ます。よってこれは、{\bf using} 指定子へ対応する列の指定の追加を必要としま
す。文字の色も同様に、{\bf tc variable} で指定できます。

一つのデータファイルには、複数のデータ集合を入れることが可能で、それら
は 2 行の空行で分離されています。これらの個々のデータ集合には、index
値が割り当てられていて (以下参照: {\bf index (p.~\pageref{index})\index{index}})、using 指定の column(-2) で
取得できます。以下参照: {\bf pseudocolumns (p.~\pageref{pseudocolumns})\index{pseudocolumns}}。デフォルトでは、ファイル内の
すべてのデータが同じ色、線種、点種の属性で描画されますが、コマンド
{\bf lc variable} を使えば、疑似列 -2 による index 値を用いて、そのファイ
ル内の個々のデータ集合に異なる色を割り当てることが可能です。

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

\preverbatim
\begin{verbatim}
     # 線色を選択するのにデータ集合の index を使用
     plot 'data' using 1:2:(column(-2)) with lines lc variable
\end{verbatim}
\postverbatim

\section{マウス入力 (mouse input)}
\label{mouse input}
出力形式 {\bf x11}, {\bf pm}, {\bf windows}, {\bf ggi}, {\bf wxt} では、現在の描画にマウス
を使って作用をすることが可能になっています。これらはホットキーの定義も
サポートしていて、マウスカーソルが有効な描画ウィンドウにあるときに、あ
るキーを押すことであらかじめ定義した関数を実行させることができます。マ
ウス入力を {\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}
\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}}。

マウスボタンは再定義はできません。

ホットキーの一覧を得るには {\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             # デフォルト (組み込み) のキー定義を導入
   bind!                  # "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
\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}
  "Close"
\end{verbatim}
\postverbatim

以下も参照: {\bf mouse (p.~\pageref{mouse})\index{mouse}}, {\bf if (p.~\pageref{if})\index{if}}。
\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 に変更できます。
以下参照: {\bf x11 command-line-options (p.~\pageref{x11 command-line-options})\index{command-line-options}}。
\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 (defined(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{描画 (Plotting)}
\label{plotting}
\index{plotting}
{\bf gnuplot} には描画を生成する 3 つのコマンド、{\bf plot}, {\bf splot}, {\bf replot}
があります。{\bf plot} は 2 次元描画を生成し、{\bf splot} は 3 次元描画 (もち
ろん実際には 2 次元面への射影) を生成します。{\bf replot} は与えられた引数
を、直前の {\bf plot} または {\bf splot} コマンドに追加し、それを実行します。

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

{\bf plot} は xy 直交座標系と極座標系が使えます。極座標系の詳細に関しては
以下参照: {\bf set polar (p.~\pageref{set polar})\index{polar}}。{\bf splot} は xyz 直交座標系のみしか扱えませんが、
コマンド {\bf set mapping} で他の 2, 3 の座標系を使用することが出来ます。
さらに、オプション {\bf using} を使えば、{\bf plot} でも {\bf splot} でもほとんど
どんな座標系でもそれを定義して使うことが出来ます。

\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 splot (p.~\pageref{splot})\index{splot}},{\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 cntrparam (p.~\pageref{set cntrparam})\index{cntrparam}}。

{\bf splot} での縮尺や見出し付けの制御は、x2 軸と y2 軸を制御するコマンド
やオプションは効果がなく、z 軸を制御するものにはもちろん効果がある、と
いうことを除けば {\bf plot} と全く同じです。
\section{起動 (Startup)}
\label{startup}
\index{startup}
\label{start}
\index{start}
\label{.gnuplot}
\index{.gnuplot}
\label{start-up}
{\bf gnuplot} が起動されるとき、初期設定ファイルを読み込もうとします。この
ファイルは Unix と AmigaOS では、{\bf .gnuplot} であり、その他の処理系で
は {\bf GNUPLOT.INI} となっています。このファイルがカレントディレクトリに
無い場合、{\bf gnuplot} はホームディレクトリを検索します (AmigaOS, MS-DOS,
Windows, OS/2 では、環境変数 {\bf GNUPLOT} にホームディレクトリに対応する
ディレクトリを指定します; Windows NT では、GNUPLOT が定義されていなけ
れば {\bf USERPROFILE} が使われます)。注意: インストールの時に NOCWDRC を
定義した場合には、{\bf gnuplot} はカレントディレクトリからは読みません。

初期設定ファイルが見つかると、{\bf gnuplot} はこのファイルに書かれているコ
マンドを実行します。ここには任意の正しい {\bf gnuplot} コマンドを書くこと
が可能ですが、一般的には、出力装置の指定や、よく使う関数や変数の定義を
設定する程度に抑えておきます。
\section{文字列定数と文字列変数 (Strings)}
\label{strings}
\index{strings}
\label{string variables}
文字列定数に加えて、ほとんどの 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

文字列に対する 3 つの二項演算子が用意されています: 文字列の結合演算子
{\tt"}.{\tt"}, 文字列の等号演算子 {\tt"}eq{\tt"}, および文字列の不等号演算子 {\tt"}ne{\tt"} です。以下の例では TRUE が表示されます。

\preverbatim
\begin{verbatim}
    if ("A"."B" eq "AB") print "TRUE"
\end{verbatim}
\postverbatim

以下も参照: 2 つの文字列書式関数 {\bf gprintf (p.~\pageref{gprintf})\index{gprintf}}, {\bf sprintf (p.~\pageref{sprintf})\index{sprintf}}。

\index{substring}
任意の文字列、文字列変数、文字列値関数に、範囲指定子をつけることにより
部分文字列を指定できます。範囲指定子は [begin:end] の形で、begin は部
分文字列の先頭位置、end は最後の位置です。位置指定は、最初の文字を 1
番目と見ます。先頭の位置、最後の位置は空、あるいは '*' でも構いません。
その場合、それは元の文字列自体の先頭、あるいは最後を意味します。例えば、
str[:] や str[*:*] はどちらも str の文字列全体を意味します。
\section{置換とコマンドラインマクロ (Substitution)}
\label{substitution}
\index{substitution}
gnuplot への命令文字列が最初に読み込まれた時点、すなわちまだそれが解釈
され、もしくは実行される前の段階で、2 つの形式の単語の置換が実行されま
す。それらはバッククォート (ASCII 番号 96) で囲まれているか、または @
(ASCII 番号 64) が頭についた文字列に対して行なわれます。
\subsection{バッククォートによるシステムコマンドの置換 (Substitution backquotes)}
\label{substitution backquotes}
\label{backquotes}
\index{backquotes}
\label{shell commands}
シェルコマンドをバッククォートで囲むことによってコマンド置換を行うこ
とができます。このコマンドは子プロセスで実行され、その出力結果でコマ
ンドラインのバッククォートで囲まれたコマンドを置き換えます。処理系に
よってはパイプがサポートされている場合もあります。以下参照:{\bf plot datafile special-filenames (p.~\pageref{plot datafile special-filenames})\index{special-filenames}}。

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

例:

以下の例は、{\bf leastsq} というプログラムを実行し、その出力結果で、{\bf leastsq} を (まわりの引用符こみで) 置き換えます:
\preverbatim
\begin{verbatim}
     f(x) = `leastsq`
\end{verbatim}
\postverbatim

ただし VMS では、
\preverbatim
\begin{verbatim}
     f(x) = `run leastsq`
\end{verbatim}
\postverbatim

以下は現在の日付とユーザー名のラベルを生成します:
\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
\subsection{文字列変数のマクロ置換 (Substitution macros)}
\label{substitution macros}
\label{macros}
\index{macros}
\index{exists}
コマンドラインのマクロ置換はデフォルトでは無効になっていますが、
{\bf set macros} で有効にできます。マクロ置換が有効である場合、文字 @ は、
コマンドライン上でその文字列変数の値への置換を行なうのに使われます。文
字列変数の値としての文は、複数の単語からなることも可能です。これにより
文字列変数をコマンドラインマクロとして使うことが可能になります。この機
能により展開できるのは文字列定数のみで、文字列を値に取る数式を使うこと
はできません。
例:

\preverbatim
\begin{verbatim}
     set macros
     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

マクロの展開は、単一引用符内、または二重引用符内では行なわれませんが、
バッククォート内ではマクロ展開されます。

コマンドを完成させて実行するには、コマンド {\bf evaluate} も有用でしょう。
\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)}
\label{syntax}
\index{syntax}
\label{specify}
\index{specify}
\label{punctuation}
\index{punctuation}
gnuplot Version 4 では、以前の範囲比べてキーワードやオプションに関する順序はだいぶ許容的になりました。しかし、もしあなたが正しく動くべきだと
思うオプション指定がエラーメッセージを出したなら、正確にドキュメントに
書かれている通りの順序で指定して試してみてください。

リストや座標がコンマ (,) 区切りであるのに対し、オプションやそれに伴う
パラメータはスペース ( ) 区切りです。範囲はコロン (:) で区切ってかぎか
っこ ([]) でくくりますし、文字列やファイル名は引用符でくくり、他にいく
つかカッコ (()) でくくるものがあります。中カッコ (\{\}) は特別な目的で使
われます。

コンマは以下の区切りで使用されます。{\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} フィルタの各エントリを区切るのに使われます。

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

中カッコは、{\bf postscript} のようないくつかの出力形式で特別に処理される
文字列内で使用されます。または複素数を記述するのにも使われます: \{3,2\}
= 3 + 2i となります。

PostScript 出力形式で {\bf enhanced text} モード (拡張文字列処理モード) を
使う場合、現在は、\{\} の内部に $\backslash$n を入れてはいけません。

EEPIC, Imagen, Uniplex, LaTeX, TPIC の各出力形式では、単一引用符内の
$\backslash$$\backslash$ または二重引用符内の $\backslash$$\backslash$$\backslash$$\backslash$ で改行を示すことが可能です。
\subsection{引用符 (Quotes)}
\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)}
\label{time/date}
\index{time/date}
\label{Time/Date data}
\label{Time/date}
{\bf gnuplot} は入力データとして時間/日付情報の使用をサポートしています。
この機能は {\bf set xdata time}, {\bf set ydata time} などのコマンドによって有
効になります。

内部では全ての時間/日付は 2000 年からの秒数に変換されます。コマンド
{\bf set timefmt} は全ての入力書式を定義します。データファイル、範囲、軸の
目盛りの見出し、ラベルの位置。手短に言えば、データの値を受けとる全ての
ものがこの書式にしたがって受けとらなければいけません。一時には一つの入
力書式のみが有効なので、同じときに入力される全ての時間/日付のデータは
同じ書式である必要があります。よって、ファイル内の x と y の両方が時間
/日付データである場合は、それらは同じ書式でなければいけません。

秒数へ (秒数から) の変換は国際標準時 (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} で
は各行のデータ列の分離にスペースを使いますが、時間/日付データはその中
にスペースを含み得るからです。もしタブ区切りを使用しているのなら、あな
たのシステムがそれをどう扱うか確かめるために何度もテストする必要がある
でしょう。

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

ファイル {\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"} のように表示されます。

以下参照: {\bf time\_specifiers (p.~\pageref{time_specifiers})\index{time specifiers}}。
\part{描画スタイル (plotting styles)}
\label{plotting 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{Boxerrorbars}
\label{commands set style boxerrorbars}
\label{set style boxerrorbars}
\label{plotting styles boxerrorbars}
\label{style boxerrorbars}
\label{boxerrorbars}
\index{boxerrorbars}
描画スタイル {\bf boxerrorbars} は 2 次元のデータ描画でのみ利用可能です。
これは {\bf boxes} と {\bf yerrorbars} スタイルの組合せです。これは、3 列、ま
たは 4 列、または 5 列のデータを使用します:

\preverbatim
\begin{verbatim}
    3 列:  x  y  ydelta
    4 列:  x  y  ydelta xdelta        # 箱の幅 != -2
    4 列:  x  y  ylow  yhigh          # 箱の幅 == -2
    5 列:  x  y  ylow  yhigh  xdelta
\end{verbatim}
\postverbatim

y の誤差が {\tt"}ydelta{\tt"} の形式で与えられて、箱の横幅があらかじめ -2.0 に設
定されて ({\bf set boxwidth -2.0}) いなければ、箱の横幅は 4 列目の値で与え
られます。y の誤差が {\tt"}ylow yhigh{\tt"} の形式で与えられる場合は箱の横幅は 5
列目の値で与えられます。特別な場合として、{\tt"}ylow yhigh{\tt"} の誤差形式の 4
列のデータに対する {\bf boxwidth = -2.0} という設定があります。この場合箱
の横幅は、隣接する箱にくっつくように自動的に計算されます。3 列のデータ
の場合も、横幅は自動的に計算されます。

箱の高さは、{\bf yerrorbars} スタイル同様に y の誤差の値から決定されます。
y-ydelta から y+ydelta まで、あるいは ylow から yhigh まで、これらは何
列のデータが与えられているかによって決まります。
以下も参照
\par\hskip2.7em\href{http://www.gnuplot.info/demo/mgr.html}{\tt errorbar デモ。
}

\section{Boxes}
\label{commands set style boxes}
\label{set style boxes}
\label{plotting styles boxes}
\label{style boxes}
\label{boxes}
\index{boxes}
{\bf boxes} スタイルは 2 次元描画でのみ利用可能です。これは与えられた x 座
標を中心とし、x 軸から (グラフの境界から、ではありません) 与えられた y
座標までの箱を書きます。これは基本的に、2 列、または 3 列のデータを使
用します。余分な入力列は、variable 行や塗り潰し色の情報が提供されたも
のとして使用されます (以下参照: {\bf rgbcolor variable (p.~\pageref{rgbcolor variable})\index{variable}})。

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

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

箱の中身は現在の塗りつぶしスタイル (fillstyle) に従って塗りつぶされま
す。詳細は、以下参照: {\bf set style fill (p.~\pageref{set style fill})\index{fill}}。新しい塗りつぶしスタイルを
plot コマンド上で指定することもできます。

塗りつぶしスタイルが {\bf empty} の場合は、箱は塗りつぶされません。

塗りつぶしスタイルが {\bf solid} の場合は、箱は現在の描画色でベタ塗りされ
ます。これには追加オプション $<$density$>$ があり、それは塗りつぶし密度を
意味し、0 は背景色、1 は描画色そのものになります。

塗りつぶしスタイルが {\bf pattern} の場合は、箱は現在の描画色であるパター
ンで塗りつぶされますが、出力ドライバがサポートしている必要があります。

例:

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

\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, cos(x) with boxes
\end{verbatim}
\postverbatim

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

それぞれのデータ集合で明示的に塗りつぶしスタイルを指定:

\preverbatim
\begin{verbatim}
    plot 'file1' with boxes fs solid 0.25, \
         'file2' with boxes fs solid 0.50, \
         'file3' with boxes fs solid 0.75, \
         'file4' with boxes fill pattern 1, \
         'file5' with boxes fill empty
\end{verbatim}
\postverbatim

\section{Boxxyerrorbars}
\label{commands set style boxxyerrorbars}
\label{set style boxxyerrorbars}
\label{plotting styles boxxyerrorbars}
\label{style boxxyerrorbars}
\label{boxxyerrorbars}
\index{boxxyerrorbars}
{\bf boxxyerrorbars} スタイルは 2 次元のデータ描画でのみ利用可能です。これ
は、{\bf xyerrorbars} スタイルが単に線分の交差で表現するところを長方形で表
現することを除けば、ほぼ同じです。これは、入力データの 4 列、または 6
列を使用します。余分な入力列は、variable 行や塗り潰し色の情報が提供さ
れたものとして使用されます (以下参照: {\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 まで。これらは何列のデータ
が与えられているかによって決まります。

箱の内部は現在の塗りつぶしスタイル (fillstyle) に従って塗られます。詳
細は、以下参照: {\bf set style fill (p.~\pageref{set style fill})\index{fill}}, {\bf boxes (p.~\pageref{boxes})\index{boxes}}。plot コマンド上で新しい塗り
つぶしスタイルを指定することもできます。
\section{Candlesticks}
\label{commands set style candlesticks}
\label{set style candlesticks}
\label{plotting styles candlesticks}
\label{style candlesticks}
\label{candlesticks}
\index{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 bars $<$width$>$} で制御されるようになっています。

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

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

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

と
\par\hskip2.7em\href{http://gnuplot.sourceforge.net/demo/finance.html}{\tt finance
}

のデモ。

注意: 中央値を表すための記号などを追加したい場合、以下の例のように、ひげ付きの棒グラフに他の描画コマンドを追加する必要があります:

\preverbatim
\begin{verbatim}
 # データ列:  X '最小値' '1/4 位の値' '中央値' '3/4 位の値' '最大値'
 set bars 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 bars (p.~\pageref{set bars})\index{bars}}, {\bf set style fill (p.~\pageref{set style fill})\index{fill}}。
\section{Circles}
\label{commands set style circles}
\label{set style circles}
\label{plotting styles circles}
\label{style circles}
\label{circles}
\index{circles}
スタイル {\bf circles} は、各データ点に明示された半径の円を描画します。こ
れは、x, y, 半径、の 3 列のデータが必要です。4 列目のデータを追加して
色の情報の指定とすることもできます。半径は、常に描画の水平軸 (x または
x2) の単位で解釈されます。y 方向の縮尺と描画のアスペクト比は、いずれも
無視されます。2 列のデータしか与えないと、半径は {\bf set style circle} か
ら取ります。この場合、半径は graph か screen の座標系で与えることがで
きます。

例 (面積が 3 列目の値に比例するような円を描画):

\preverbatim
\begin{verbatim}
   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

これは、pointstyle 6 で点のサイズを variable とした {\bf points} による描
画と似ていますが、circles は x 軸の範囲で伸縮される点が異なります。以下も参照: {\bf set object circle (p.~\pageref{set object circle})\index{circle}}, {\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}}。
\section{Dots}
\label{commands set style dots}
\label{set style dots}
\label{plotting styles dots}
\label{style dots}
\label{dots}
\index{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

\section{Filledcurves}
\label{commands set style filledcurves}
\label{set style filledcurves}
\label{plotting styles filledcurves}
\label{style filledcurves}
\label{filledcurves}
\index{filledcurves}
スタイル {\bf filledcurves} は 2 次元描画でのみ利用可能です。これは 3 種類
の異なる指定が可能です。最初の 2 種類は関数描画、あるいは 2 列の入力デ
ータ用のもので、後で紹介するようにオプションで更なる指定ができます。

書式:

\preverbatim
\begin{verbatim}
   plot ... with filledcurves [option]
\end{verbatim}
\postverbatim

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

\preverbatim
\begin{verbatim}
   [closed | {above | below}
   {x1 | x2 | y1 | y2}[=<a>] | xy=<x>,<y>]
\end{verbatim}
\postverbatim

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

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

\preverbatim
\begin{verbatim}
   filledcurves closed   ... 丁度閉曲線で囲まれる領域
   filledcurves x1       ... x1 軸
   filledcurves x2       ... x2 軸 (y1, y2 軸も同様)
   filledcurves y1=0     ... (y1 軸での) 直線 y=0 i.e. x1 軸と平行
   filledcurves y2=42    ... (y2 軸での) 直線 y=42 i.e. x2 軸と平行
   filledcurves xy=10,20 ... x1,y1 軸での点 10,20 (扇型のような形状)
\end{verbatim}
\postverbatim

3 種類目は 3 列の入力データを必要とし、それらは x 座標と、それに対する
2 つの y 座標からなり、それらは同じ x 座標の集合に対する 2 つの曲線の
y 座標に対応します。そしてその 2 つの曲線の間の領域が塗りつぶされます。
入力データが 3 列以上の場合にはこれがデフォルトです。

\preverbatim
\begin{verbatim}
    3 列:  x  y1  y2
\end{verbatim}
\postverbatim

入力された 2 つの曲線の間の領域の塗りつぶしの例:
\par\hskip2.7em\href{http://www.gnuplot.info/demo/fillbetween.html}{\tt 曲線間の塗りつぶしデモ。
}


\preverbatim
\begin{verbatim}
   plot 'data' using 1:2:3 with filledcurves
\end{verbatim}
\postverbatim

{\bf above} と {\bf below} オプションは
\preverbatim
\begin{verbatim}
   ... filledcurves above {x1|x2|y1|y2}=<val>
\end{verbatim}
\postverbatim
および
\preverbatim
\begin{verbatim}
   ... using 1:2:3 with filledcurves below
\end{verbatim}
\postverbatim
の形のコマンドに適用可能です。どちらの場合でも、これらのオプションは
塗りつぶし領域を、境界線、または境界曲線の片側に制限します。

注意: この描画モードは全ての出力形式でサポートされるとは限りません。

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

$<$a$>$, $<$x$>$, $<$y$>$ が描画領域の外にある場合、それらはグラフの境界へ移動され
ます。よって、オプション xy=$<$x$>$,$<$y$>$ を指定した場合の実際の塗りつぶし領
域は、xrange や yrange に依存します。
\section{Financebars}
\label{commands set style financebars}
\label{set style financebars}
\label{plotting styles financebars}
\label{style financebars}
\label{financebars}
\index{financebars}
{\bf financebars} スタイルは金融データの 2 次元のデータ描画でのみ利用可能
です。これは、x 座標 1 つ (通常日付) と、4 つの y 座標 (金額) を必要と
します。

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

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

\section{Fsteps}
\label{commands set style fsteps}
\label{set style fsteps}
\label{plotting styles fsteps}
\label{style fsteps}
\label{fsteps}
\index{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 方向に書きます。

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

\section{Histeps}
\label{commands set style histeps}
\label{set style histeps}
\label{plotting styles histeps}
\label{style histeps}
\label{histeps}
\index{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 の範囲は、その延長された水平線の範囲で
はなく、データ点の範囲が選択されます。よって、端の点に関してはその水平
線は半分しか描かれないことになります。
以下も参照
\par\hskip2.7em\href{http://www.gnuplot.info/demo/steps.html}{\tt steps デモ。
}


{\bf histeps} は単なる描画スタイルにすぎず、{\bf gnuplot} には、ヒストグラムの
箱を生成する能力や、データ集合から母集団を決定する能力などはありません。
\section{Histograms}
\label{commands set style histogram}
\label{set style histogram}
\label{style histograms}
\label{plotting styles histograms}
\label{histograms}
\index{histograms}
スタイル {\bf histograms} は 2 次元描画でのみ有効です。これは、データの各
列の並びから平行な棒グラフを作ります。{\bf plot} コマンドの各要素は、それ
に関する目盛りの値や説明のタイトルが付属するかも知れませんが、単一の
入力データを指定する必要があります (例えば入力ファイルの 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
\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 set style fill (p.~\pageref{set style fill})\index{fill}})。

箱の固まりそれぞれは、データファイルの 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 yman     # 線は ymin から ymax へ伸びる
\end{verbatim}
\postverbatim
誤差線の見た目は、現在の {\bf set bars} の値と $<$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 軸を使うかを選択で
きます。

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

\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

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

\preverbatim
\begin{verbatim}
     set bars 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

これは、一つ一つの鉛直な棒が、データの一つの列に対応する描画を生成しま
す。各棒は、2 つの部分の積み上げの形であり、それぞれの部分の高さが、デ
ータファイルの 2 列目と 4 列目の値に対応します。

最後に以下のコマンド

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

は、一つ一つがそれぞれデータ列に対応する、2 つの鉛直な積み重ねの棒を生
成します。x=1 にある棒は、データファイルの 2 列目の各行の値に対応する
箱からなります。x=2 にある棒は、データファイルの 4 列目の各行の値に対
応する箱からなります。これは、gnuplot の通常の入力の縦、横の解釈を入れ
換えることになりますので、key タイトルや x 軸の目盛りの見出しの指定も
変更する必要があります。以下のコメント部分を参照してください。

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

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

\preverbatim
\begin{verbatim}
    newhistogram {"<title>"} {<linetype>} {<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} にセットした場合、塗り潰しに使用される
パターン番号は自動的に増加されていきます。

オプション {\bf at $<$x-coord$>$} は列データの積み上げ型 ({\bf columnstacked}) の
ヒストグラムのみに適用されます。
\subsection{複数の列に渡る自動的な繰り返し (automated)}
\label{automated}
\index{automated}
\label{histograms automated}
\label{styles histograms automated}
\label{plotting styles histograms automated}
一つのデータファイルのたくさんの列から、一つのヒストグラムを生成したい
場合、plot の繰り返し (iteration) 機能を使うと便利でしょう。以下参照:{\bf iteration (p.~\pageref{iteration})\index{iteration}}。例えば、3 列目から 8 列目までのデータを積み上げた形のヒス
トグラムを生成する例:

\preverbatim
\begin{verbatim}
     set style histogram columnstacked
     plot for [i=3:8] "datafile" using i title columnhead
\end{verbatim}
\postverbatim
\section{Image}
\label{commands set style image}
\label{set style image}
\label{plotting styles image}
\label{style image}
\label{image}
\index{image}
\label{rgbimage}
\index{rgbimage}
\label{rgbalpha}
\index{rgbalpha}
描画スタイル {\bf image}, {\bf rgbimage}, {\bf rgbalpha} は、いずれも一様に標本点
を取った格子状データ値を、2 次元、または 3 次元中のある平面上に射影し
ます。入力データは、既にあるビッマップ画像ファイル (PNG のような標準的
なフォーマットから変換したものでよい) か、単純な数値配列です。

\index{heatmap}
この図は、スカラー値の配列から温度分布を生成した例です。現在のパレット
を、各スカラー値から対応するピクセルの色への割り当てに使用します。
\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

入力 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}}。

各ピクセルの 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} としています (訳注: ここで
述べている画像とは、pdflatex を使用したマニュアルだけに現れますので、
日本語のマニュアルにはこの図は含まれていないでしょう。)

スタイル {\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] の範囲内にあると仮定されます。

スタイル {\bf rgbalpha} は、赤、緑、青の RGB 成分に加えて、アルファチャネ
ル (透過パラメータ) の情報も含んだピクセルの入力を処理します。よって、
{\bf plot} では 6 次元データ (x,y,r,g,b,a) が、{\bf splot} では 7 次元データ
(x,y,z,r,g,b,a) が必要になります。赤、緑、青、およびアルファの各成分は
[0:255] の範囲内にあると仮定されます。
\subsection{透明化 (transparency)}
\label{image transparency}
\label{transparency}
\index{transparency}
\label{alpha channel}
描画スタイル {\bf rgbalpha} は、入力データの各ピクセルが [0:255] の範囲内
のアルファ値を持っている必要があります。alpha = 0 のピクセルは完全な透
明で、その下 (奥) の描画要素を全く変えません。alpha = 255 のピクセルは
完全な不透明です。すべての出力形式は、これら 2 つの両極端な値をサポー
トします。0 $<$ alpha $<$ 255 のピクセルは半透明で、これは 2,3 の出力形式
しか完全には対応しておらず、他の出力形式ではこれを 0 か 255 として扱う
ことによる近似しか行いません。
\subsection{Image failsafe}
\label{commands set style image failsafe}
\label{set style image failsafe}
\label{plotting styles image failsafe}
\label{style image failsafe}
\label{image failsafe}
\label{failsafe}
\index{failsafe}
出力形式のドライバによっては、2 次元の長方形領域内での画像データのレン
ダリングを最適化するルーチンを提供している場合があります。しかし、その
ルーチンは不完全であることが知られています。この最適化ルーチンは、キー
ワード {\bf failsafe} を使うことで無効化できます。例:

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

\preverbatim
\begin{verbatim}
    1 列:  y        # 行番号による暗黙の x 座標 (2D)
    2 列:  x  y     # [x,0] から [x,y] への線 (2D)
    3 列:  x  y  z  # [x,y,0] から [x,y,z] への線 (3D)
\end{verbatim}
\postverbatim

\section{Labels}
\label{commands set style labels}
\label{set style labels}
\label{plotting styles labels}
\label{style labels}
\label{labels}
\index{labels}
スタイル {\bf labels} は、データファイルから座標と文字列を読み込み、その文
字列をその 2 次元、または 3 次元座標に置きます。これは基本的に 3 列、
または 4 列の入力を必要とします。余分な入力列は、フォントサイズか文字
色の変数値のような情報が提供されたものとして使用されます (以下参照:{\bf rgbcolor variable (p.~\pageref{rgbcolor 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

スタイル {\bf labels} は 3 次元描画でも使用できます。この場合 X,Y,Z と文字
列、の 4 つの入力列指定が必要です。

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

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

2 次元の場合
\preverbatim
\begin{verbatim}
    1 列:  y       # 行番号による暗黙の x
    2 列:  x  y
\end{verbatim}
\postverbatim
3 次元の場合
\preverbatim
\begin{verbatim}
    1 列:  z       # x は暗黙の行番号、y は index から
    3 列:  x  y  z
\end{verbatim}
\postverbatim

以下も参照: {\bf linetype (p.~\pageref{linetype})\index{linetype}}, {\bf linewidth (p.~\pageref{linewidth})\index{linewidth}}, {\bf linestyle (p.~\pageref{linestyle})\index{linestyle}}。
\section{Linespoints}
\label{commands set style linespoints}
\label{commands set style lp}
\label{set style linespoints}
\label{plotting styles linespoints}
\label{set style lp}
\label{style linespoints}
\label{style lp}
\label{linespoints}
\index{linespoints}
\label{lp}
\index{lp}
\label{pointinterval}
\index{pointinterval}
{\bf linespoints} スタイルは、隣接する点を真っ直ぐな線分で結び、その後で最
初に戻って各点に小さな記号を描きます。コマンド {\bf set pointsize} を使っ
て、その記号のデフォルトの大きさを変更できます。
基本的に 2 次元描画では 1 列、または 2 列の入力データが必要で、3 次元
描画では 1 列、または 3 列のデータが必要です。以下参照: {\bf style lines (p.~\pageref{style lines})\index{lines}}。
余分な入力列は、点のサイズや線の色の変更などの情報が提供されたものとし
て使用されます。

ラインスタイルの属性である {\bf pointinterval} (省略形 {\bf pi}) で、グラフの
すべての点を与えた記号にするかどうかを制御できます。例えば、
{\bf with lp pi 3} は、すべてのデータ点間に線分を引きますが、点の記号は 3
つおきにしか書きません。{\bf pointinterval} を負の値にした場合は、記号の下
の線分の部分を消します。消す部分のサイズは {\bf set pointintervalbox} で制
御できます。

{\bf linespoints} は {\bf lp} と略すことが出来ます。
\section{Points}
\label{commands set style points}
\label{set style points}
\label{plotting styles points}
\label{style points}
\label{points}
\index{points}
{\bf points} スタイルは各点に小さな記号を表示します。その記号のデフォルト
の大きさを変更するにはコマンド {\bf set pointsize} が使えます。
基本的に 2 次元描画では 1 列、または 2 列の入力データが必要で、3 次元
描画では 1 列、または 3 列のデータが必要です。以下参照: {\bf style lines (p.~\pageref{style lines})\index{lines}}。
余分な入力列は、点のサイズや線色の変更などの情報が提供されたものとして
使用されます。
\section{Steps}
\label{commands set style steps}
\label{set style steps}
\label{plotting styles steps}
\label{style steps}
\label{steps}
\index{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 方向に書きます。
以下も参照
\par\hskip2.7em\href{http://www.gnuplot.info/demo/steps.html}{\tt steps デモ。
}


\section{Rgbalpha}
\label{commands set style rgbalpha}
\label{set style rgbalpha}
\label{plotting styles rgbalpha}
\label{style rgbalpha}
以下参照: {\bf image (p.~\pageref{image})\index{image}}。
\section{Rgbimage}
\label{commands set style rgbimage}
\label{set style rgbimage}
\label{plotting styles rgbimage}
\label{style rgbimage}
以下参照: {\bf image (p.~\pageref{image})\index{image}}。
\section{Vectors}
\label{commands set style vectors}
\label{set style vectors}
\label{plotting styles vectors}
\label{style vectors}
\label{vectors}
\index{vectors}
2 次元の {\bf vectors} スタイルは (x,y) から (x+xdelta,y+ydelta) までのベ
クトルを書きます。3 次元の {\bf vectors} スタイルも同様ですが、データは基
本的に 6 列必要です。各ベクトルの先端には小さな矢先も書かれます。

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

vectors スタイルを使っての splot は {\bf set mapping cartesian} のみでサポ
ートされています。キーワード {\tt"}with vectors{\tt"} は arrow スタイルの指定子
を後ろに伴うことができます。詳細は、以下参照: {\bf arrowstyle (p.~\pageref{arrowstyle})\index{arrowstyle}}。

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

{\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}}。
\section{Xerrorbars}
\label{commands set style xerrorbars}
\label{set style xerrorbars}
\label{plotting styles xerrorbars}
\label{style xerrorbars}
\label{xerrorbars}
\index{xerrorbars}
{\bf xerrorbars} スタイルは 2 次元のデータ描画のみで利用可能です。
{\bf xerrorbars} は、水平の誤差指示線 (error bar) が表示される以外は{\bf dots} と同じです。各点 (x,y) において (xlow,y) から (xhigh,y) まで、
または (x-xdelta,y) から (x+xdelta,y) までの線分が引かれますが、これら
はいくつのデータ列が与えられるかによって変わります。誤差指示線の端には
刻みの印が付けられます ({\bf set bars} が使われていなければ。詳細に関して
は、以下参照: {\bf set bars (p.~\pageref{set bars})\index{bars}})。このスタイルは基本的に、3 列か 4 列のデータ
が必要です:

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

\section{Xyerrorbars}
\label{commands set style xyerrorbars}
\label{set style xyerrorbars}
\label{plotting styles xyerrorbars}
\label{style xyerrorbars}
\label{xyerrorbars}
\index{xyerrorbars}
{\bf xyerrorbars} スタイルは 2 次元のデータ描画のみで利用可能です。
{\bf xyerrorbars} は、水平、垂直の誤差指示線 (error bar) も表示される以外は {\bf dots} と同じです。各点 (x,y) において (x,y-ydelta) から (x,y+ydelta)
までと (x-xdelta,y) から (x+xdelta,y) まで、または (x,ylow) から
(x,yhigh) までと (xlow,y) から (xhigh,y) までの線分が引かれますが、こ
れらはいくつのデータ列が与えられるかによって変わります。誤差指示線の端
には刻みの印が付けられます ({\bf set bars} が使われていなければ。詳細に関
しては、以下参照: {\bf set bars (p.~\pageref{set bars})\index{bars}})。これは 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
\section{Yerrorbars}
\label{commands set style yerrorbars}
\label{commands set style errorbars}
\label{plotting styles yerrorbars}
\label{plotting styles errorbars}
\label{set style yerrorbars}
\label{set style errorbars}
\label{style yerrorbars}
\label{style errorbars}
\label{yerrorbars}
\index{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 bars} が使われていなければ。
詳細に関しては、以下参照: {\bf set bars (p.~\pageref{set bars})\index{bars}})。これは、3 列か 4 列のデータが必
要です。

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

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

\section{Xerrorlines}
\label{commands set style xerrorlines}
\label{set style xerrorlines}
\label{plotting styles xerrorlines}
\label{style xerrorlines}
\label{xerrorlines}
\index{xerrorlines}
{\bf xerrorlines} スタイルは 2 次元のデータ描画のみで利用可能です。
{\bf xerrorlines} は {\bf linespoints} に似ていますが、水平の誤差線が描かれる
ことが違います。各点 (x,y) で、データ列の個数に応じて (xlow,y) から
(xhigh,y) まで、または (x-xdelta,y) から (x+xdelta,y) までの線分が描か
れ、そして刻の印が誤差線の端に置かれます ({\bf set bars} が使われていない
場合。詳細は、以下参照: {\bf set bars (p.~\pageref{set bars})\index{bars}})。基本的には、3 列か 4 列のデータが
必要です:

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

\section{Xyerrorlines}
\label{commands set style xyerrorlines}
\label{set style xyerrorlines}
\label{plotting styles xyerrorlines}
\label{style xyerrorlines}
\label{xyerrorlines}
\index{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 bars}
が使われていない場合。詳細は、以下参照: {\bf set bars (p.~\pageref{set bars})\index{bars}})。これは、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
\section{Yerrorlines}
\label{commands set style yerrorlines}
\label{commands set style errorlines}
\label{plotting styles yerrorlines}
\label{plotting styles errorlines}
\label{set style yerrorlines}
\label{set style errorlines}
\label{style yerrorlines}
\label{style errorlines}
\label{yerrorlines}
\index{yerrorlines}
{\bf yerrorlines} (または {\bf errorlines}) スタイルは 2 次元のデータ描画のみ
で利用可能です。{\bf yerrorlines} は {\bf linespoints} に似ていますが、垂直の
誤差線が描かれることが違います。各点 (x,y) で、データ列の個数に応じて
(x,y-ydelta) から (x,y+ydelta) まで、または (x,ylow) から (x,yhigh)
までの線分が描かれ、そして刻の印が誤差線の端に置かれます (詳細は、以下参照: {\bf set bars (p.~\pageref{set bars})\index{bars}})。
これは、3 列か 4 列の入力が必要です。

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

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

\section{3 次元 (曲面) 描画 (3D (surface) plots)}
\label{3D (surface) plots}
\label{plotting styles 3d (surface) plots}
\index{3D}
\index{surface}
曲面描画は、コマンド {\bf plot} ではなくコマンド {\bf splot} を使って生成しま
す。スタイル {\bf with lines} を使えば、曲面を格子線で生成できます。曲面の
塗り潰しは、スタイル {\bf with pm3d} で行うことができます。曲面は通常、そ
れが 3 次元の曲面であるとはっきりわかるような視方向から表示されます。
その場合、X, Y, Z 軸はすべて描画内に表示されます。3 次元的な錯覚は、隠
線処理や、曲面要素の深さ整列により、より増幅されます。以下参照:{\bf hidden3d (p.~\pageref{hidden3d})\index{hidden3d}}, および {\bf set pm3d (p.~\pageref{set pm3d})\index{pm3d}} のオプションである {\bf depthorder (p.~\pageref{depthorder})\index{depthorder}}。
コマンド {\bf splot} は、定数の Z 値に対する等高線を計算し描画することもで
きます。これらの等高線は、曲面それ自体の上に書くこともできますし、XY
平面へ射影することもできます。以下参照: {\bf set contour (p.~\pageref{set contour})\index{contour}}。






コマンド {\bf splot} の特別な場合として、描画の Z 方向の射影による、Z 座標
の 2 次元曲面への地図作成 (map) があります。以下参照: {\bf set view map (p.~\pageref{set view map})\index{map}}。
この描画モードは、等高線の描画や温度分布を生成するのに利用できます。


\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{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}
\label{commands call}
\label{call}
\index{call}
{\bf call} コマンドは、1 つの機能以外は {\bf load} コマンドと等価です。
その機能は、10 個までのパラメータをコマンドに追加できることです
(パラメータは標準的な構文規則によって区切られます)。これらのパラメータ
は、ファイルから読まれる行に代入することができます。{\bf call} した入力
ファイルから各行が読まれる時に、{\bf \$} (ドル記号) に続く数字 (0--9) の並
びを走査します。もし見つかれば、その並びは {\bf call} のコマンド行の対応す
るパラメータで置き換えられます。{\bf call} の行でそのパラメータが文字列と
して指定されているならば、取り囲んでいる引用符が省かれて代入されます。
文字列 {\bf \$\#} はパラメータの個数に置き換えられます。文字が後に続く {\bf \$}
はその文字になります。例えば、一つの {\bf \$} を得るには {\bf \$\$} を使います。
{\bf call} のコマンド行に 10 個より多いパラメータを与えるとエラーが起こり
ます。与えられなかったパラメータは、何も無しとして扱われます。{\bf call}
中のファイルの中にさらに {\bf load} または {\bf call} コマンドがあっても構いま
せん。

書式:
\preverbatim
\begin{verbatim}
       call "<入力ファイル>" <パラメータ 0> <パ 1> ... <パ 9>
\end{verbatim}
\postverbatim

入力ファイル名は引用符で囲まなければなりません。そして、パラメータも
引用符で囲むことを推奨します (gnuplot の将来のバージョンでは引用符で
囲んである部分と囲んでない部分に対しては違う取り扱いをする予定です)。

例:

ファイル 'calltest.gp' は以下の行を含んでいるとすると:
\preverbatim
\begin{verbatim}
   print "argc=$# p0=$0 p1=$1 p2=$2 p3=$3 p4=$4 p5=$5 p6=$6 p7=x$7x"
\end{verbatim}
\postverbatim

次の行を入力すると:
\preverbatim
\begin{verbatim}
   call 'calltest.gp' "abcd" 1.2 + "'quoted'" -- "$2"
\end{verbatim}
\postverbatim

以下のように表示されるでしょう:
\preverbatim
\begin{verbatim}
   argc=7 p0=abcd p1=1.2 p2=+ p3='quoted' p4=- p5=- p6=$2 p7=xx
\end{verbatim}
\postverbatim

注意: {\bf using} を使用しているデータファイルでは文法的に重なってしまいま
す。その場合、{\bf call} されたデータファイルからプロットするときは、デー
タの n カラム目の指示には {\bf \$\$n} または {\bf column(n)} を使用してください。
\section{Clear}
\label{commands clear}
\label{clear}
\index{clear}
{\bf clear} コマンドは、{\bf set output} で選択された画面または出力装置をクリ
アします。通常、ハードコピー装置に対しては改ページを行います。出力装置
を選択するには {\bf set terminal} を使用して下さい。

いくつかの出力装置は {\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{Evaluate}
\label{commands evaluate}
\label{evaluate}
\index{evaluate}
コマンド {\bf evaluate} は、引数文字列として与えられたコマンドを実行します。
その文字列中に改行文字を入れてはいけません。

書式:
\preverbatim
\begin{verbatim}
     eval <string expression>
\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

文字列からコマンドを実行する別の方法に関しては、以下参照:{\bf substitution macros (p.~\pageref{substitution macros})\index{macros}}。
\section{Exit}
\label{commands exit}
\label{exit}
\index{exit}
{\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 batch/interactive (p.~\pageref{batch/interactive})\index{batch/interactive}}。
\section{Fit}
\label{commands fit}
\label{fit}
\index{fit}
\label{least-squares}
\index{least squares}
\label{Marquardt}
\index{Marquardt}
{\bf fit} コマンドはユーザの与えた式を (x,y) または (x,y,z) の形式のデータ
点の集合への当てはめを可能にします。それには Marquardt-Levenberg 法に
よる非線形最小自乗法 (NLLS) の実装が用いられます。式の内部に現われるユ
ーザ定義変数はいずれも当てはめのパラメータとして使うことができます。た
だ、その式の返り値は実数である必要があります。

書式:
\preverbatim
\begin{verbatim}
     fit {<ranges>} <expression>
         '<datafile>' {datafile-modifiers}
         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} で有効な任意の数式を指定できます。

$<$datafile$>$ は {\bf plot} コマンドと同様に扱われます。{\bf plot datafile} の修
飾子 ({\bf using}, {\bf every},...) は、{\bf smooth} とあまり勧められない {\bf thru}
を除いて、全て {\bf fit} に使うことができます。以下参照:{\bf plot datafile (p.~\pageref{plot datafile})\index{datafile}}。

当てはめる 1 変数関数 z=f(x) へのデフォルトのデータの書式は z か x:z
です。つまり、データが 1 列しかなければそれは従属変数値 (関数値) と見
なされ、行番号が独立変数値 (変数値) となり、2 列のデータがあれば、1 列
目が独立変数値、2 列目が従属変数値となります。

これらの形式はデータファイルへの {\bf using} 指定子で変更でき、例えば z の
値を他の列から取ったり、あるいは複数の列から計算した値とすることができ
ます。3 番目の {\bf using} 指定 (列番号、または数式) が与えられた場合は、
それは対応する z の値の標準偏差として解釈され、それはそのデータへの重
み (=1/s**2) を計算するのに使われます。そうでなければ、全てのデータは
同じ重み (1) で計算されます。{\bf using} オプションを全く指定しなかった場
合、3 列目のデータがあった場合でもデータから z の偏差は読まれませんの
で、その場合は重み 1 になります。

2 変数関数 z=f(x,y) を当てはめる場合、データの書式は {\bf using} による 4
つの項目 x:y:z:s が要求されます。これは完全に全てが与えられなければな
らず、不足する項目に対してはどの列もデフォルトは仮定されていません。各
データ点の重みは上と同様に 's' から計算されます。もし誤差評価を持って
いなければ、定数値を定数式として指定すればいいでしょう (以下参照:{\bf plot datafile using (p.~\pageref{plot datafile using})\index{using}})。例えば {\bf using 1:2:3:(1)} のように。

当てはめ関数には、独立変数を 5 つまで持たせられますが、1 変数以外の場合は、その独立変数の個数よりも 2 つ多い {\bf using} 指定をしなければいけません。許される書式、そしてデフォルトのダミー変数名は以下の通りです:

\preverbatim
\begin{verbatim}
     z
     x:z
     x:z:s
     x:y:z:s
     x:y:t:z:s
     x:y:t:u:z:s
     x:y:t:u:v:z:s
\end{verbatim}
\postverbatim

ダミー変数名は、下にあげるように範囲指定によって変更できます。最初の範
囲は {\bf using} 指定の最初のものに対応し、以下同様です。z (従属変数) の範
囲も指定できますが、その名前は変更できません。

複数のデータ集合も複数の 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
     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 via a, b, c
     fit g(x,y) 'surface.dat' using 1:2:3:(1) 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:(1) via a,b
     fit [*:*][yaks=*:*] a*x+b*yaks 'surface.dat' u 1:2:3:(1) via a,b
     fit a*x + b*y + c*t 'foo.dat' using 1:2:3:4:(1) via a,b,c
     h(x,y,t,u,v) = a*x + b*y + c*t + d*u + e*v
     fit h(x,y,t,u,v) 'foo.dat' using 1:2:3:4:5:6:(1) via a,b,c,d,e
\end{verbatim}
\postverbatim

反復の個々のステップの後で、当てはめの現在の状態についての詳細な情報が
画面に表示されます。そし最初と最後の状態に関する同じ情報が {\tt"}fit.log{\tt"}
というログファイルにも書き出されます。このファイルは前の当てはめの履歴
を消さないように常に追加されていきます。これは望むなら削除、あるいは別
な名前にできます。コマンド {\bf set fit logfile} を使ってログファイルの名
前を変更することもできます。

gnuplot が、{\bf set fit errorvariables} を使えるようにインストールされて
いて、そのコマンドを使用した場合、各当てはめパラメータの誤差は、そのパ
ラメータと似た名前 ({\tt"}\_err{\tt"} が追加された名前) の変数に保存されます。よ
ってその誤差を更なる計算の入力として使用することができます。

当てはめの反復は Ctrl-C を押すことで中断できます。現在の反復が正常に終
了した後、
(1) 当てはめを止めて現在のパラメータの値を採用する
(2) 当てはめを続行する
(3) 環境変数 FIT\_SCRIPT で指定した {\bf gnuplot} コマンドを実行する
のいずれかを選ぶことができます。FIT\_SCRIPT のデフォルトは {\bf replot} で
あり、よってもしデータと当てはめ関数を一つのグラフにあらかじめ描画して
あれば、現在の当てはめの状態を表示することができます。

{\bf fit} が終了した後は、最後のパラメータの値を保存するのに {\bf update} コマ
ンドを使います。その値は再びパラメータの値として使うことができます。
詳細は、以下参照: {\bf update (p.~\pageref{update})\index{update}}。
\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)}
\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 を 最小化することをしようと
します。もう少し詳しく言うと、データ誤差 (または 1.0) の重みつき残差の
自乗和 (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、ということになります)。

線形最小自乗法 (LLS) では、ユーザ定義関数は単純な関数の和であり、それ
ぞれは一つのパラメータの定数倍で他のパラメータを含まない項になります。
非線形最小自乗法 (NLLS) ではより複雑な関数を扱い、パラメータは色んな
使われ方をされます。フーリエ級数は線形と非線形の最小自乗法の違いを表す
一つの例です。フーリエ級数では一つの項は
\preverbatim
\begin{verbatim}
    z=a*sin(c*x) + b*cos(c*x).
\end{verbatim}
\postverbatim
のように表されます。もし、a と b が未知なパラメータで c は定数だとすれば
パラメータの評価は線形最小自乗問題になります。しかし、c が未知なパラメー
タならばそれは非線形問題になります。

線形の場合、パラメータの値は比較的簡単な線形代数の直接法によって決定で
きます。しかしそのような LLS は特殊な場合であり、'gnuplot' が使用する
反復法は、もちろんそれも含めて、より一般的な NLLS 問題を解くことができ
ます。{\bf fit} は検索を行うことで最小値を探そうとします。反復の各ステップ
は、パラメータの新しい値の組に対して WSSR を計算します。Marquardt-
Levenberg のアルゴリズムは次のステップのパラメータの値を選択します。そ
してそれはあらかじめ与えた基準、すなわち、(1) 当てはめが {\tt"}収束した{\tt"}
(WSSR の相対誤差が FIT\_LIMIT より小さくなった場合)、または (2) あらか
じめ設定された反復数の限界 FIT\_MAXITER (以下参照:{\bf fit control variables (p.~\pageref{fit control variables})\index{variables}}) に達した場合、のいずれかを満たすまで続けられ
ます。キーボードからその当てはめの反復は中断できますし、それに続いて中
止することもできます (以下参照: {\bf fit (p.~\pageref{fit})\index{fit}})。ユーザ変数 FIT\_CONVERGED は、
直前の fit コマンドが収束により終了した場合は 1 を含み、それ以外の理由で中断した場合は 0 を含みます。

当てはめに使われる関数はしばしばあるモデル (またはある理論) を元にして
いて、それはデータの振舞を記述したり、あるいは予測しようとします。よっ
て {\bf fit} は、データがそのモデルにどれくらいうまく当てはまっているのかを
決定するため、そして個々のパラメータの誤差の範囲を評価するために、モデ
ルの自由なパラメータの値を求めるのに使われます。以下参照:{\bf fit error\_estimates (p.~\pageref{fit error_estimates})\index{error estimates}}。

そうでなければ、曲線による当てはめにおける関数は、モデルとは無関係に選
ばれています (それは十分な表現力と最も少ない数のパラメータを持ち、デー
タの傾向を記述しそうな関数として経験に基づいて選ばれるでしょう)。

しかし、もしあなたが全てのデータ点を通るような滑らかな曲線を欲しいなら
{\bf fit} ではなく、むしろ {\bf plot} の {\bf smooth} オプションでそれを行うべきで
しょう。
\subsection{誤差評価 (error estimates)}
\label{commands fit error_estimates}
\label{fit error_estimates}
\label{fit errors}
{\bf fit} において {\tt"}誤差{\tt"} という用語は 2 つの異なった文脈で用いられます。
一つはデータ誤差、もう一つはパラメータ誤差です。

データ誤差は、平方残差の重み付きの和 WSSR、すなわちχ自乗を決定する際
個々のデータ点の相対的な重みを計算するのに用いられます。それらはパラメ
ータの評価に影響を与えます。それは、それらが、当てはめられた関数からの
個々のデータ点の偏差が最終的な値に与える影響の大きさを決定することによ
ります。正確なデータ誤差評価が与えられている場合には、パラメータの誤差
評価等の {\bf fit} が出力する情報はより役に立つでしょう。

'statistical overview' では {\bf fit} の出力のいくつかを説明し、
'practical guidelines' に対する背景を述べています。
\subsubsection{統計的な概要 (statistical overview)}
\label{commands fit error statistical_overview}
\label{fit error statistical_overview}
\label{statistical_overview}
\index{statistical overview}
非線形最小自乗法 (Non-Linear Least-Squares; NLLS) の理論は、誤差の正規
分布の点から一般的に記述されています。すなわち、入力データは与えられた
平均とその平均に対する与えられた標準偏差を持つガウス (正規) 分布に従う
母集団からの標本と仮定されます。十分大きい標本、そして母集団の標準偏差
を知ることに対しては、χ自乗分布統計を用いて、通常「χ自乗」と呼ばれる
値を調べることにより「当てはめの良さ」を述べることができます。減らされ
た自由度のχ自乗 (χ自乗の自由度は、データ点の数から当てはめられるパラ
メータの個数だけ引いた数) が 1.0 である場合は、データ点と当てはめられた
関数との偏差の重みつき自乗和が、現在のパラメータ値に対する関数と与えら
れた標準偏差によって特徴付けられた母集団の、ランダムなサンプルに対する
自乗和とが全く同じであることを意味します。

分散 = 総計である数え上げ統計学同様、母集団の標準偏差が定数でない場合、
各点は観測される偏差の和と期待される偏差の和を比較するときに個別に重み
づけされるべきです。

最終段階で {\bf fit} は 'stdfit'、すなわち残差の RMS (自乗平均平方根) で求
められる当てはめの標準偏差と、データ点が重みづけられている場合に '減ら
されたχ自乗' とも呼ばれる残差の分散をレポートします。自由度 (データ点
の数から当てはめパラメータの数を引いたもの) はこれらの評価で使用されま
す。なぜなら、データ点の残差の計算で使われるパラメータは同じデータから
得られるものだからです。これらの値は以下の変数に代入されます:
\preverbatim
\begin{verbatim}
     FIT_NDF = 自由度の数
     FIT_WSSR = 重みつき残差の自乗和
     FIT_STDFIT = sqrt(WSSR/NDF)
\end{verbatim}
\postverbatim

パラメータに関する信頼レベルを評価することで、当てはめから得られる最小
のχ自乗と、要求する信頼レベルのχ自乗の値を決定するためのχ自乗の統計
を用いることが出来ます。しかし、そのような値を生成するパラメータの組を
決定するには、相当のさらなる計算が必要となるでしょう。

{\bf fit} は信頼区間の決定よりむしろ、最後の反復後の分散-共分散行列から直
ちに得られるパラメータの誤差評価を報告します。これらの評価は、標準偏差
として計算される量の指定に関する統計上の条件が、一般には非線形最小自乗
問題では保証されないのですが、線形最小自乗問題での標準誤差 (各パラメー
タの標準偏差) と同じ方法で計算されます。そしてそのため慣例により、これ
らは {\tt"}標準誤差{\tt"} とか {\tt"}漸近標準誤差{\tt"} と呼ばれています。漸近標準誤差は一
般に楽観過ぎ、信頼レベルの決定には使うべきではありませんが、定性的な指
標としては役に立つでしょう。

最終的な解は相関行列も生成します。それは解の範囲におけるパラメータの相
関の表示を与えてくれます:もし一つのパラメータが変更されると、χ自乗の
増加が、他の補正の変更を行なう ? 主対角成分、すなわち自己相関はすべて
1 で、もし全てのパラメータが独立ならば他の成分はすべて 0 に近い値にな
ります。完全に他を補いあう 2 つ変数は、大きさが 1 で、関係が正の相関か
負の相関かによって正か負になる符号を持つ非対角成分を持ちます。非対角要
素の大きさが小さいほど、各パラメータの標準偏差の評価は、漸近標準誤差に
近くなります。
\subsubsection{実用的なガイドライン (practical guidelines)}
\label{commands fit error practical_guidelines}
\label{fit error practical_guidelines}
\label{practical_guidelines}
\index{practical guidelines}
\label{guidelines}
\index{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 が、正規分布する誤差を持つラ
ンダムなサンプルと関数に対して期待されるものよりも小さいことを意味しま
す。データ誤差評価が大きすぎるのか、統計的な仮定が正しくないのか、また
はモデル関数が一般的すぎて、内在的傾向に加えて特殊なサンプルによる変動
の当てはめになっているのでしょう。最後の場合は、よりシンプルな関数にす
ればうまく行くでしょう。

標準的なエラーを、パラメータの不確定性に関する、あるより現実的な評価に
関係付けること、および相関行列の重要性を評価することができるようになる
前に、あなたは {\bf fit} と、それを適用しようとするある種の問題に慣れてお
く必要があるでしょう。

{\bf fit} は、大抵の非線形最小自乗法の実装では共通して、距離の自乗
(y-f(x))**2 の重み付きの和を最小化しようとすることに注意してください。
それは、x の値の {\tt"}誤差{\tt"} を計算に関してはどんな方法も与えてはおらず、単
に y に関する評価のみです。また、{\tt"}孤立点{\tt"} (正規分布のモデルのから外れ
ているデータ点) は常に解を悪化させる可能性があります。
\subsection{制御 (control)}
\label{commands fit control}
\label{fit control}
{\bf fit} に影響を与えるために定義できるたくさんの {\bf gnuplot} の変数があり
ます。それらは {\bf gnuplot} の動作中に一度定義できますが、それは
{\bf control\_variable} で紹介し、{\bf gnuplot} が立 ち上がる前に設定する変数は
{\bf environment\_variables} で紹介します。
\subsubsection{制御変数 (control variables)}
\label{commands fit control variables}
\label{fit control variables}
デフォルトのもっとも小さい数字の限界 (1e-5) は、変数
\preverbatim
\begin{verbatim}
     FIT_LIMIT
\end{verbatim}
\postverbatim
で変更できます。残差の平方自乗和が 2 つの反復ステップ間で、この数値よ
り小さい数しか変化しなかった場合、当てはめルーチンは、これを '収束した'
と見なします。

反復数の最大値は変数
\preverbatim
\begin{verbatim}
     FIT_MAXITER
\end{verbatim}
\postverbatim
で制限されます。0 (または定義しない場合) は制限無しを意味します。

更にそのアルゴリズムを制御したい場合で、かつ Marquardt-Levenberg アル
ゴリズムを良く知っている場合は、さらにそれに影響を与える変数があります。
{\bf lambda} (λ) の最初の値は、通常 ML 行列から自動的に計算されますが、も
しそれをあらかじめ用意した値にセットしたければ
\preverbatim
\begin{verbatim}
     FIT_START_LAMBDA
\end{verbatim}
\postverbatim
にセットしてください。FIT\_START\_LAMBDA を 0 以下にセットすると、自動的に計算されるようになります。変数
\preverbatim
\begin{verbatim}
     FIT_LAMBDA_FACTOR
\end{verbatim}
\postverbatim
は、χ自乗化された関数が増加、あるいは減少するにつれて {\bf lambda} が増加
あるいは減少する因数を与えます。FIT\_LAMBDA\_FACTOR を 0 とすると、それは
デフォルトの因数 10.0 が使用されます。

{\bf fit} には FIT\_ から始まる変数が他にもありますから、ユーザ定義変数とし
てはそのような名前で始まる変数は使わないようにするのが安全でしょう。

変数 FIT\_SKIP と FIT\_INDEX は、以前の版の {\bf gnuplot} の、{\bf gnufit} と呼ばれていた {\bf fit} パッチで使われていたもので、現在は使用されていません。
FIT\_SKIP の機能はデータファイルに対する {\bf every} 指定子で用意されていま
す。FIT\_INDEX は複数当てはめ法 (multi-branch fitting) で使われていたも
のですが、1 変数の複数当てはめ法は、今では 疑似 3 次元当てはめとして行
なわれていて、そこでは枝の指定には 2 変数と {\bf using} が使われています。
以下参照: {\bf fit multi-branch (p.~\pageref{fit multi-branch})\index{multi-branch}}。
\subsubsection{環境変数 (control environment)}
\label{commands fit control environment}
\label{fit control environment}
環境変数は {\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} コマンドとすれば、当てはめの進行状
況の表示をカスタマイズするのに便利でしょう。
\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)}
\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{ヒント (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 update} を使うこ
とも出来ます。

{\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 fit} を使えば、求めるパラメータの視点から直接モ
デル関数を書くことにより、それはしばしば 1 回で済むのです。時々はより
難しい当てはめ問題の計算コストがかかりますが、データ変換もかなりの割合
で避けることが出来ます。もしこれが、当てはめ関数の単純化に関して、前の
段落と矛盾してると思うなら、それは正解です。

{\tt"}singular matrix{\tt"} のメッセージは、この Marquardt-Levenberg アルゴリズ
ムのルーチンが、次の反復に対するパラメータの値の計算が出来ないことを意
味します。この場合、別な初期値から始めるか、関数を別な形で書き直すか、
より簡単な関数にしてみてください。

最後に、他の当てはめパッケージ (fudgit) のマニュアルから、これらの文書
を要約するようないい引用を上げます: {\tt"}Nonlinear fitting is an art! (非
線形当てはめ法は芸術だ !){\tt"}
\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}
\label{commands history}
\label{history}
\index{history}
コマンド {\bf history} は、過去に編集したコマンドラインの履歴 (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"      # 上と同様 (複数の語は引用符で囲む)
     hi !reread            # "reread" で始まる最も新しい行を実行
     hist !"set xr"        # 上と同様 (複数の語は引用符で囲む)
     hi !hi                # 当ててみて :-))
\end{verbatim}
\postverbatim

popen 関数をサポートするようなシステム (Unix など) では、履歴の出力を
パイプ経由で他の外部プログラムに渡すことができます。その場合、上の例の
一つにあるように、ファイル名としてコマンド名の先頭に '$|$' をつけたもの
を使います。
\section{If}
\label{commands if}
\label{if}
\index{if}
{\bf if} コマンドは、条件付でコマンドを実行させることができます。

書式:
\preverbatim
\begin{verbatim}
     if (<条件>) <コマンド行> [; else if (<条件>) ...; else ...]
\end{verbatim}
\postverbatim

$<$条件$>$ が評価され、もしそれが真 (ゼロでない) ならば、$<$コマンド行$>$ のコ
マンドが実行されます。もし、$<$条件$>$ が偽 (ゼロ) ならば、次の {\bf else} ま
での $<$コマンド行$>$ 全体が無視されます。{\bf ;} を使うと同じ行に複数のコマン
ド置くことが可能ですが、これで条件付きのコマンド ({\bf if} の構文自体) は
終っていないことに注意してください。

例:
\preverbatim
\begin{verbatim}
     pi=3
     if (pi!=acos(-1)) print "?Fixing pi!"; pi=acos(-1); print pi
\end{verbatim}
\postverbatim
を実行すると、
\preverbatim
\begin{verbatim}
     ?Fixing pi!
     3.14159265358979
\end{verbatim}
\postverbatim
と表示されますが、
\preverbatim
\begin{verbatim}
     if (1==2) print "Never see this"; print "Or this either"
\end{verbatim}
\postverbatim
とすると、何も表示されません。

その他:
\preverbatim
\begin{verbatim}
     v=0
     v=v+1; if (v%2) print "2" ; else if (v%3) print "3" ; else print "fred"
\end{verbatim}
\postverbatim
(何度も最後の行を繰り返してみてください !)

{\bf if} と {\bf reread} を使ってループを構成する例については、以下参照:{\bf reread (p.~\pageref{reread})\index{reread}}。
\section{繰り返し (iteration)}
\label{iteration}
\index{iteration}
{\bf plot}, {\bf splot}, {\bf set}, {\bf unset} コマンドでは、繰り返し節を使うこともで
きます。これは、基本的なコマンドを複数回実行する効果を持ち、そのおのお
のの実行では繰り返し制御変数によって数式は再評価されます。繰り返し節は
現在は以下の 2 つの形式をサポートしています:

\preverbatim
\begin{verbatim}
     for [intvar = start:end{:increment}]
     for [stringvar in "A B C D"]
\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
\end{verbatim}
\postverbatim

さらなる説明については、以下参照: {\bf plot iteration (p.~\pageref{plot iteration})\index{iteration}}。

\section{Load}
\label{commands load}
\label{load}
\index{load}
{\bf load} コマンドは、指定された入力ファイルの各行を、それが対話的に入力
されたかのように実行します。{\bf save} コマンドでつくられたファイルは、
{\bf load} することができます。有効なコマンドの書かれたテキストファイルを
つくれば、それは、{\bf load}コマンドによって、実行することができます。
{\bf load} 中のファイルの中にさらに {\bf load} または {\bf call} コマンドがあって
も構いません。コマンド中のコメントについては、以下参照: {\bf comments (p.~\pageref{comments})\index{comments}}。
{\bf load} するときに引数を与える方法については、以下参照: {\bf call (p.~\pageref{call})\index{call}}。

書式:
\preverbatim
\begin{verbatim}
       load "<入力ファイル名>"
\end{verbatim}
\postverbatim

入力ファイル名は引用符で囲まなければなりません。

{\bf load} コマンドは、標準入力からのコマンドの入力のために、特別なファイ
ル名 {\tt"}-{\tt"} を用意しています。これは、{\bf gnuplot} のコマンドファイルが、い
くつかのコマンドを標準入力から受け付けることを意味します。詳細について
は、以下参照: {\bf batch/interactive (p.~\pageref{batch/interactive})\index{batch/interactive}}。

Unix のように popen 関数をサポートするようなシステムでは、'$<$' で始まる
ファイル名にすることで、入力ファイルをパイプから読み込むことができます。

例:
\preverbatim
\begin{verbatim}
       load 'work.gnu'
       load "func.dat"
       load "< loadfile_generator.sh"
\end{verbatim}
\postverbatim

{\bf gnuplot} への引数として与えられたファイル名は、暗黙のうちに {\bf load} コ
マンドによって実行されます。これらは、指定された順にロードされ、その後
{\bf gnuplot} は終了します。
\section{Lower}
\label{commands lower}
\label{lower}
\index{lower}
書式:
\preverbatim
\begin{verbatim}
     lower {plot_window_nb}
\end{verbatim}
\postverbatim

コマンド {\bf lower} ({\bf raise} の反対) は、{\bf pm}, {\bf win}, {\bf wxt}, {\bf x11} 等の
gnuplot の対話型出力形式の実行中に、描画ウィンドウを下 (背後) に下げま
す。描画ウィンドウを、デスクトップ上のウィンドウマネージャの z 方向の
ウィンドウの重なりの下に置きます。

{\bf x11} や {\bf wxt} のように複数の描画ウィンドウをサポートしている場合、デ
フォルトではこのコマンドはそれらの複数のウィンドウを降順に下げ、最初に
作られたウィンドウを一番下に、最後に作られたウィンドウを一番上に並べま
す。オプション引数の描画番号が与えられた場合、それに対応する描画ウィン
ドウが存在すればそれのみが下げられます。

オプション引数は、単一の描画ウィンドウの出力形式、すなわち {\bf pm} と
{\bf win} では無視されます。
\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>"}
\end{verbatim}
\postverbatim

$<$time$>$ は、任意の定数または式です。-1 を指定すると改行キーが押されるま
で待ちます。0 を指定すると一切待たず、正の数を指定するとその秒数だけ待
ちます。実行環境が秒以下の時間指定をサポートしていない場合、その時間は整数の秒数に丸められます。{\bf pause 0} は {\bf print} と同じです。

使用している出力形式が {\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"} は、有効な描画ウィンドウ内での任意のキー
入力によって再開されます。特別なキー入力まで待つようにしたい場合は、以下のような reread によるループを使うことができます:

\preverbatim
\begin{verbatim}
     print "描画ウィンドウ内で Tab キーを打つと復帰します。"
     load "wait_for_tab"
\end{verbatim}
\postverbatim

ファイル {\tt"}wait\_for\_tab{\tt"} は以下のようなものです:

\preverbatim
\begin{verbatim}
     pause mouse key
     if (MOUSE_KEY != 9) reread
\end{verbatim}
\postverbatim

\section{Plot}
\label{commands plot}
\label{plot}
\index{plot}
{\bf plot} は {\bf gnuplot} で図を描くための基本的なコマンドです。 それは関数
やデータを実に多くの方法で表示します。{\bf plot} は 2 次元の関数やデータを
描くのに使われ、{\bf splot} は 3 次元の曲面やデータの 2 次元投影を描きます。
{\bf plot} と {\bf splot} は多くの共通の特徴点を持ちますが、その違いについては
以下参照: {\bf splot (p.~\pageref{splot})\index{splot}}。特に注意しておきますが、{\bf binary $<$binary list$>$} オプ
ションは {\bf plot}, {\bf splot} の両方で動作しますが、両者には小さな違いがあ
ります。

書式:
\preverbatim
\begin{verbatim}
     plot {<ranges>}
          {<iteration>}
          {<function> | {"<datafile>" {datafile-modifiers}}}
          {axes <axes>} {<title-spec>} {with <style>}
          {, {definitions{,}} <function> ...}
\end{verbatim}
\postverbatim

関数 $<$function$>$、または引用符で囲まれたデータファイル名 ($<$datafile$>$)
のどちらか一方を与えます。関数は一本の数式、または parametric mode に
おいては 2 つの数式の組です。数式は完全に定義してもいいですし、前の方
の {\bf gnuplot} のコマンド列で部分的に定義してもいいです (以下参照:{\bf user-defined (p.~\pageref{user-defined})\index{user-defined}})。

関数とパラメータは {\bf plot} コマンド自身の上で定義をすることも可能です。
これは単に他の項目とコンマで分離して記述することでなされます。

例:
\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)}
\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{データ (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}
\label{volatile}
\index{volatile}
\label{plot datafile volatile}
ファイルに納められた離散的なデータは、{\bf plot} コマンドライン上で、その
データファイル名 ($<$datafile$>$) を単一引用符または二重引用符で囲んで指定
することによって表示できます。

書式：
\preverbatim
\begin{verbatim}
     plot '<file_name>' {binary <binary list>}
                        {matrix}
                        {index <index list> | index "<name>"}
                        {every <every list>}
                        {thru <thru expression>}
                        {using <using list>}
                        {smooth <option>}
                        {volatile} {noautoscale}
\end{verbatim}
\postverbatim

修正子の {\bf binary}, {\bf index}, {\bf every}, {\bf thru}, {\bf using}, {\bf smooth} は、そ
れぞれに分けて説明します。簡単に言うと、{\bf binary} はデータ列をバイナリ
ファイルから取得できるようにし (デフォルトは ASCII ファイル)、{\bf index}
はマルチデータ集合ファイルからどのデータ集合を表示するのかを選び、
{\bf every} が、一つのデータ集合からどの点を表示するのかを選び、{\bf using} は
一行からどの列を解釈するのかを決定し ({\bf thru} は、{\bf using} の特別な場合
である)、そして {\bf smooth} が、単純な補間と近似を行います。({\bf splot} は、
よく似た書式を持っていますが、{\bf smooth} オプションと {\bf thru} オプション
はサポートしていません)

キーワード {\bf volatile} は、データファイルの内容が、再読み込み時には変化
しうることを意味します。これは、可能な限りプログラムに、{\bf replot} コマ
ンドの代わりに {\bf refresh} コマンドを使わせようとします。以下参照:{\bf refresh (p.~\pageref{refresh})\index{refresh}}。

キーワード {\bf noautoscale} は、自動的に軸の範囲が決定される機能が有効で
ある場合に、この描画を構成するデータ点については、それを無視させる (自
動縮尺機能の計算対象から外す) ようにします。


ASCII データファイル:

データファイルは、一行につき少なくとも一つのデータ点を含む必要がありま
す ({\bf using} は一行から一つのデータポイントを選ぶことができます)。{\bf \#}
(VMS では {\bf !}) で始まる行は、コメントとして扱われ、無視されます。各デ
ータ点は、(x,y) の組を表します。エラーバー、または折れ線表示付エラーバ
ーの {\bf plot} では (以下参照: {\bf set style errorbars (p.~\pageref{set style errorbars})\index{errorbars}},{\bf set style errorlines (p.~\pageref{set style errorlines})\index{errorlines}})、各データ点は、(x,y,ydelta), (x,y,ylow,yhigh),
(x,y,xdelta), (x,y,xlow,xhigh), (x,y,xlow,xhigh,ylow,yhigh) のいずれか
を意味します。

どんな場合でも、書式の指定子が {\bf using} オプションによって与えられてい
なければ、データファイルの各行の数字は、ホワイトスペース (一つまたは複
数の空白かタブ) によって区切られている必要があります。このホワイトスペ
ースは、各行を列の項目に区切ります。ただし、二重引用符で囲まれたホワイ
トスペースは列の勘定では無視され、よって次のようなデータ行は 3 列、と
見なされます:
\preverbatim
\begin{verbatim}
     1.0 "second column" 3.0
\end{verbatim}
\postverbatim

データは、指数部に e, E の文字をつけた指数表記で書かれていても構いませ
ん。コマンド {\bf set datafile fortran} が有効な場合は、fortran の指数指定
子 d, D, q, Q も使えます。

必要であるのはただ一つの列 (y の値) のみです。もし x の値が省略された
ら、{\bf gnuplot} はそれを 0 で始まる整数値として用意します。

データファイルにおいて、ブランク行 (空白と改行、復帰以外に文字を含まない行) は重要です。

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 fixmin}/{\bf fixmax} オプシ
ョンを使うことができます。これは、軸の範囲を自動的に拡張して、次の目盛
りの刻みに合うようにする機能を無効にします。

ラベルの座標と文字列もデータファイルから読み込むことができます (以下参照: {\bf labels (p.~\pageref{labels})\index{labels}})。


バイナリデータファイル:

gnuplot はバイナリデータファイルを読むこともできます。しかし、そのファ
イルフォーマットに関する十分詳細な情報は、ユーザがコマンドラインから与
えるか、またはサポートされている {\bf filetype} のバイナリ形式のファイルそ
れ自身から抜き出されるかする必要があります。バイナリファイルには 2 つ
の形式、matrix バイナリ形式と general バイナリ形式があります。

matrix バイナリ形式は、32 ビット IEEE 規格の浮動小数値 (float) が 2 次
元配列の形で並び、それらの座標値を表す行と列が追加されています。ASCII
matrix 同様、{\bf using} リストにおいては、座標用の列の並び (1 列目) が
using の 1 番目の要素 (x 座標) に対応し、座標用の行の並び (1 行目) が
using の 2 番目の要素 (y 座標) に対応し、配列の各値が using の 3 番目
の要素 (z 座標) に対応します。

general バイナリ形式は、任意個の列のデータを含み、それらの情報はコマン
ドラインで指定する必要があります。例えば {\bf array}, {\bf record}, {\bf format},
{\bf using} などでサイズや形式、データの次元を指定できます。他にも、ファイ
ルヘッダ読み飛ばしたり、エンディアン (endian) を変更するための有用なコ
マンドがありますし、配置、データの変換を行なうコマンドの組があります。
それは、一様に標本化されたデータの場合、その座標がファイルには含まれな
いことが良くあるからです。matrix バイナリや ASCII データと違っていると
ころですが、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} の general バイナリ形式
を特定するようなキーワードが何もついていなければ、デフォルトのバイナリ
形式は matrix バイナリです。

general バイナリデータは、特別なファイル名 '-' を使ってコマンドライン
から入力することもできます。しかし、これはキーボードからの入力を意図し
たものではなく、パイプを使ってプログラムにバイナリ形式を変換させるため
のものです。バイナリデータには最後を表す記号がありませんので、gnuplot
はパイプからデータを読み込む場合、{\bf array} 指定子で指定した数の点数にな
るまでデータを読み込み続けます。

詳細に関しては、以下参照: {\bf datafile binary (p.~\pageref{datafile binary})\index{binary}}。
\subsubsection{Binary}
\label{commands plot datafile binary}
\label{plot datafile binary}
\label{splot datafile binary}
\label{plot binary}
\label{splot binary}
\label{data-file binary}
\label{datafile binary}
\label{binary}
\index{binary}
キーワード {\bf binary} はデータファイルを ASCII ではなくてバイナリファイ
ルと認識させます。バイナリファイルフォーマットには、matrix バイナリと
general binary の 2 つがあります。matrix バイナリは固定フォーマットで、
データは、2 次元配列の形で並び、その座標を表す余分な列と行がついていま
す。general バイナリは柔軟なフォーマットで、そのファイルに関する詳細は
コマンドラインで指示する必要があります。

詳細に関しては、以下参照: {\bf binary matrix (p.~\pageref{binary matrix})\index{matrix}}, {\bf binary general (p.~\pageref{binary general})\index{general}}。
\subsubsection{Binary general}
\label{commands plot datafile binary general}
\label{commands splot datafile binary general}
\label{plot binary general}
\label{splot binary general}
\label{binary general}
general バイナリデータは、その形式に関する情報が必ずしもファイル内には
なくても良く、ファイルの形式に関する詳細な情報をコマンドラインから与え
ることで、そのデータを読み込むことが可能になります。そのオプションの書
式は一時的なユーザにはやや難解ですが、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
の対話画面から {\bf show datafile binary} してください)。それ以外の場合はコマンドライン、あるいはデフォルトの値を設定する必要があります。キーワ
ードに関しては以下で説明します。

$<$binary list$>$ に与えるキーワード {\bf filetype} は、ファイルを読み込むのに
使用されるルーチン、すなわちデータの形式の扱いを制御します。サポートし
ている filetype の一覧を見るには、{\bf show datafile binary filetypes} と
してください。filetype を指定しない場合の規則は、{\bf splot} 用に {\bf binary}
キーワードが単独で与えられた場合は古典的な gnuplot バイナリ形式だと見
なされ、その他全ての状況、すなわち {\bf plot} 用かまたは少なくとも一つの
$<$binary list$>$ キーワードが与えられたような場合は、raw バイナリファイル
とみなされ、そのキーワードによってバイナリ形式が指定されます。

general バイナリデータファイルは 2 つの基本的なクラスに分かれますが、
それがどのように扱われるのかによって両方のクラスに入る場合もあります。
一つのクラスは、データは一様にサンプリングされていると見なされ、点の座
標は必然的にそこから生成されます。このクラスでは $<$binary list$>$ キーワ
ードを用いて全ての制御が行なわれます。そして、このクラスでの設定の優先
順位は、コマンドラインパラメータがファイル内のパラメータを上書きし、そ
れはデフォルトの設定を上書きします。もう一つのクラスは、座標情報がファ
イル内に含まれた複数のファイルの組のためのもの、あるいは gnuplot バイ
ナリのような非一様な標本化を含み得る一つのファイルのためのものです。

gnuplot バイナリのような特殊なデータファイル以外では、一般にバイナリデータは概念上は ASCII データと同様に考えられます。各点は情報の列を持っ
ていて、それは {\bf using} によって結びつけられる $<$using list$>$ で選択され
ます。{\bf format} 文字列が何も指定されなかった場合、gnuplot はバイナリ変
数の数を {\bf $<$using list$>$} で与えられる最大の列番号に等しく取ります。例え
ば {\bf using 1:3} の場合は 3 列ずつデータが読み取られ、2 番目のものは無視
されます。各描画スタイルにはその典型的なパラメータの個数があり、それに
基づく {\bf $<$using list$>$} がデフォルトとして選択されます。例えば
{\bf with image} では デフォルトで {\bf using 1} が、{\bf with rgbimage} ではデフ
ォルトで {\bf using 1:2:3} が使われます。{\bf using} で 点/線/index を表す特別
な文字は、一般にはバイナリデータでは使うべきではないことに注意してくだ
さい。これを制御する $<$binary list$>$ のキーワードがあります。
\subsubsection{Array}
\label{binary array}
バイナリファイルの標本の配列の大きさを設定します。座標は gnuplot が生
成してくれます。各方向の次元を表す数を指定しなければいけません。例えば
{\bf array=(10,20)} は、2 次元で最初の次元方向 (x) には 10 点、2 番目の次
元方向 (y) には 20 点の標本化データがあることを意味します。ファイルの
終了までデータが続くことを示すのに負の値を使えます。データ次元が 1 の
場合は、カッコは省略できます。複数のデータのサイズ指定を分離するのに、
コロンを使うことができます。例えば {\bf array=25:35} は 2 つの 1 次元デー
タがファイルの中にあることを意味します。
\preverbatim
\begin{verbatim}
     注意:  gnuplot version 4.2 では array=(128,128) という書式ではな
            く、array=128x128 という書式を使用していました。古い書式
            は推奨されていませんが、あなたの gnuplot が後方互換性をサ
            ポートするようコンパイルされていれば一応今でも使えます。
\end{verbatim}
\postverbatim
\subsubsection{Record}
\label{binary record}
このキーワードは {\bf array} と同じ書式で、同じ機能を提供します。しかし
{\bf record} は gnuplot に座標情報を自動生成させません。これは、そのような
座標情報が、バイナリデータファイルのある列に含まれている場合のためのも
のです。
\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}
\label{binary 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{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}
\label{binary 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}
\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}
\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

以下も参照: {\bf binary (p.~\pageref{binary})\index{binary}}。
\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

以下も参照: {\bf binary (p.~\pageref{binary})\index{binary}}。
\subsubsection{Keywords}
\label{binary keywords}
以下のキーワード (keyword) は、バイナリファイルから座標を生成するとき
にのみ適用されます。つまり、binary array, matrix, image の個々の要素を
特定の x,y,z の位置への配置の制御のためのものです。
\paragraph{Scan}
\label{binary keywords 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}
\label{binary keywords transpose}
{\bf scan=yx}、または {\bf scan=yxz} と同じです。
\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}
\label{binary keywords flipx}
バイナリデータファイルの走査方向が gnuplot の走査方向と一致しないこと
がたまにあります。これらのキーワードは、それぞれ x, y, z 方向のデータ
の走査方向を逆向きにします。
\paragraph{Origin }
\label{binary keywords 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}
\label{binary keywords center}
\label{keywords center}
{\bf origin} と似ていますが、このキーワードは、配列の中心がこのキーワード
で指定した点になるように配置します。例えば {\bf center=(0,0)} のようにしま
す。配列のサイズが {\bf Inf} のときは center は適用されません。
\paragraph{Rotate}
\label{binary keywords rotate}
\label{keywords 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}
\label{binary keywords 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 次元データと見なされます)。
\paragraph{Binary の例 (binary examples)}
\label{binary_examples}
\index{binary examples}
\label{binary examples}
\label{binary general examples}
\index{skip}
例:

\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{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 つの行によって定義されるデータと
し、ここでの「ブロック」は「データ・ブロック」(以下参照: {\bf glossary (p.~\pageref{glossary})\index{glossary}})
と同じものを意味することとします。

書式：
\preverbatim
\begin{verbatim}
        plot 'file' every {<ポイント増分>}
                          {:{<ブロック増分>}
                            {:{<開始ポイント>}
                              {:{<開始ブロック>}
                                {:{<終了ポイント>}
                                  {:<終了ブロック>}}}}}
\end{verbatim}
\postverbatim

プロットされるデータポイントは、$<$開始ポイント$>$ から $<$終了ポイント$>$ ま
で $<$ポイント増分$>$ の増加で選ばれ、ブロックは $<$開始ブロック$>$ から $<$終了
ブロック$>$ まで $<$ブロック増分$>$ の増加で選ばれます。

各ブロックの最初のデータは、ファイル中の最初のブロックと同じように、
「0 番」とされます。

プロットできない情報を含んでいる行もカウントされることに注意して下さい。

いくつかの数字は省略することができます; 増分のデフォルトは 1 、開始の
値は最初のポイントか最初のブロック、そして終了の値は最後のポイントか最
後のブロックに設定されます。{\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

参照:
\par\hskip2.7em\href{http://www.gnuplot.info/demo/simple.html}{\tt 単純な plot デモ (simple.dem)
}

,
\par\hskip2.7em\href{http://www.gnuplot.info/demo/surface1.html}{\tt 非パラメータモードでの splot デモ
}

,
\par\hskip2.7em\href{http://gnuplot.sourceforge.net/demo/surface2.html}{\tt パラメータモードでの splot デモ
}

。
\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)
     plot [1960:1990] '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

\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} は、描画用に複数のデータ集合を持つファイルから、特
定のデータ集合を選択することを可能にします。

書式:
\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]' などの命名法を選択すると便利でしょう。

\par\hskip2.7em\href{http://www.gnuplot.info/demo/multimsh.html}{\tt }

\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}
{\bf gnuplot} は、データの補間と近似を行う汎用的なルーチンをいくつか持っ
ています。これ {\bf smooth} オプションの中にグループ化されています。より
洗練されたデータ処理をしたければ、外部においてデータの前処理をするか、
または適切なモデルで fit を使うのがいいでしょう。

書式:
\preverbatim
\begin{verbatim}
     smooth {unique | frequency | cumulative | kdensity | csplines
             | acsplines | bezier | sbezier}
\end{verbatim}
\postverbatim

{\bf unique}, {\bf frequency}, {\bf cumulative} は、データを単調に揃えた後でそれら
を plot します。他のルーチンはいずれも、データの両端の点の間を結ぶ、あ
る連続曲線の係数を決定するためにデータを使います。この曲線は、関数とし
て同じ方法で描画されます。すなわち、それらの値は x 座標に沿う同じ幅の
区間ごとに選ばれ (以下参照: {\bf set samples (p.~\pageref{set samples})\index{samples}})、それらの点を線分でつなぐこ
とにより (もし line style が選ばれているのならば) 描画されます。

もし {\bf autoscale} の状態であれば、描画範囲はグラフの境界線の中に曲線が
収まるように計算されます。

もし {\bf autoscale} の状態でなく、smooth のオプションが {\bf acsplines} か
{\bf csplines} であれば、生成する曲線の標本化は、入力データを含むような x
の範囲と、{\bf set xrange} などで定義される固定された横座標の範囲の共通部
分の上で行なわれます。

選択されたオプションを適用するのにデータの点数が少なすぎる場合は、エ
ラーメッセージが表示されます。その最小のデータ数は {\bf unique} と
{\bf frequency} では 1 つ、{\bf acsplines} では 4 つ、他のオプションでは 3 つ
です。

{\bf smooth} オプションは、関数の描画のときには無視されます。
\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{smooth acsplines}
\label{acsplines}
\index{acsplines}
{\bf acsplines} オプションは「自然な滑らかなスプライン」でデータを近似しま
す。データが x に関して単調にされた後 (以下参照: {\bf smooth unique (p.~\pageref{smooth unique})\index{unique}})、1
つの曲線が、いくつかの 3 次多項式の一部分により区分的に構成されます。
それらの 3 次式の係数は、いくつかのデータポイントの重み付けによって求
められます。重みは、データファイルの 3 列目に与えます。そのデフォルト
の値は、{\bf 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
\end{verbatim}
\postverbatim
\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 bezier} オプションは、n 次 (データ点の個数) のベジェ曲線でデータを近
似します。この曲線は両端の点をつなぎます。
\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}
{\bf csplines} オプションはデータを単調に揃えた後で (以下参照:{\bf smooth unique (p.~\pageref{smooth unique})\index{unique}}) 自然 3 次スプライン曲線で引き続く点をつなぎます。
\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 sbezier} オプションは、最初にデータを単調に揃え (以下参照: {\bf unique (p.~\pageref{unique})\index{unique}})
そして {\bf bezier} アルゴリズムを適用します。
\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 unique} オプションは、データを x 方向に単調にします。同じ x を持つデ
ータ点は y の値を平均して一つの点で置き換えます。そしてその結果として
得られる点を線分で結びます。
\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}
オプション {\bf frequency} は、データを x に関して単調にします。x 座標が同
じ点は、それらの y の値の合計を y の値として持つ一つの点に置き換えられ
ます。結果としてそれらの点は真っすぐな線分で結ばれることになります。
以下も参照。
\par\hskip2.7em\href{http://www.gnuplot.info/demo/smooth.html}{\tt smooth.dem
}

\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 cumulative} は、データを x に関して単調にします。x 座標が
同じ点は、それ以下の x の値を持つすべての点 (すなわち現在のデータ点の左側の点) に対する y の値の累積的な合計を y の値として持つ一つの点に置
き換えられます。これは、データから累積分布関数を得るのに利用できます。
以下も参照。
\par\hskip2.7em\href{http://www.gnuplot.info/demo/smooth.html}{\tt smooth.dem
}

\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}
\label{kdensity}
\index{kdensity}
オプション {\bf kdensity} は、ガウス核を用いた、ランダム選択点の核密度評価
(それは滑らかなヒストグラムになります) を描画する方法の一つです。ガウ
ス核が第 1 列の各点の位置に置かれ、これらのガウス核すべての和が関数と
して描画されます。2 列目の値は、ガウス核の重みとして使用されます。(正
規化されたヒストグラムを得るには、これを 1/(点の個数) とすべきです。)
3 列目の値があれば、それはガウス核のバンド幅として使用されます。2 列し
か指定しない、あるいは 3 列目の値が 0 以下であれば、gnuplot は入力データが正規分布である場合に最適となるようなバンド幅を計算します。(これは
通常はとても保守的で、すなわち幅広いバンド幅です。)
\subsubsection{特別なファイル名 (special-filenames)}
\label{commands plot datafile special-filenames}
\label{plot datafile special-filenames}
\label{plot special-filenames}
\label{datafile special-filenames}
\label{special-filenames}
\index{special filenames}
特別な意味を持つファイル名として、次のものがあります: {'\,'}, '-', '+',
'++'

空のファイル名 {'\,'} は、同じ plot コマンド上で、直前の入力ファイルを再び
使用することを gnuplot に指示します。よって、同じ入力ファイルの 2 つの
データ列を描画するには以下のようにします:

\preverbatim
\begin{verbatim}
     plot 'filename' using 1:2, '' using 1:3
\end{verbatim}
\postverbatim

'+' と '++' という特別なファイル名は、{\bf using} 指定の全体と描画スタイル
にインライン関数を使えるようにするための仕組みです。通常、関数描画はサ
ンプル点毎に単一の y (または z) の値しか持てません。しかし疑似ファイル
'+' はそれがあたかも実際の入力ファイルであるように、{\bf using} 指定による
1 列目の値を標本点として扱い、さらに追加の列の値を指定することも可能で
す。返される標本点の数は、{\bf set samples} で制御できます。
例:

\preverbatim
\begin{verbatim}
     plot '+' using ($1):(sin($1)):(sin($1)**2) with filledcurves
\end{verbatim}
\postverbatim

同様に、疑似ファイル '++' は、x 方向は {\bf set samples} で制御される点の
数、y 方向は {\bf set isosamples} で制御される点の数の、標準的な [x,y] 座
標の格子を生成する 2 列のデータを返します。'++' の描画の前に、xrange
と yrange を設定する必要があります。
例:

\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 シェルスクリプトにおけ
る $<$$<$ (ヒアドキュメント)、あるいは VMS DCL における \$DECK と同様です。
そのデータは、それらがファイルから読み込まれたかのように、1 行につき
1 つずつのデータ点が入力されます。そしてデータの終りは、1 列目の始めに
文字 {\tt"}e{\tt"} を置くことで指示します。{\bf using} オプションをこれらのデータに
適用することは可能です。ある関数を通しデータをフィルターすることに使う
のは意味があるでしょうが、列を選ぶのに使うことは多分意味がないでしょう。

{\bf '-'} は、データとコマンドを一緒に持つことが有用である場合のためにあ
ります。例えば、{\bf gnuplot} があるフロントアプリケーションのサブプロセ
スとして起動される場合などがこれにあたります。例として、デモンストレ
ーションでこの機能を使うものがあるでしょう。{\bf index} や {\bf every} のよう
な {\bf plot} のオプションが与えられていると、それらはあなたに使われるこ
とのないデータを入力する事を強要します。次の例を見てください。

\preverbatim
\begin{verbatim}
     plot '-' index 0, '-' index 1
     2
     4
     6
\end{verbatim}
\postverbatim


\preverbatim
\begin{verbatim}
     10
     12
     14
     e
     2
     4
     6
\end{verbatim}
\postverbatim


\preverbatim
\begin{verbatim}
     10
     12
     14
     e
\end{verbatim}
\postverbatim

これは、実際に動作しますが、

\preverbatim
\begin{verbatim}
     plot '-' , '-'
     2
     4
     6
     e
     10
     12
     14
     e
\end{verbatim}
\postverbatim

とタイプする方が楽でしょう。

もし、{\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 つの集合を
与える必要があります。)

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} あるいは {\bf thru} キー
ワードを用いた単純なフィルタリングで行うことも可能です。
\subsubsection{Thru}
\label{commands plot datafile thru}
\label{plot datafile thru}
\label{plot thru}
\label{data-file thru}
\label{datafile thru}
\label{thru}
\index{thru}
{\bf thru} 関数は前のバージョンとの互換性のために用意されています。

書式:
\preverbatim
\begin{verbatim}
     plot 'file' thru f(x)
\end{verbatim}
\postverbatim

これは次と同様です:

\preverbatim
\begin{verbatim}
     plot 'file' using 1:(f($2))
\end{verbatim}
\postverbatim

後者の方がより複雑に見えますが、この方が柔軟性を持っています。さらに
自然な

\preverbatim
\begin{verbatim}
     plot 'file' thru f(y)
\end{verbatim}
\postverbatim

も動作します (すなわち、y をダミー変数として使うことができます)。

{\bf thru} は {\bf splot} と {\bf fit} でも通りますが、何の効果も持ちません。
\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

もし、フォーマット (format) が指定されれば、C のライブラリ関数 'scanf'
を使ってデータファイルの各行をそのフォーマット文字列に従って読み込みま
す。そうでなければ、行は列に分割されて読み込まれますが、デフォルトでは
ホワイトスペース (スペースやタブ) で列の分離が行われていると見なします。
以下参照: {\bf datafile separator (p.~\pageref{datafile separator})\index{separator}}。

\preverbatim
\begin{verbatim}
各 <entry> は、適切な入力の一つのフィールドから値を選択するための単な
\end{verbatim}
\postverbatim
る列の番号か、またはカッコで囲まれた数式の指定、または何も指定しないか
のいずれかです。

そのエントリがカッコで囲まれた数式の場合、N 列目の値を指定するのに関数
column(N) を使用できます。つまり、column(1) は読み込まれた最初の項目を
参照し、column(2) は次の項目、といった具合です。column(1), column(2),
... の略記として、特別な記号 \$1, \$2, ... を使用できます。関数
{\bf valid(N)} で、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}}。

'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)}
\label{examples}
\index{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 {\tt"},{\tt"}} を指定する
ことでも可能です。
\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

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 を使っても同じことになります。
\index{NaN}

カッコで始まっていない限りは定数式を列番号として使うことができます。
例えば {\bf using 0+(複雑な式)} の様なことができます。そして、その数式は、
カッコでスタートしていなければ数式の値が一度評価され、カッコでスタート
していれば個々のデータ点を読み込むためにその値が一度評価される、という
点が重要です。

時系列フォーマットデータを使っている場合、その時間のデータは複数の列に
渡らせることができます。その場合、他のデータの開始位置を計算するとき、
時間のデータに空白が含まれていることに注意してください。例えば、データ
行の最初の要素がスペースが埋め込まれた時間データであるならば、y の値は
3 列目の値として指定されるべきです。

{\bf plot 'file'} と {\bf plot 'file' using 1:2}、そして
{\bf plot 'file' using (\$1):(\$2)} には微妙な違いがあることに注意してくださ
い。1) {\bf file} が 1 列と 2 列のデータを持つ行をそれぞれ含んでいるとする
と、データが 1 列のみの行に対しては、最初のものは x の値を作り出し、2
番目のものはその行は無視し、3 番目のものはそれを未定義の値として保存し
ます (折れ線で plot している場合 (plot with lines)、その未定義の点を通
過する線を結ばないように)。2) 1 列目に文字列を含んでいるような行がある
場合、最初のものはエラーとして plot を中止しますが、2 番目と 3 番目の
ものはその不要な行を読みとばします。

実際、最初に単に

\preverbatim
\begin{verbatim}
     plot 'file' using 1:2
\end{verbatim}
\postverbatim

と指定することで、大抵の場合どんなにゴミのデータを含む行を持つファイル
をも plot することが可能になります。しかし、どうしてもデータファイルに
文字列を残しておきたいならば、そのテキスト行の第一列にコメント文字 (\#)
を置く方がより安全でしょう。
\par\hskip2.7em\href{http://www.gnuplot.info/demo/using.html}{\tt 弱々しい using のデモ
}

\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
                 行のブランク行でリセットされます。略記 $0 も使用可。
     column(-1)  この番号は 0 から始まり、1 行のブランク行でリセット
                 されます。これは、行列、または格子状データ内のデータ
                 行に対応します。
     column(-2)  複数のデータ集合を持つファイル内の、現在のデータ集合
                 の index 番号。以下参照: `index`。
\end{verbatim}
\postverbatim
\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}
\label{using x2ticlabels}
\label{plot using x2ticlabels}
以下参照: {\bf plot using xticlabels (p.~\pageref{plot using xticlabels})\index{xticlabels}}。
\paragraph{Yticlabels}
\label{using yticlabels}
\label{plot using yticlabels}
以下参照: {\bf plot using xticlabels (p.~\pageref{plot using xticlabels})\index{xticlabels}}。
\paragraph{Y2ticlabels}
\label{using y2ticlabels}
\label{plot using y2ticlabels}
以下参照: {\bf plot using xticlabels (p.~\pageref{plot using xticlabels})\index{xticlabels}}。
\paragraph{Zticlabels}
\label{using zticlabels}
\label{plot using zticlabels}
以下参照: {\bf plot using xticlabels (p.~\pageref{plot using xticlabels})\index{xticlabels}}。
\subsection{Errorbars}
\label{commands plot errorbars}
\label{commands splot errorbars}
\label{plot errorbars}
\label{splot errorbars}
\label{errorbars}
\index{errorbars}
エラーバーは、1 から 4 個の追加されたデータを読む (またはエントリを
{\bf using} で追加選択する) ことにより、2 次元データの描画において実現され
ています。これら追加される値は、それぞれのエラーバースタイルで異なった
形で使われます。

デフォルトでは、{\bf gnuplot} はデータファイルの各行に以下のような 3 つ、4 つ、あるいは 6 つの列があることを期待しています:

\preverbatim
\begin{verbatim}
     (x, y, ydelta),
     (x, y, ylow, yhigh),
     (x, y, xdelta),
     (x, y, xlow, xhigh),
     (x, y, xdelta, ydelta),
     (x, y, xlow, xhigh, ylow, yhigh)
\end{verbatim}
\postverbatim

x 座標は必ず指定しなければいけません。各数値を書く順序も上で挙げた通りで
なくてはなりません。ただ、{\bf using} 修飾子を使えばその順序を操作できますし、
欠けている列の値も補うことは可能ですが。例えば、

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

最後の例は、相対的な x の誤差と絶対的な y の誤差、という、サポートされて
いない組のファイルに対するものです。{\bf using} エントリが相対的な x の誤差
から絶対的な x の最小値と最大値を生成しています。

y のエラーバーは、(x, ylow) から (x, yhigh) への鉛直な線として描かれます。
ylow と yhigh の代わりに ydelta が指定されたときは、ylow = y - ydelta,
yhigh = y + ydelta となります。ある行にデータが 2 つしかなければ、ylow と
yhight はともに y となります。x エラーバーは同様に計算された水平線です。
データの各点を結ぶ折れ線を引きたい場合は、with errorbars と with lines を
指定して、同じデータファイルを 2 回 {\bf plot} して下さい (ただし、キーの中に
2 つのエントリを作らないように、その一方には {\bf notitle} オプションを使う
ことを忘れないで下さい)。他の選択肢として、errorlines コマンドもあります
(以下参照: {\bf errorlines (p.~\pageref{errorlines})\index{errorlines}})。

エラーバーには、もし {\bf set bars} を使っていなければ、そのそれぞれの端に垂直な
線分がつきます (詳細は、以下参照: {\bf set bars (p.~\pageref{set bars})\index{bars}})。

自動範囲指定が有効であれば、その描画範囲はエラーバーも含むように調整
されます。

以下も参照
\par\hskip2.7em\href{http://gnuplot.sourceforge.net/demo/mgr.html}{\tt エラーバーのデモ
}


更なる情報に関しては、以下参照: {\bf plot using (p.~\pageref{plot using})\index{using}}, {\bf plot with (p.~\pageref{plot with})\index{with}}, {\bf set style (p.~\pageref{set style})\index{style}}。
\subsection{Errorlines}
\label{commands plot errorlines}
\label{commands splot errorlines}
\label{plot errorlines}
\label{splot errorlines}
\label{errorlines}
\index{errorlines}
誤差線 (errorbar) を伴う線描画は、2 次元データファイルの描画でサポート
されていて、それは 1 個から 4 個の追加の (または {\bf using} で指定する)
列データを与えることで行なわれます。これらの追加される値は、様々な
errorline スタイルのそれぞれで異なった形で使われます。

デフォルトの状態では、{\bf gnuplot} は、データファイルの各行に 3 個、4 個、
6 個のいずれかの個数のデータがあることを期待し、それぞれ以下のいずれかに対応します。

\preverbatim
\begin{verbatim}
     (x, y, ydelta),
     (x, y, ylow, yhigh),
     (x, y, xdelta),
     (x, y, xlow, xhigh),
     (x, y, xdelta, ydelta),
     (x, y, xlow, xhigh, ylow, yhigh)
\end{verbatim}
\postverbatim

x 座標は指定する必要がありますし、データの順番も上の形式である必要があ
りますが、{\bf using} 修飾子でその順番を操作したり、欠けている列に対する値
を与えたりすることができます。例えば

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

最後の例は、相対的な x の誤差と絶対的な y の誤差、というサポートされて
いない組合せのデータのファイルに対するもので、{\bf using} で相対的な誤差か
ら絶対的な x の最小値と最大値を生成しています。

y 誤差線は (x, ylow) から (x, yhigh) へ描画される縦線です。ylow, yhigh
代わりに ydelta が指定された場合は、ylow = y - ydelta, yhigh = y + ydelta
と扱われます。ある行に 2 つのデータしかない場合、yhigh, ylow は両方と
も y になります。x 誤差線は同様の方法で計算される水平線です。

誤差線には、{\bf set bars} が指定されていない場合、その両端で垂直に交わる
線分が付きます (詳細は、以下参照: {\bf set bars (p.~\pageref{set bars})\index{bars}})。

自動縮尺 (autoscaling) が ON の場合、描画範囲は誤差線が入るように調整
されます。

更なる情報については、以下参照: {\bf plot using (p.~\pageref{plot using})\index{using}}, {\bf plot with (p.~\pageref{plot with})\index{with}}, {\bf set style (p.~\pageref{set style})\index{style}}。
\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

以下も参照
\par\hskip2.7em\href{http://www.gnuplot.info/demo/param.html}{\tt 媒介変数モードのデモ。
}

\subsection{範囲 (ranges)}
\label{commands plot ranges}
\label{commands splot ranges}
\label{plot ranges}
\label{splot ranges}
\label{ranges}
\index{ranges}
オプションの範囲 (range) は、表示されるグラフの領域範囲を指定します。

書式:
\preverbatim
\begin{verbatim}
     [{<dummy-var>=}{{<min>}:{<max>}}]
     [{{<min>}:{<max>}}]
\end{verbatim}
\postverbatim

最初の範囲指定は独立変数の範囲 ({\bf xrange} またはパラメトリックモードで
は {\bf trange}) で、2 番目のものは従属変数の範囲 {\bf yrange} (パラメトリック
モードでは {\bf xrange}) となります。$<$dummy-var$>$ には独立変数の新しい別名を
指定します (デフォルトの変数名は {\bf set dummy} で変更できます)。$<$min$>$,
$<$max$>$ には定数式、あるいは * を書くことができます。

パラメトリックモードでなければ、与えられるべき範囲指定は {\bf xrange},
{\bf yrange} の順になります。

パラメトリックモードでは、{\bf plot} コマンドに対してはその順序は {\bf trange},
{\bf xrange}, {\bf yrange} になります。以下の {\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

x2 の範囲と y2 の範囲はここでは指定できないことに注意してください。
それには {\bf set x2range} や {\bf set y2range} が使われます。

範囲は適切なモードに対して、上に示した順序で解釈されます。必要な範囲指
定が一度全て指定されると、再び指定し直すことはありませんが、必要ない部
分を全く指定しないようにはできません。その代わり、そこに空の範囲指定
{\bf []} を置きます。

{\bf *} は、min (最小値) や max (最大値) に自動範囲指定 (autoscale) の機能
を使うことを可能にします。以下も参照: {\bf set autoscale (p.~\pageref{set autoscale})\index{autoscale}}。

{\bf plot} や {\bf splot} のコマンド行で指定された範囲はそのグラフにのみ影響を
及ぼします。よって、その後のグラフのデフォルトの範囲を変更するには、
{\bf set xrange} や {\bf set yrange} を使用してください。

時間データに対しては、範囲はクォートで囲んで指定する必要があります (デ
ータファイルに現われる時間データと同じ形式の)。{\bf gnuplot} はその範囲を
読みこむのに時間書式文字列 ({\bf timefmt}) を使用します。詳しくは以下参照:{\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:]  exp(sin(x))
\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{繰り返し (iteration)}
\label{commands plot iteration}
\label{commands splot iteration}
\label{plot iteration}
\label{splot iteration}
\index{iteration}
多くの同等のファイルや関数を同時に描画する場合は、それぞれの plot コマ
ンドの繰り返し (iteration) でそれを行うのが便利です。

書式:
\preverbatim
\begin{verbatim}
     plot for [<variable> = <start> : <end> {:<increment>}]
     plot for [<variable> in "string of words"]
\end{verbatim}
\postverbatim

繰り返しの適用範囲 (scope) は、次のコンマ (,) かコマンドの終わり、のい
ずれか先に現れたところまでです。繰り返しは入れ子 (nest) にすることはで
きません。

繰り返し文がコンマまでなので、以下は一つの曲線 sin(3x) を描画します。
\preverbatim
\begin{verbatim}
     plot for [i=1:3] j=i, sin(j*x)
\end{verbatim}
\postverbatim
j の後にコンマがないので、以下は 3 つの曲線を描画します。
\preverbatim
\begin{verbatim}
     plot for [i=1:3] j=i 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 [0:1] 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

この例は、整数の繰り返し変数ではなく、文字列の繰り返し変数形式を用いて
いること以外は前の例と全く同じです。

\subsection{Title}
\label{commands plot title}
\label{commands splot title}
\label{plot title}
\label{splot title}
\label{columnheader}
\index{columnheader}
各関数やデータに対する曲線のタイトルは、その曲線のサンプル、および
(または) それを表示されるのに使われる記号とともにキーの中に表示されま
す。それは {\bf title} オプションで変更できます。

書式:
\preverbatim
\begin{verbatim}
     title <text> | notitle [<ignored text>]
     title columnheader | title columnheader(N)
\end{verbatim}
\postverbatim

ここで $<$text$>$ は引用符で囲まれた文字列か、文字列変数のいずれかです。引
用符はキーには表示されません。特殊文字も、バックスラッシュに続く 8 進
値 (例えば {\tt"}$\backslash$345{\tt"} のように) を使うことで用いることができます。タブ文字
{\tt"}$\backslash$t{\tt"} は認識されます。バックスラッシュのそのような作用は二重引用符で囲
まれた文字列でしか効きません。逆にその作用を働かさないようにするには、
単一引用符を使ってください。改行文字 {\tt"}$\backslash$n{\tt"} はどちらの型の引用符でもキー
では働きません。

入力データの列の最初の項目 (すなわち列の先頭) を文字列フィールドと解釈
し、それをキータイトルとして利用するオプションもあります。以下参照:{\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 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}
     set polar; plot my_function(t), 1 notitle
\end{verbatim}
\postverbatim

以下は、ファイルの各列にタイトルを含む複数列のデータを描画します:
\preverbatim
\begin{verbatim}
     plot for [i=1:4] 'data' using i title columnhead
\end{verbatim}
\postverbatim

\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>}
                       {fill | fs <fillstyle>}
                       {nohidden3d} {nocontours} {nosurface}
                       {palette}}
                  }
\end{verbatim}
\postverbatim


ここで、$<$style$>$ は以下のいずれか:

\preverbatim
\begin{verbatim}
    lines        dots       steps     errorbars     xerrorbar    xyerrorlines
    points       impulses   fsteps    errorlines    xerrorlines  yerrorbars
    linespoints  labels     histeps   financebars   xyerrorbars  yerrorlines
                                      vectors
\end{verbatim}
\postverbatim
または、
\preverbatim
\begin{verbatim}
     boxes            candlesticks   image      circles
     boxerrorbars     filledcurves   rgbimage
     boxxyerrorbars   histograms     rgbalpha   pm3d
\end{verbatim}
\postverbatim

最初のグループのスタイルは、線、点、文字の属性を持ち、第 2 のグループ
のスタイルは、さらに塗り潰し属性も持っています。以下参照: {\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}}。
さらにサブスタイルを持つスタイルもあります。個々のスタイルの詳細につい
ては、以下参照: {\bf plotting styles (p.~\pageref{plotting styles})\index{styles}}。

デフォルトのスタイルは、{\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 w p ps 3} は、デフォルトの
サイズの 3 倍であって、6 倍ではありません。

ラインスタイルの一部分、あるいは各 plot において {\bf pointsize variable}
という指定も可能です。この場合、入力には追加の 1 列が要求されます。例
えば 2D 描画では 3 列、3D 描画では 4 列のデータが必要になります。個々
の点のサイズは、全体を通しての pointsize に、データファイルからの入力
による値をかけたものとして決定されます。

{\bf set style line} を使って線種/線幅、点種/点幅の組を定義すれば、そのス
タイルの番号を $<$line\_style$>$ にセットすることでそれらを使うことができま
す。

gnuplot が {\bf pm3d} をサポートするようにインストールされているならば、
{\bf splots} において lines, points, dots の色を滑らかに変化させるための特
別なキーワード {\bf palette} が使えます。その色は、コマンド {\bf set palette}
であらかじめ設定された滑らかに変化するカラーパレットから選択します。色
の値は、点の z 座標の値か、または {\bf using} で 4 番目のパラメータとして
指定される色座標に対応します。2 次元、3 次元の描画 ({\bf plot} と {\bf splot}
コマンド) の両方で、パレット色を小数値かまたはカラーボックスの範囲へ対
応づけられた値のいずれかで指定することができます。パレット色の値は、
{\bf using} 指定で明示的に指定された入力列から読み込むことも可能です。
以下参照: {\bf colors (p.~\pageref{colors})\index{colors}}, {\bf set palette (p.~\pageref{set palette})\index{palette}}, {\bf linetype (p.~\pageref{linetype})\index{linetype}}。

キーワード {\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 [ ] [-2:5] 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 y1=10
\end{verbatim}
\postverbatim

以下は、x*x の曲線と色の箱を描画します:
\preverbatim
\begin{verbatim}
     plot x*x, (x>=-5 && x<=5 ? 40 : 1/0) with filledcurve y1=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}
\label{commands print}
\label{print}
\index{print}
{\bf print} コマンドは $<$式$>$ の値を画面に表示します。これは {\bf pause 0} と同
じです。$<$式$>$ は、数を生成する {\bf gnuplot} の数式か、または文字列です。

書式:
\preverbatim
\begin{verbatim}
       print <式> {, <式>, ...}
\end{verbatim}
\postverbatim

以下参照: {\bf expressions (p.~\pageref{expressions})\index{expressions}}。出力ファイルは {\bf set print} で設定できます。
\section{Pwd}
\label{commands pwd}
\label{pwd}
\index{pwd}
{\bf pwd} コマンドはカレントディレクトリの名前を画面に表示します。

カレントディレクトリを文字列変数に保存したり、文字式の中で使いたい場合
は、変数 GPVAL\_PWD を使うことができることに注意してください。以下参照:{\bf show variables all (p.~\pageref{show variables all})\index{all}}。これは、{\tt"}{\bf pwd}{\tt"} によるシェル呼び出しよりも優れて
います。
\section{Quit}
\label{commands quit}
\label{quit}
\index{quit}
{\bf exit} と {\bf quit} の両コマンドと END-OF-FILE 文字は、{\bf gnuplot} を終了
させます。これらのコマンドは、出力装置を ({\bf clear} コマンドと同様に)
クリアしてから終了させます。
\section{Raise}
\label{commands raise}
\label{raise}
\index{raise}
書式:
\preverbatim
\begin{verbatim}
     raise {plot_window_nb}
\end{verbatim}
\postverbatim

コマンド {\bf raise} ({\bf lower} の反対) は、{\bf pm}, {\bf win}, {\bf wxt}, {\bf x11} 等の
gnuplot の対話型出力形式の実行中に、描画ウィンドウを上 (前面) に上げま
す。描画ウィンドウを、デスクトップ上のウィンドウマネージャの z 方向の
ウィンドウの重なりの前 (上) に置きます。

{\bf x11} や {\bf wxt} のように複数の描画ウィンドウをサポートしている場合、デ
フォルトではこのコマンドはそれらの複数のウィンドウを降順に上げ、最初に
作られたウィンドウを一番下に、最後に作られたウィンドウを一番上に並べま
す。オプション引数の描画番号が与えられた場合、それに対応する描画ウィン
ドウが存在すればそれのみが上げられます。

オプション引数は、単一の描画ウィンドウの出力形式、すなわち {\bf pm} と
{\bf win} では無視されます。

ウィンドウが X11 で前面に出ない場合、もしかすると描画ウィンドウは、異
なる X11 セッションで動作している (例えば telnet や ssh セッションなど
によって) か、または前面に出すことがウィンドウマネージャの設定によって
防害されている可能性があります。
\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{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 replot} コマンドは {\bf multiplot} モードでは働きません。それは、それが
画面全体にではなく直前のプロットのみを再実行するものだからです。

最後に実行した {\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}}。
\section{Reread}
\label{commands reread}
\label{reread}
\index{reread}
{\bf reread} コマンドは、{\bf load} コマンドまたはコマンドラインで指定した
{\bf gnuplot} のコマンドファイルを、その次のコマンドが読まれる前に、開
始点に再設定します。これは、コマンドファイルの最初から {\bf reread} コマ
ンドまでのコマンドの無限ループを本質的に実装していることになります。
(しかし、これは何も悪いことではありません。{\bf reread} は {\bf if} と組み合
わせることでとても有用なコマンドとなります。詳細は、以下参照: {\bf if (p.~\pageref{if})\index{if}}。)
標準入力からの入力の場合は、{\bf reread} コマンドは何も影響を与えません。

例:

ファイル {\tt"}looper{\tt"} が次のようなファイルで
\preverbatim
\begin{verbatim}
     a=a+1
     plot sin(x*a)
     pause -1
     if(a<5) reread
\end{verbatim}
\postverbatim
そして、{\bf gnuplot} から次のように実行するとします。
\preverbatim
\begin{verbatim}
     a=0
     load 'looper'
\end{verbatim}
\postverbatim
すると、pause のメッセージで分割された 5 回のプロットが行われることに
なります。

ファイル {\tt"}data{\tt"} が、各行に、0 から 10 までの範囲 (yrange) の 6 つのデ
ータ を持ち、最初が x 座標で、その他は 5 つの異なる関数の、その x での
値であるとします。そして、ファイル {\tt"}plotter{\tt"} が
\preverbatim
\begin{verbatim}
     c_p = c_p+1
     plot "$0" using 1:c_p with lines linetype c_p
     if(c_p <  n_p) reread
\end{verbatim}
\postverbatim
で、{\bf gnuplot} から次のように実行するとします。
\preverbatim
\begin{verbatim}
     n_p=6
     c_p=1
     unset key
     set yrange [0:10]
     set multiplot
     call 'plotter' 'data'
     unset multiplot
\end{verbatim}
\postverbatim
すると、5 つのプロットを合わせた 1 つのグラフができます。yrange は、
multiplot モードで最初のものに続けて書かれる 5 つのグラフが、同じ軸を
持つように、明示的に指定する必要があります。線種も指定しなければなりま
せん。さもないと、全てのグラフが同じ線種で書かれることになります。
アニメーションのサンプルとして、demo ディレクトリの animate.dem も参照
してください。

\section{Reset}
\label{commands reset}
\label{reset}
\index{reset}
\label{reset errors}
\label{reset bind}
コマンド {\bf reset} は {\bf set} コマンドで定義できる、グラフに関する全てのオ
プションをデフォルトの値に設定します。このコマンドは、例えばコマンドフ
ァイルの最後にグラフのデフォルトの設定に復帰する、あるいはコマンドファ
イル内でたくさんの設定を行なった場合に元の状態に戻すときなどに便利です。
様々なオプションの取るデフォルトの値を知るには、{\bf set} コマンドの結果を
参照してください。

以下のものは、{\bf reset} の影響を受けません。
\preverbatim
\begin{verbatim}
    `set term` `set output` `set loadpath` `set fontpath`
    `set encoding` `set decimalsign` `set locale`
\end{verbatim}
\postverbatim

\index{error state}
{\bf reset errors} は、エラー状態変数 GPVAL\_ERRNO と GPVAL\_ERRMSG のみをク
リアします。

\index{bind}
{\bf reset bind} は、キー定義をデフォルトの状態に復帰します。
\section{Save}
\label{commands save}
\label{save}
\index{save}
\label{save set}
{\bf save} コマンドは、ユーザ定義関数、変数、{\bf set term} の状態、{\bf set} で設
定する全てのオプションのいずれかか、あるいはこれらすべてと、それに加え
て最後に実行した {\bf plot} (または {\bf splot}) コマンドを、指定したファイル
に保存します。

書式:
\preverbatim
\begin{verbatim}
       save  {<オプション>} '<ファイル名>'
\end{verbatim}
\postverbatim

ここで、$<$オプション$>$ は、{\bf functions}, {\bf variables}, {\bf terminal}, {\bf set}
のいずれかです。どれも指定されなかった場合には、{\bf gnuplot} は、ユーザ定
義関数、変数、set で設定するオプション、最後に実行した {\bf plot} (または
{\bf splot}) コマンドの全てを保存します。

{\bf save} は、テキスト形式で出力します。また、このファイルは {\bf load} コマ
ンドで読み込むことができます。{\bf set} オプション付き、または何もオプショ
ンをつけずに {\bf save} を実行した場合、{\bf terminal} の選択と {\bf output} のフ
ァイル名はコメント記号つきで書き出されます。これはその出力ファイルを
他の環境にインストールされた 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}}。

ファイル名は引用符に囲われていなければなりません。

特別なファイル名 {\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 'var.dat'
     save set 'options.dat'
     save term 'myterm.gnu'
     save '-'
     save '|grep title >t.gp'
\end{verbatim}
\postverbatim
\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 all} でそれら全て
を表示します。

{\bf set} コマンドで変更されたオプションは、それに対応する {\bf unset} コマン
ドを実行することでデフォルトの状態に戻すことができます。以下も参照:{\bf reset (p.~\pageref{reset})\index{reset}}。これは全てのパラメータの設定をデフォルトの値に戻します。

もし変数が日時のデータを含むならば、{\bf show} は、{\bf set timefmt} によって
現在設定されている書式に従って表示します。それは変数が最初に設定されて
いてその書式が効果を持たなかったとしてもです。
\index{iteration}
{\bf set} と {\bf unset} コマンドには繰り返し節も利用できます。以下参照:{\bf iteration (p.~\pageref{iteration})\index{iteration}}。

\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
以下も参照
\par\hskip2.7em\href{http://www.gnuplot.info/demo/poldat.html}{\tt poldat.dem: {\bf set angles} を用いた極座標描画のデモ
}

\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|rto <position>}
               { {arrowstyle | as <arrow_style>}
                 | { {nohead | head | backhead | heads}
                     {size <length>,<angle>{,<backangle>}}
                     {filled | empty | nofilled}
                     {front | back}
                     { {linestyle | ls <line_style>}
                       | {linetype | lt <line_type>}
                         {linewidth | lw <line_width} } } }
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     unset arrow {<tag>}
     show arrow {<tag>}
\end{verbatim}
\postverbatim

タグ $<$tag$>$ は各矢印を識別する整数です。タグを指定しない場合は、その
時点で未使用の最も小さい数が自動的に割り当てられます。タグを使うこと
で、特定の矢印を変更したり、削除したりできます。既に存在する矢印の属性を
変更する場合は、タグを明示した set arrow コマンドで変更箇所を指定して
ください。

$<$position$>$ は  x,y あるいは x,y,z で指定します。そしてその前に座標系を
選択するために {\bf first}, {\bf second}, {\bf graph}, {\bf screen}, {\bf character} を置
くことができます。座標を指定しなければデフォルトでは 0 と見なされます。
矢印の端点は、5 つの座標系、すなわち {\bf first} か {\bf second} の軸、あるい
は {\bf graph}, {\bf screen}, {\bf character} のうちの 1 つを選択して指定できます。
詳細は、以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}}。{\tt"}from{\tt"} の場所の座標系指定子は、{\tt"}to{\tt"}
の場所に影響を及ぼすことはありません。グラフの枠をはみ出る矢印を書くこ
ともできますが、出力端末によってはエラーを生ずることがあります。終点が
{\tt"}to{\tt"} の代わりに {\tt"}rto{\tt"} で指定されている場合、始点からの相対的な位置に描
かれます。この場合、線形軸 (非対数軸)、および {\bf graph}, {\bf screen} 座標に
対しては、始点と終点の距離が与えられた相対的な値に対応します。一方、対
数軸に対しては、与えられた相対的な値は、始点から終点への積因子 (比) に
対応します。よって、対数軸の場合、相対的な値として 0 や負の値を与える
ことは許されません。

{\bf nohead} を指定することで、矢先のない矢、すなわち線分を書くこともでき
ます。これは描画の上に線分を描く別な方法を与えます。デフォルトでは 1
つの矢は 1 つの矢先をその終端に持っています。{\bf backhead} は始点に矢先を
描き、{\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 $<$backangle$>$} は、{\bf filled} か
または {\bf empty} がともに使われた場合のみ効力を持ち、その場合、
{\bf $<$backangle$>$} は矢先の後ろの部分の矢軸との切り角 ({\bf $<$angle$>$} と同じ方向;
単位は度) になります。
出力形式 {\bf fig} は、制限された切り角関数を持っていて、それは 3 つの異な
る形をサポートしていて、それは 2 つの閾値で決定します: 70 度未満の場合、
矢先はへこんだ切り角を持ち、110 度を超える場合、後ろの部分に尖った角を
持ち、その間の角では、矢先の後ろは直線になります。

{\bf filled} を指定すると、塗りつぶされた矢先を作ります ({\bf heads} が使われ
ている場合)。塗りつぶしは、多角形の塗りつぶしが行えるような出力形式で
サポートされていて、そのリストについては、以下参照: {\bf pm3d (p.~\pageref{pm3d})\index{pm3d}}。他の出力形
式では矢先は閉じられますが塗りつぶされません。それと同じ効果 (閉じらる
が塗られない) は、{\bf empty} を指定しても得られます。また、{\bf metafont},
{\bf metapost}, {\bf latex}, {\bf tgif} のように、矢をそれら自身の独自のルーチンで
描くような出力形式では、矢先の塗りつぶしや矢先の枠線描きはもちろんサポ
ートされません。

線種はユーザの定義したラインスタイルのリストから選ぶこともできますし
(以下参照: {\bf set style line (p.~\pageref{set style line})\index{line}})、用意されている $<$line\_type$>$ の値 (デフォ
ルトのラインスタイルのリストの番号) そして $<$linewidth$>$ (デフォルトの幅
の倍数) を使ってここで定義することもできます。

しかし、ユーザー定義済のラインスタイルが選択された場合、その属性 (線種、
幅) は、単に他の {\bf set arrow} コマンドで適当な番号や {\bf lt}, {\bf lw} などを
指定しても、変更はできないことに注意して下さい。

{\bf front} を指定すると、矢はグラフのデータの上に描かれます。{\bf back} が指
定された場合 (デフォルト) は矢はグラフのデータの下に描かれます。{\bf front}
を使えば、密集したデータで矢が見えなくなることを防ぐことができます。

例:

原点から (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

\par\hskip2.7em\href{http://gnuplot.sourceforge.net/demo/arrowstyle.html}{\tt 矢印のデモ
}


\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 したい場合は、そ
の対象でない {\bf plot} にフラグ {\bf noautoscale} をつけることができます。
以下参照: {\bf datafile (p.~\pageref{datafile})\index{datafile}}。

書式:
\preverbatim
\begin{verbatim}
     set autoscale {<axes>{|min|max|fixmin|fixmax|fix} | fix | keepfix}
     unset autoscale {<axes>}
     show autoscale
\end{verbatim}
\postverbatim

ここで、$<$axes$>$ (軸) は {\bf x}, {\bf y}, {\bf z}, {\bf cb}, {\bf x2}, {\bf y2}, {\bf xy} のいずれ
かです。{\bf min} または {\bf max} を軸に追加指定すると ({\bf xy} では使えませんが)
それは {\bf gnuplot} にその軸の最小値、または最大値のみを自動縮尺させるこ
とになります。軸も何も指定されていない場合は全ての軸が対象となります。

{\bf fixmin} や {\bf fixmax} や {\bf fix} を追加指定すると、等間隔の目盛りの自動縮
尺時の、次の目盛り位置までの範囲の自動拡大を gnuplot に行わせないよう
にします。{\bf set autoscale fix} はこれを全ての軸に対して設定します。コマ
ンド {\bf set autoscale keepfix} は、直前の {\bf fix} の設定を維持したまま全て
の軸を自動縮尺にします。

自動縮尺機能を使うときは、描画範囲は自動的に割り出され、従属変数軸
({\bf plot} のときは y 軸、{\bf splot} のときは z 軸) は、関数やデータの値域が
収まるように設定されます。

従属変数軸 (y または z) の自動縮尺機能が指定されていない場合は、現在の
y や z の描画範囲がそのまま使われます。

独立変数軸 ({\bf plot} のときは x 軸、{\bf splot} のときは x,y 軸) の自動縮尺
機能が指定されている場合は、描画される全てのデータファイルの点が収まる
ように定義域をとるようになります。データファイルが 1 つも指定されてい
ない場合は、自動縮尺機能はなんの効果もありません。つまり、関数のみが
指定されていてデーターファイルを使わない場合は、x 軸の描画範囲
(z = f(x,y) を描画しているときは y 軸も) は影響をうけません。

範囲に関するより詳しい情報に関しては、以下参照: {\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。

媒介変数モード (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 の範囲の自動設定を完全に行います。

自動縮尺機能は、極座標モード (polar mode) でも {\bf plot} の媒介変数モード
と同様に機能しますが、極座標モードでは {\bf set dummy} で独立変数を t から
変更するできる (以下参照: {\bf set dummy (p.~\pageref{set dummy})\index{dummy}}) という拡張があります。

目盛りが第二の軸に表示され、しかもこれらの軸に対する描画が行われなかっ
た場合には、x2range と y2range は xrange と yrange の値を受け継ぎます。
これは、xrange と yrange が整数個の目盛り幅に自動縮尺される「前」に行わ
れますので、場合によって予期しない結果をもたらす可能性があります。それ
を避けるために {\bf fixmin}, {\bf fixmax} オプションを使うことができます。

例:

以下は 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{媒介変数モード (parametric)}
\label{commands set autoscale parametric}
\label{set autoscale parametric}
\label{set autoscale t}
媒介変数表示モード ({\bf set parametric}) においては、xrange も yrange と
同様に縮尺を変えることができます。つまり、媒介変数モードにおいては、
x 軸方向も自動的に縮尺が調整され、描こうとしている媒介変数表示の関数が
収まるようになります。もちろん、y 軸方向も媒介変数モードでない時同様に
自動的に縮尺を変えます。x 軸について自動縮尺機能が設定されていない場合
は、現在の x の範囲が使われます。

データファイルは媒介変数モードでもそうでない状態でも同様に描画され
ます。しかし、データファイルと関数が混在している場合には、違いがあ
ります: 媒介変数モードでなければ、x の自動縮尺機能は、関数の範囲を
データの描画範囲に合わせます。しかし媒介変数モードではデータの範囲
は関数の範囲に影響しません。

それには、片手落ちにならないように {\bf set autoscale t} というコマンド
も用意されています。しかしその効果は非常に小さいものです。自動縮尺
機能が設定されていると、{\bf gnuplot} が t の範囲が無くなってしまうと
判断した場合に範囲を少し調整します。自動縮尺機能が設定されていないと
このようなときにはエラーとなります。このような動作は実はあまり意味が
なく、よって {\bf set autoscale t} というコマンドは存在意義に疑問があり
ます。

{\bf splot} では上記の発想の元に拡張されています。自動縮尺機能が設定され
ている場合、x, y, z の各描画範囲は計算結果が収まるように設定され縮尺
調整されます。
\subsubsection{極座標モード (polar)}
\label{commands set autoscale polar}
\label{set autoscale polar}
極座標モード ({\bf set polar}) では、xrange と yrange は極座標から求められ、
それによって自動的に範囲設定がなされます。言いかえると、極座標モードでは
描こうとしている極座標関数が収まるように x 軸、y 軸が自動的に縮尺が調整
されます。

極座標モードで関数を描画する場合、rrange も自動範囲設定されます。データ
ファイルを描画する場合はさらに trange も自動範囲設定がなされます。もし、
trange がある象限 (四分円) に収まるならば、自動縮尺機能によりその象限のみ
の描画が行われることに注意してください。

1 つ、あるいは 2 つの範囲は明示的に設定してその他のものを指定しない場合は
予期しない結果を引き起こすかも知れません。
以下も参照
\par\hskip2.7em\href{http://www.gnuplot.info/demo/poldat.html}{\tt 極座標のデモ。
}

\subsection{Bars}
\label{commands set bars}
\label{commands show bars}
\label{set bars}
\label{show bars}
\label{bars}
\index{bars}
コマンド {\bf set bars} は誤差グラフ (errorbar) の両端のマークの幅を制御し
ます。

書式:
\preverbatim
\begin{verbatim}
     set bars {small | large | fullwidth | <size>} {front | back}
     unset bars
     show bars
\end{verbatim}
\postverbatim

{\bf small} は 0.0, {\bf large} は 1.0 と同じです。サイズを指定しなければデフォ
ルトの値は 1.0 です。

キーワード {\bf fullwidth} は errorbar を伴うヒストグラム (histgrams) にの
み関連します。これは errorbar の両端の幅を、関連するヒストグラムの箱の
幅と同じに設定しますが、箱の幅自体を変更することはありません。

キーワード {\bf front}, {\bf back} は、塗り潰し長方形のついた errorbar のみに
関連します (boxes, candlesticks, histograms)。
\subsection{Bind}
\label{commands show bind}
\label{show bind}
\index{bind}
現在のホットキーの割り当て (binding) を表示します。以下参照: {\bf bind (p.~\pageref{bind})\index{bind}}。
\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}
\label{commands set border}
\label{commands unset border}
\label{commands show border}
\label{set border}
\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} {linewidth | lw <line_width>}
                {{linestyle | ls <line_style>} | {linetype | lt <line_type>}}
     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} の天井面の外枠を制御します。その
{\bf $<$整数$>$} 値は次の表の対応する項目の数字の和になります:


\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 & 効果なし & 天井の右手前  \\
\hline
\end{tabular}
\end{center}

ビットは一つ一つ、あるいはいくつかをまとめて一緒にこのコマンドで付加で
きます。

デフォルトの値は 31 で、これは {\bf plot} では 4 方向の外枠全て、{\bf splot}
では底面の枠線全部と z 軸を描くことを意味します。

2 次元描画では境界はすべての描画要素の一番上に描かれます ({\bf front})。
もし境界を描画要素の下に描かせたい場合は、{\bf set border back} としてくだ
さい。

$<$line\_style$>$, $<$line\_type$>$, $<$line\_width$>$ を指定して、枠線の描画にそれ
らを反映させることができます (現在の出力装置がサポートするものに限定
されます)。

{\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' でも、描画出力
の境界線を書く順番を制御できます。

例:

以下は、デフォルトの枠線を描きます:
\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}
\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 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} スタイルの幅指定用の追加の
データ列の明示的な値があればそれによって置き換えられます。4 列のデータ
の場合、第 4 列目の値が棒の幅として使われます。ただし、その幅が -2.0
の場合には棒の幅は自動計算されます。詳細は、以下参照: {\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

とする、あるいは 4 列のデータに対しては以下のようにします。
\preverbatim
\begin{verbatim}
     set boxwidth -2
\end{verbatim}
\postverbatim

{\bf plot} のキーワード {\bf using} を使っても同じ効果を得ることができます:
\preverbatim
\begin{verbatim}
     plot 'file' using 1:2:3:4:(-2)
\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{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 gnuplot} は、clabel が設定されている時には、各々の等高線のレベルに対
して使う線種を変化させます。このオプションが有効である場合 (デフォ ル
ト)、凡例によって各々の線種を、それが表す z のレベルとともに表示されま
す。

書式:
\preverbatim
\begin{verbatim}
     set clabel {'<format>'}
     unset clabel
     show clabel
\end{verbatim}
\postverbatim

書式文字列のデフォルトは \%8.3g で、小数部分は 3 桁表示されます。もし
key がそのデフォルトの値から変更されていれば、その配置は不十分なもの
になるかもしれません。

最初の等高線の線種、または clabel が無効である場合の唯一つの等高線の
線種は、(曲面の線種 +1) になります。等高線の点は曲面の点と同じものに
なります。

以下参照: {\bf set contour (p.~\pageref{set contour})\index{contour}}。
\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}
\label{noclip}
\index{noclip}
{\bf gnuplot} はグラフの端の辺りのデータ点や線をクリッピングすることができ
ます。

書式:
\preverbatim
\begin{verbatim}
       set clip <clip-type>
       unset clip <clip-type>
       show clip
\end{verbatim}
\postverbatim

{\bf gnuplot} は点や線に対するクリップ型 (clip-type) として、{\bf points},
{\bf one}, {\bf two} の 3 種類をサポートしています。ある描画に対して、これらの
クリップ型は任意の組み合せで設定することができます。{\bf pm3d} の色地図や
カラー曲面で塗りつぶされた四辺形はこのコマンドでは制御できませんが、
{\bf set pm3d clip1in} や {\bf set pm3d clip4in} によって可能であることに注意
してください。

クリップ型 {\bf points} を設定すると、描画領域内にはあるけれど境界線に非
常に近いような点をクリップする (実際には描画しないだけですが) ように
{\bf gnuplot} に指示します。これは点として大きなマークを使用したときに、
そのマークが境界線からはみ出さないようにする効果があります。{\bf points}
をクリップしない場合、境界線の辺りの点が汚く見えるかもしれません。
その場合、x や y の描画範囲 (xrange, yrange) を調整してみて下さい。

クリップ型 {\bf one} を設定すると、一端のみが描画領域にあるような線分も
描画するように {\bf gnuplot} に指示します。この際、描画領域内にある部分
のみが実際に描画される範囲です。設定しなかった場合、このような線分は
描画対象とならず、どの部分も描画されません。

両端は共に描画範囲に無いが描画領域を通過するという線分もあります。
クリップ型 {\bf two} を設定することによって、このような線分の描画領域の
部分を描画することができます。

どのような状況でも、描画範囲の外に線が引かれることはありません。

デフォルトでは、{\bf noclip points}, {\bf clip one}, {\bf noclip two} となって
います。

全てのクリップ型の設定状況を見るには以下のようにします:
\preverbatim
\begin{verbatim}
       show clip
\end{verbatim}
\postverbatim

過去のバージョンとの互換性のため以下の書式も使用可能です:
\preverbatim
\begin{verbatim}
      set clip
      unset clip
\end{verbatim}
\postverbatim

{\bf set clip} は {\bf set clip points} と同義です。{\bf unset clip} は 3 種の
クリップ型全てを無効にします。
\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 { auto {<n>} | <n>
                                | discrete <z1> {,<z2>{,<z3>...}}
                                | incremental <start>, <incr> {,<end>}
                              }
                     }
                   }
     show contour
\end{verbatim}
\postverbatim

このコマンドは 2 つの機能を持っています。一つは等高線上の点 (データ点
の線形補間、あるいは関数の標本化 (isosample) による点) での z の値の設
定で、もう一つは、そのように決定された 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}  ---  等高線のレベルの数は、{\bf auto} (デフォルト), {\bf discrete},
{\bf incremental} と等高線のレベル数 $<$n$>$ で制御します。

{\bf 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 incremental} では、等高線は z = $<$start$>$ から始まり、$<$increment$>$ ずつ
増えて行き限界の個数に達するまで書かれます。$<$end$>$ はその等高線の数を決
定するのに使われますが、これは後の {\bf set cntrparam levels $<$n$>$} によって
常に変更されます。z 軸が対数軸の場合、{\bf set ztics} の場合と同様に、
$<$increment$>$ は積因子として解釈されます。

コマンド {\bf set cntrparam} が引数なしに呼ばれた場合は、次のデフォルトの
値が使われます: linear, 5 points, order 4, 5 auto levels

例:
\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

等高線を描く場所の制御に関しては、以下参照: {\bf set contour (p.~\pageref{set contour})\index{contour}}。等高線のラ
ベルの書式と線種の制御に関しては、以下参照: {\bf set clabel (p.~\pageref{set clabel})\index{clabel}}。

以下も参照してください。
\par\hskip2.7em\href{http://www.gnuplot.info/demo/contours.html}{\tt 等高線のデモ (contours.dem)
}

および
\par\hskip2.7em\href{http://www.gnuplot.info/demo/discrete.html}{\tt ユーザ定義レベルの等高線のデモ (discrete.dem).
}

\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}

色の一覧表、すなわち {\bf pm3d} の {\bf palette} の min\_z から max\_z までの滑
らかな色の勾配は、{\bf unset colorbox} が使われていない限りカラーボックス
(colorbox) に描かれます。

\preverbatim
\begin{verbatim}
     set colorbox
     set colorbox {
                { vertical | horizontal }
                { default | user }
                { origin x, y }
                { size x, y }
                { front | back }
                { noborder | bdefault | border [line style] }
              }
     show colorbox
     unset colorbox
\end{verbatim}
\postverbatim

カラーボックスの位置は、{\bf default} または {\bf user} で指定でき、後者の場合
その位置や大きさを {\bf origin} や {\bf size} コマンドで設定します。カラーボッ
クスは、グラフや曲面の後 ({\bf front}) あるいは先 ({\bf back}) に描画させるこ
ともできます。

色勾配の方向は、オプション {\bf vertical} と {\bf horizontal} で切替えることが
可能です。

{\bf origin x, y} と {\bf size x, y} は {\bf user} オプションとの組でのみ使用され
ます。x, y の値は、デフォルトではスクリーン座標と解釈されますが、これ
は 3 次元描画用のかしこまったオプションに過ぎません。{\bf set view map} に
よる splot を含む 2 次元描画では、任意の座標系での指定が可能です。例え
ば以下を試してみてください:
\preverbatim
\begin{verbatim}
   set colorbox horiz user origin .1,.02 size .8,.04
\end{verbatim}
\postverbatim
これは水平方向の色勾配をグラフの下の辺りに描画します。

{\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 x11 pm3d (p.~\pageref{x11 pm3d})\index{pm3d}}, {\bf set style line (p.~\pageref{set style line})\index{line}}。
\subsection{色名 (colornames)}
\label{colornames}
\index{colornames}
\label{show colornames}
\label{commands show colornames}
\label{show palette colornames}
gnuplot は限定された個数の色の名前を持っています。これらは、pm3d パレ
ットでつながれる色の範囲を定義するのに、あるいは個々の線種やラインスタ
イルの色を出力形式に依存しない形で定義したりするのに使えます。gnuplot
の持つ色名の一覧を見るには、コマンド {\bf show colornames} を使用してくだ
さい。例:

\preverbatim
\begin{verbatim}
     set style line 1 linecolor rgb "sea-green"
\end{verbatim}
\postverbatim
\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{nocontour}
\index{nocontour}
コマンド {\bf set contour} は曲面の等高線を引くことを指示します。このオプ
ションは {\bf splot} でのみ有効です。これは、格子状データ (grid data) を必
要とします。詳細は、以下参照: {\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 clabel (p.~\pageref{set clabel})\index{clabel}}。

等高線のみのグラフを得るために、曲面自身の描画をしないようにすることも
できます (以下参照: {\bf set surface (p.~\pageref{set surface})\index{surface}})。{\bf set size} を使って、グラフを画面
一杯に描画することも可能ですが、そういった出力形式よりも、等高線のデー
タをファイルに書き出し、それを再び 2 次元データとして読み込んで描画す
ればよりよい制御が可能になります:

\preverbatim
\begin{verbatim}
     unset surface
     set contour
     set cntrparam ...
     set table 'filename'
     splot ...
     unset table
     # contour info now in filename
     set term <whatever>
     plot 'filename'
\end{verbatim}
\postverbatim

等高線を描くためには、データは格子状データ ({\tt"}grid data{\tt"}) である必要が
あります。そのようなファイルでは、一つの y-孤立線上の全ての点が順に
並べられていきます。そして隣の y-孤立線上の点が順に並べられ、そして隣、
と続いていきます。y-孤立線同士を分離するには一行の空行 (空白、復帰、改
行以外の文字を含まない行) を挟みます。以下参照: {\bf splot datafile (p.~\pageref{splot datafile})\index{datafile}}。

以下も参照してください。
\par\hskip2.7em\href{http://www.gnuplot.info/demo/contours.html}{\tt 等高線のデモ (contours.dem)
}

および
\par\hskip2.7em\href{http://www.gnuplot.info/demo/discrete.html}{\tt ユーザ定義レベルの等高線のデモ (discrete.dem).
}

\subsection{Data style}
\label{set data style}
このコマンドの形式は現在は推奨されていません。以下参照:{\bf set style data (p.~\pageref{set style data})\index{data}}。
\subsection{Datafile}
\label{set datafile}
\label{show datafile}
コマンド {\bf set datafile} は、{\bf plot}, {\bf splot}, {\bf fit} コマンドで入力デー
タを読む場合に、その列 (field) の解釈の仕方を制御するオプションを持ち
ます。現在は、6 つのそのようなオプションが実装されています。
\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}
\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}
\label{set datafile missing}
\label{show datafile missing}
\label{set missing}
\label{missing}
\index{missing}
コマンド {\bf set datafile missing} は {\bf gnuplot} に、どのような文字列がデ
ータファイル中の欠けたデータ (missing data) を意味するのかを指示します。
実際にその文字列がどのように取り扱われるかは、{\bf plot} や {\bf splot} コマン
ドの {\bf using} 指定子にも依存します。

書式:
\preverbatim
\begin{verbatim}
     set datafile missing {"<string>"}
     show datafile missing
     unset datafile
\end{verbatim}
\postverbatim

例:
\preverbatim
\begin{verbatim}
     # IEEE NaN ("Not a Number") コードを含むエントリを無視する
     set datafile missing "NaN"
\end{verbatim}
\postverbatim

例:
\preverbatim
\begin{verbatim}
     set style data linespoints
     plot '-'
        1 10
        2 20
        3 ?
        4 40
        5 50
        e
     set datafile missing "?"
     plot '-'
        1 10
        2 20
        3 ?
        4 40
        5 50
        e
     plot '-' using 1:2
        1 10
        2 20
        3 ?
        4 40
        5 50
        e
     plot '-' using 1:($2)
        1 10
        2 20
        3 ?
        4 40
        5 50
        e
\end{verbatim}
\postverbatim

最初の {\bf plot} は、{\tt"}3 ?{\tt"} の行では最初のデータのみを認識し、そこでは 1
行に 1 つしかデータがなかった場合の規則が適用され、行番号が {\tt"}x{\tt"} でデー
タが {\tt"}y{\tt"} と見なされ、その点は (2,3) に (この場合は誤って) 描画されます。

2 番目と 3 番目の {\bf plot} コマンドは、真中の行を正しく無視します。描画
される曲線は、(2,20) と (4,40) が結ばれます。

4 番目の {\bf plot} も真中の行を正しく無視しますが、この場合は  (2,20) と
(4,40) は結ばれません。

デフォルトの {\bf missing} 用の文字は何も定義されていませんが、多くの場合
数値が期待されるべき所にそれと認識できない文字が見つかったらそれは欠け
たデータ (missing data) であると見なされます。

\subsubsection{Set datafile separator}
\label{set datafile separator}
\label{show datafile separator}
\label{datafile separator}
\label{separator}
\index{separator}
コマンド {\bf set datafile separator {\tt"}$<$char$>${\tt"}} は、{\bf gnuplot} に、この後の
入力ファイルのデータ列の分離文字が、空白 (whitespace) でなくて $<$char$>$
であると指示します。このコマンドの最も一般的な使用例は、表計算ソフトや
データベースソフトによって作られた csv (コンマ区切り) ファイルを読む時
でしょう。デフォルトのデータ列の分離文字は空白 (whitespace) です。

書式:
\preverbatim
\begin{verbatim}
     set datafile separator {"<char>" | whitespace}
\end{verbatim}
\postverbatim

例:
\preverbatim
\begin{verbatim}
     # タブ区切りのファイルを入力
     set datafile separator "\t"
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     # コンマ区切りのファイルを入力
     set datafile separator ","
\end{verbatim}
\postverbatim
\subsubsection{Set datafile commentschars}
\label{set datafile commentschars}
\label{commentschars}
\index{commentschars}
コマンド {\bf set datafile commentschars} は {\bf gnuplot} に、どの文字がデー
タファイル中のコメントを意味するのかを指示します。gnuplot は、指定され
た文字の中の一つがデータ行の最初の非空白文字として現われた場合、その文
字以下を無視します。

書式:
\preverbatim
\begin{verbatim}
     set datafile commentschars {"<string>"}
     show datafile commentschars
     unset commentschars
\end{verbatim}
\postverbatim

デフォルトの string は、VMS では {\tt"}\#!{\tt"} で、それ以外では {\tt"}\#{\tt"} です。

よって、データファイルの以下の行は完全に無視されます
\preverbatim
\begin{verbatim}
   # 1 2 3 4
\end{verbatim}
\postverbatim
が、以下の行
\preverbatim
\begin{verbatim}
   1 # 3 4
\end{verbatim}
\postverbatim
は、もし
\preverbatim
\begin{verbatim}
   set datafile missing '#'
\end{verbatim}
\postverbatim
が指定されていなければ、予期せぬ結果を生じます。

例:
\preverbatim
\begin{verbatim}
     set datafile commentschars "#!%"
\end{verbatim}
\postverbatim
\subsubsection{Set datafile binary}
\label{set datafile binary}
コマンド {\bf set datafile binary} は、データファイルの読み込み時にバイナ
リファイルをデフォルトと設定するのに使われます。書式は、それが {\bf plot}
または {\bf splot} コマンドで使われるのと正確に同じです。$<$binary list$>$
に関しては、詳しくは、以下参照: {\bf binary (p.~\pageref{binary})\index{binary}}。

書式:
\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{Decimalsign}
\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}
\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}
コマンド {\bf set dgrid3d} は、非格子状データから格子状データへの写像機能を
有効にし、そのためのパラメータを設定します。格子状データの構造について
の詳細は、以下参照: {\bf splot grid\_data (p.~\pageref{splot grid_data})\index{grid data}}。

書式:
\preverbatim
\begin{verbatim}
     set dgrid3d {<rows>} {,{<cols>}}
                 { splines |
                   qnorm {<norm>} |
                   (gauss | cauchy | exp | box | hann) {<dx>} {,dy} }
     unset dgrid3d
     show dgrid3d
\end{verbatim}
\postverbatim

デフォルトでは {\bf dgrid3d} は無効になっています。有効になると、ファイル
から読み込まれる 3 次元のデータは「散在した」データ (非格子状データ)
であると見なされます。格子は、グラフと等高線の描画のために、散在したデ
ータを囲む矩形から得られる寸法と、row\_size/col\_size で指定される数の行
と列を持つように生成されます。格子は x 方向 (行) と y 方向 (列) に等間
隔です。z の値は散在するデータの z の値の重み付きの平均、またはスプラ
イン補間として計算されます。言い変えれば、規則的な間隔の格子が生成され、
全ての格子点で元のデータの滑かな近似値が評価されます。元のデータではな
く、この近似値のみが描画されます。

デフォルトの列の数は行の数に等しく、そのデフォルトの値は 10 です。

元のデータから近似値を計算するためのいくつかのアルゴリズムが用意されて
いて、追加のパラメータを指定できるものもあります。これらの補間は、格子
点に近いデータ点ほど、その格子点に対してより強い影響を与えます。

{\bf splines} アルゴリズムは、{\tt"}薄いつぎ板{\tt"} を元にした補間計算を行います。
これは追加パラメータを取りません。

{\bf qnorm} アルゴリズムは各格子点で入力データの重み付き平均を計算します。
各点は格子点からの距離の norm 乗の逆数で重み付けされます。(実際には、
dx, dy を各データ点と格子点との差の成分であるとすると、重みは dx\verb+^+norm
+ dy\verb+^+norm で与えられます。2 のべきのノルム、特に 4, 8, 16 に関しては、
その重みの計算はユークリッド距離を使うことで (dx\verb+^+2+dy\verb+^+2)\verb+^+norm/2 のよう
に最適化されてますが、任意の負でない整数を使うことも可能です。) ノルム
のべきの値をただ一つの追加パラメータとして指定できます。このアルゴリズ
ムがデフォルトになっています。

最後に、重み付き平均の計算用に、いくつかの平滑化重み付け関数 (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(2*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 qnorm} アルゴリズムが仮定され、
3 つ以下の、コンマ (,) 区切りのオプションパラメータを指定した場合は、
それらをそれぞれ行数、列数、そして norm 値であると解釈します。

オプション {\bf dgrid3d} は、散在するデータを重み付き平均で規則的な格子に
置き変える単純な仕組みに過ぎません。この問題に対するより洗練された手法
が存在しますので、この単純な方法が不十分であれば、{\bf gnuplot} の外でその
ような方法でデータを前処理するべきでしょう。

以下も参照
\par\hskip2.7em\href{http://www.gnuplot.info/demo/dgrid3d.html}{\tt dgrid3d.dem: dgrid3d のデモ
}

および
\par\hskip2.7em\href{http://www.gnuplot.info/demo/scatter.html}{\tt scatter.dem: dgrid3d のデモ
}


\subsection{Dummy}
\label{commands set dummy}
\label{commands show dummy}
\label{set dummy}
\label{show 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

このコマンドでは、少なくとも一つの仮変数が設定される必要があります。
{\bf set dummy} だけだとエラーメッセージが表示されます。

例:
\preverbatim
\begin{verbatim}
     set dummy u,v
     set dummy ,s
\end{verbatim}
\postverbatim

第二の例は、2 番目の変数を s とします。
\subsection{Encoding}
\label{commands set encoding}
\label{commands show encoding}
\label{set encoding}
\label{show encoding}
\label{encoding}
\index{encoding}
\label{encodings}
\index{encodings}
\index{UTF 8}
コマンド {\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  - 多くの Unix ワークステーションや MS-Windows で使用可
                能な最も一般的な西ヨーロッパエンコード。このエンコー
                ドは 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 のコードページ
  cp1250      - 中央/東ヨーロッパの MS Windows のコードページ
  cp1251      - ロシア、セルビア、ブルガリア、マケドニア語 (8 ビット)
  cp1254      - トルコの MS Windows のコードページ (Latin5 の拡張)
  utf8        - 各文字の Unicode エントリポイントの、可変長 (マルチバ
                イト) 表現
\end{verbatim}
\postverbatim

コマンド {\bf set encoding locale} は、他のオプションとは違い、これは現在
のロカールを実行時の環境から決定しようとします。たいていのシステムでは
これは環境変数 LC\_ALL, LC\_CTYPE, LANG のいずれかによって制御されます。
この仕組みは、例えば wxt, cairopdf 出力形式で、UTF-8 や EUC-JP のよう
なマルチバイト文字エンコードを通すために必要です。このコマンドは日付や
数字などのロカール特有の表現には影響を与えません。
以下も参照: {\bf set locale (p.~\pageref{set locale})\index{locale}}, {\bf set decimalsign (p.~\pageref{set decimalsign})\index{decimalsign}}。

一般に、エンコードの設定は出力形式の設定の前に行なう必要があります。こ
のエンコードはどんな出力形式でもサポートされているとは限らず、そして出
力形式は要求されたどんな非標準文字も生成できなければいけません。
\subsection{Fit}
\label{commands set fit}
\label{commands show fit}
\label{set fit}
\label{show fit}
{\bf fit} の設定は、コマンド {\bf fit} がその出力を行うファイルを定義します。
使用している gnuplot が使えるように作られていれば、このコマンドは当て
はめのパラメータ誤差を変数に書き出すかどうかも制御できます。

書式:
\preverbatim
\begin{verbatim}
     set fit {logfile {"<filename>"}} {{no}errorvariables}
     unset fit
     show fit
\end{verbatim}
\postverbatim

引数 $<$filename$>$ は、単一引用符か二重引用符で囲む必要があります。

ファイル名を指定しなかった場合、または {\bf unset fit} を使用した場合は、
ログファイルはデフォルトの値である {\tt"}fit.log{\tt"}、または環境変数 {\bf FIT\_LOG}
の値にリセットされます。

与えられたログファイル名が / か $\backslash$ で終っている場合、それはディレクトリ
名と解釈され、ログファイルはそのディレクトリの {\tt"}fit.log{\tt"} となります。

オプション {\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 'a=%6.2f', a, '+/- %6.2f', a_err
      plot 'datafile' using 1:2, f(x)
\end{verbatim}
\postverbatim
\subsection{Fontpath}
\label{commands set fontpath}
\label{commands show fontpath}
\label{set fontpath}
\label{show fontpath}
\label{fontpath}
\index{fontpath}
{\bf fontpath} の設定は、フォントファイルを読み込む場合のファイルの検索パ
スを追加定義します。今のところ、postscript 出力形式のみが {\bf fontpath}
をサポートしています。ファイルが現在のディレクトリに見つからなかった場
合、{\bf fontpath} のディレクトリが検索されます。サポートしているフォント
ファイルの形式に関するより詳しい説明は {\bf terminal postscript} セクショ
ンの文書中にあります。

書式:
\preverbatim
\begin{verbatim}
     set fontpath {"pathlist1" {"pathlist2"...}}
     show fontpath
\end{verbatim}
\postverbatim

パス名は単一のディレクトリ名、または複数のパス名のリストとして入力しま
す。複数のパスからなるパスリストは OS 固有のパス区切り、例えば Unix で
はコロン (':'), MS-DOS, Windows, OS/2, Amiga ではセミコロン (';') 等で
区切ります。{\bf show fontpath}, {\bf save}, {\bf save set} コマンドは、可搬性のた
めに OS 固有のパス区切りをスペース (' ') で置き換えます。ディレクトリ
名がエクスクラメーションマーク ('!') で終っている場合、そのディレクト
リのサブディレクトリも検索されます。

環境変数 GNUPLOT\_FONTPATH が設定されている場合、その内容は {\bf fontpath}
に追加されますが、それが設定されていない場合システムに依存したデフォル
トの値が使用されます。最初にフォントパスを使ったときに、その幾つかのデ
ィレクトリが存在するかテストされ、セットされます。よって、一番最初の
{\bf set fontpath}, {\bf show fontpath}, {\bf save fontpath} や、埋め込みフォント
を使用した場合の {\bf plot}, {\bf splot} は、少し時間がかかります。それを少し
でも短くしたければ、環境変数 GNUPLOT\_FONTPATH を設定してください。そう
すればディレクトリのチェックは OFF になります。デフォルトのフォントパ
スが何であるかは、{\bf show fontpath} で見ることができます。

しかし、{\bf show fontpath} は、ユーザ定義の fontpath と環境変数によるシス
テム fontpath を別々に表示しますし、{\bf save}, {\bf save set} コマンドは、可
搬性の目的のためにユーザ定義の {\bf fontpath} のみを保存します。

gd ライブラリを通じて TrueType フォントにアクセスできる出力ドライバも
たくさんあります。これらのドライバに対するフォントの検索パスは、環境変
数 GDFONTPATH で制御されます。
\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} で書式を設定できます。

書式:
\preverbatim
\begin{verbatim}
     set format {<axes>} {"<format-string>"}
     set format {<axes>} {'<format-string>'}
     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"}\% g{\tt"} ですが、、{\tt"}\%.2f{\tt"} や {\tt"}\%3.0em{\tt"} などの書式が好まれることも
多いでしょう。。LaTeX 用にはよく {\tt"}\$\%g\${\tt"} が好まれます。書式文字列を何も
与えない場合は、format はデフォルトに戻ります。空文字列 {\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}}。
以下も参照。
\par\hskip2.7em\href{http://www.gnuplot.info/demo/electron.html}{\tt エレクトロン (電子) デモ (electron.dem).
}

\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)}
\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@%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@%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)}
\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}
日時データモード (time/date mode) では、次の書式が使用できます:


\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@ & その年の通算日 (1--366) \\
\verb@%m@ & 月 (01--12) \\
\verb@%M@ & 分 (0--60) \\
\verb@%p@ & "am" または "pm" \\
\verb@%r@ & \verb@"%I:%M:%S %p"@ の簡略形 (出力のみ)\\
\verb@%R@ & \verb@"%H:%M"@ の簡略形 (出力のみ)\\
\verb@%S@ & 秒 (0--60) \\
\verb@%s@ & 2000 年最初からの秒数 \\
\verb@%T@ & \verb@"%H:%M:%S"@ の簡略形 (出力のみ)\\
\verb@%U@ & その年の通算週 (週は日曜日からと数える) \\
\verb@%w@ & 曜日番号 (0--6, 日曜 = 0) \\
\verb@%W@ & その年の通算週 (週は月曜日からと数える) \\
\verb@%y@ & 西暦 (0-99、1969-2068 年の下 2 桁) \\
\verb@%Y@ & 西暦 (4 桁) \\
\hline
\end{tabular}
\end{center}

数字を表す書式では、これらの指定子 (\% の後ろ、指定子の前) に {\tt"}0{\tt"}
({\tt"}オー{\tt"} でなく {\tt"}ゼロ{\tt"}) をつけることで、先頭に空白ができる場合に空白の
代わりに 0 で埋めることができ、また最小の出力幅を正の整数で指定するこ
ともできます (出力される数字を表示するのに指定した幅が足りない場合は無
視されます)。表示する文字の長さは 24 文字まで、という制限があり、長す
ぎた部分は切り捨てられます。

例:

日時のデータが {\tt"}76/12/25 23:11:11{\tt"} の場合
\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"
\end{verbatim}
\postverbatim

日時のデータが {\tt"}98/07/06 05:04:03{\tt"} の場合
\preverbatim
\begin{verbatim}
     set format x "%1y/%2m/%3d %01H:%02M:%03S"  # "98/ 7/  6 5:04:003"
\end{verbatim}
\postverbatim
\subsection{Function style}
\label{set function style}
このコマンドの形式は現在は推奨されていません。以下参照:{\bf set style function (p.~\pageref{set style function})\index{function}}。
\subsection{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}}。
以下も参照
\par\hskip2.7em\href{http://www.gnuplot.info/demo/spline.html}{\tt ユーザ定義関数でのスプライン (spline.dem)
}

および
\par\hskip2.7em\href{http://www.gnuplot.info/demo/airfoil.html}{\tt 関数と複素変数を翼に使用 (airfoil.dem)。
}

\subsection{Grid}
\label{commands set grid}
\label{commands unset grid}
\label{commands show grid}
\label{set grid}
\label{unset grid}
\label{show grid}
\label{grid}
\index{grid}
\label{nogrid}
\index{nogrid}
コマンド {\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}cbtics}
              {polar {<angle>}}
              {layerdefault | front | back}
              { {linestyle <major_linestyle>}
                | {linetype | lt <major_linetype>}
                  {linewidth | lw <major_linewidth>}
                { , {linestyle | ls <minor_linestyle>}
                    | {linetype | lt <minor_linetype>}
                      {linewidth | lw <minor_linewidth>} } }
     unset grid
     show grid
\end{verbatim}
\postverbatim

格子線は任意の軸の任意の主目盛/副目盛に対して有効/無効にでき、その主目
盛りと副目盛りに対する線種、線幅も指定でき、現在の出力装置がサポートす
る範囲で、あらかじめ定義したラインスタイルを使用することもできます。

さらに、2 次元の描画では極座標格子も使うことができます。定義可能な区間
に対して、選択された目盛りを通る同心円と中心からの放射状の線が描かれま
す (その区間は {\bf set angles} の設定にしたがって度、またはラジアンで指定
します)。極座標格子は現在は極座標モードでは自動的には生成されないこと
に注意してください。

{\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}}) にも影響を及ぼします。

z の格子線は描画の底面に描かれます。これは描画の周りに部分的な箱が描画
されている場合にはいいでしょう。以下参照: {\bf set border (p.~\pageref{set border})\index{border}}。
\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}) は機能しません。

見出しと矢印は常に表示され、影響を受けません。グラフの説明 (key) も曲
面に隠されることはありません。gnuplot バージョン 4.5 では、グラフ上に
曲面が一つもない状態でも、hidden3d は {\bf points}, {\bf labels}, {\bf vectors},
{\bf impulses} の 3 次元の描画スタイルに影響を与えます。グラフ内の各々の描
画をこの処理から明示的に除外したいときは、{\bf with} 指定に特別のオプショ
ン {\bf nohidden3d} を追加してください。

hidden3d は、pm3d モードで描画された、塗り潰された曲面には影響を与えま
せん。pm3d の曲面に対して同様の効果を純粋に得たいならば、これの代わり
に {\bf set pm3d depthorder} を使ってください。複数の pm3d 曲面に通常の
{\bf hidden3d} 処理を組み合わせるには、hidden3d 処理の全ての要素を強制的に
残りの他の描画要素の後に描画するためのオプション {\bf set hidden3d front}
を使用し、そして曲面を 2 度描画してください。最初は {\bf with lines lt -2}
で、2 度目は {\bf with 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} を選択してください。
以下も参照
\par\hskip2.7em\href{http://www.gnuplot.info/demo/hidden.html}{\tt 隠線処理のデモ (hidden.dem)
}

および
\par\hskip2.7em\href{http://www.gnuplot.info/demo/singulr.html}{\tt 複雑な隠線のデモ (singulr.dem).
}

\subsection{Historysize}
\label{commands set historysize}
\label{set historysize}
\label{unset historysize}
\label{historysize}
\index{historysize}
\label{nohistorysize}
\index{nohistorysize}
注意: コマンド {\bf set historysize} は、gnuplot が GNU readline ライブラ
リを使うように configure された場合のみ有効です。

書式:
\preverbatim
\begin{verbatim}
     set historysize <int>
     unset historysize
\end{verbatim}
\postverbatim

historysize の値は、gnuplot の終了時に history の行を高々その行数まで
に切り捨てるために使われます。デフォルトは 500 です。
{\bf unset historysize} は history の切捨てを無効にしますので、history フ
ァイルに書き出す行数の制限をしません。
\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{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} は描画された曲線の説明や表題を表示することを可能に
します。

説明 (key) の内容、すなわち描画される個々のデータ集合や関数につける名
前、およびそれらグラフの曲線とグラフ上の点を表す記号からなるサンプルは、
{\bf plot} (または {\bf splot}) コマンドの {\bf title}, {\bf with} オプションにより決
定されます。より詳しい情報については、以下参照: {\bf plot title (p.~\pageref{plot title})\index{title}},{\bf plot with (p.~\pageref{plot with})\index{with}}。

書式:
\preverbatim
\begin{verbatim}
     set key {on|off} {default}
             {{inside | outside} | {lmargin | rmargin | tmargin | bmargin}
               | {at <position>}}
             {left | right | center} {top | bottom | center}
             {vertical | horizontal} {Left | Right}
             {{no}reverse} {{no}invert}
             {samplen <sample_length>} {spacing <vertical_spacing>}
             {width <width_increment>}
             {height <height_increment>}
             {{no}autotitles {columnheader}}
             {title "<text>"} {{no}enhanced}
             {font "<face>,<size>"} {textcolor <colorspec>}
             {{no}box { {linestyle | ls <line_style>}
                        | {linetype | lt <line_type>}
                          {linewidth | lw <line_width>}}}
             {maxcols {<max no. of columns> | auto}}
             {maxrows {<max no. of rows> | auto}}
     unset key
     show key
\end{verbatim}
\postverbatim

キー (説明) は、グラフ内の各描画に対するタイトルとサンプル (凡例; 線、
点、箱) から成ります。キーの機能は、{\bf set key off} または {\bf unset key}
で無効にできます。個々のキーのエントリは、対応する plot コマンド内にキ
ーワード {\bf notitle} を使うことで無効にできます。

キー内の各要素は {\bf vertical} (縦) または {\bf horizontal} (横) に従って重ね
られます。{\bf vertical} の場合、key は可能ならば 2,3 個の縦の列を使います。
すなわち、各要素は垂直スペースがなくなるまでは 1 つの列に整列されます
が、そこから新しい列が開始されます。垂直スペースは、{\bf maxrows} を使って
制限できます。{\bf horizontal} の場合は、key は横の行をできるだけ少なく使
おうとします。水平方向のスペースは {\bf maxcols} により制限できます。

デフォルトでは、key はグラフ領域の内側の右上の角に置かれます。キーワー
ド {\bf left}, {\bf right}, {\bf top}, {\bf bottom}, {\bf center}, {\bf inside}, {\bf outside},
{\bf lmargin}, {\bf rmargin}, {\bf tmargin}, {\bf bmargin} (, {\bf above}, {\bf over}, {\bf below},
{\bf under}) は、グラフ領域の他の場所への自動的な配置のために使用します。
key の描画をどこに置くかをより詳しく指示するための {\bf at $<$position$>$} も
あります。この場合、キーワード {\bf left}, {\bf right}, {\bf top}, {\bf bottom},
{\bf center} が同様の基準点合わせの設定の目的で使われます。
より詳しくは、以下参照: {\bf key placement (p.~\pageref{key placement})\index{placement}}。

グラフのタイトルの行揃えは {\bf Left}, {\bf Right} (デフォルト) で指示し
ます。ラベル文字列と曲線のサンプルは左右入れ替えることができます
({\bf reverse}) し、 全体を枠で囲むこともできます ({\bf box \{...\}})。その枠の
線は、線種 ({\bf linetype}), 線幅 ({\bf linewidth})、あるいは定義済のラインス
タイル ({\bf linestyle}) を指定することもできます。

デフォルトでは最初の描画のラベルが説明の一番上に現われ、それに続くラベ
ルがその下に並んで行きます。オプション {\bf invert} は、最初のラベルを説明
の一番下に置き、それに続くラベルをその上に並べて行きます。このオプショ
ンは、説明のラベルの縦の並びの順番を、積み上げ形式のヒストグラム
({\bf histograms}) の箱の順番に合わせるときに便利でしょう。

$<$height\_increment$>$ は、説明の箱の高さに加えたり減らしたりする高さ (何
文字分か) を表す数値です。これは主に、説明の回りに箱を描く場合で、説明
の並びの回りの境界線をより大きくしたい場合のものです。

{\bf plot} や {\bf splot} で描画される全ての曲線は、デフォルトのオプション
{\bf autotitles} に従って表題 (title) がつけられます。表題の自動生成は、
{\bf noautotaitle} で抑制できますがその場合、{\bf (s)plot ... title ...} で明
示的に指定された表題のみが描かれることになります。

\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 title {\tt"}$<$text$>${\tt"}})。単
一引用符 (') と二重引用符 ({\tt"}) の違いについては、以下も参照: {\bf syntax (p.~\pageref{syntax})\index{syntax}}。
説明の表題の行揃えは、グラフの表題の行揃えと同じものが使われます。

{\bf set key} のデフォルトは、{\bf on},  {\bf right}, {\bf top}, {\bf vertical}, {\bf Right},
{\bf noreverse}, {\bf noinvert}, {\bf samplen 4}, {\bf spacing 1.25}, {\bf title {\tt"}{\tt"}},
{\bf nobox} です。説明の枠の線種はデフォルトではグラフ描画の外枠と同じもの
が使われます。{\bf set key default} とするとデフォルトの設定に戻ります。

説明は、1 行に 1 曲線分ずつの数行のまとまりとして書かれます。各行の右
側には ({\bf reverse} を使っていれば左側には) その曲線と同じ種類の直線のサ
ンプルが引かれ、他の側には {\bf plot} コマンドから得られる文字列 (title)
が置かれます。これらの行は、架空の直線が説明の左側と右側を分けるかのよ
うに垂直に整列されます。コマンド {\bf set key} で指定する座標はこの架空の
線分の上の端の座標です。{\bf plot} では直線の位置を指定するために x と y
だけが使われ、{\bf splot} では、x, y, z の値全てを使い、グラフを 2 次元面
へ投影するのと同じ方法を使って、架空の直線の 2 次元画面での位置を生成
します。

TeX, PostScript, またはこれらと同等の、整形情報が文字列に埋め込まれる
出力を使う場合は、{\bf gnuplot} は説明の位置合わせのための文字列の幅を
正しく計算できません。よって説明を左に置く場合は
{\bf set key left Left reverse} という組合せを使うのがいいでしょう。そうす
れば説明の枠と枠内のすき間は文字列そのままの幅に合わせられます。

{\bf splot} で等高線を書く場合、説明には等高線のラベルも表示されます。
これらのラベルの並び具合がうまくいかない、または別な位置に小数点を
置きたい場合はそのラベルの書式を指定できます。詳細は、以下参照:{\bf set clabel (p.~\pageref{set clabel})\index{clabel}}。

例:

以下はデフォルトの位置に説明を表示します:
\preverbatim
\begin{verbatim}
     set key default
\end{verbatim}
\postverbatim

以下は説明を表示しなくします:
\preverbatim
\begin{verbatim}
     unset key
\end{verbatim}
\postverbatim

以下はデフォルトの (第一の) 座標系での (2,3.5,2) の位置に説明を表示
します:
\preverbatim
\begin{verbatim}
     set key at 2,3.5,2
\end{verbatim}
\postverbatim

以下は説明をグラフの下に表示します:
\preverbatim
\begin{verbatim}
     set key below
\end{verbatim}
\postverbatim

以下は説明を左下角に表示し、テキストは左に行揃えで、タイトルをつけ、線種 3 の外枠を書きます:
\preverbatim
\begin{verbatim}
     set key left bottom Left title 'Legend' box 3
\end{verbatim}
\postverbatim
\subsubsection{キーの配置 (key placement)}
\label{commands set key placement}
\label{set key placement}
\label{key placement}
配置の仕組みを理解ための最も重要な概念は、グラフ領域、すなわち内か外か
ということと、グラフ領域の境界との間の余白 (margin) を考えることです。
グラフ領域に沿って、キーワード {\bf left/center/right} (l/c/r) と
{\bf top/center/bottom} (t/c/b) は、key をその領域の内側のどこに置くかを制
御します。

モード {\bf inside} では、key はキーワード {\bf left} (l), {\bf right} (r), {\bf top}
(t), {\bf bottom} (b), {\bf center} (c) によって以下の図のように描画領域の境界に向かって出力されます:

\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


モード {\bf outside} でも上と同様に自動的に配置されますが、グラフ領域の境
界に対して、というよりもむしろ見た目に対して、というべきでしょう。すな
わち、グラフの境界は、グラフ領域の外の key の場所を作るために、内側に
移動することになります。しかし、これは他のラベルの邪魔をしますし、もし
かしたら出力デバイスによってはエラーを引き起こすかもしれません。key の
出力に合わせてどの描画境界が移動するかは、上に述べた key の位置、およ
び重ね上げの方向に依存します。4 方向の中心揃えのオプション ({\bf center})
に関しては、どの境界が動くのかに関するあいまいさはありませんが、角への
出力のオプションについては、重ね上げ方向が {\bf vertical} の場合は左または
右の境界が、{\bf horizontal} の場合は上または下の境界が、それぞれ内側に適
切に移動します。

余白 (margin) の書き方は、重ね上げの方向にかかわない自動的な配置を可能
にしています。{\bf lmargin} (lm), {\bf rmargin} (rm), {\bf tmargin} (tm),
{\bf bmargin} (bm) のうちの一つを、矛盾しない 1 方向のキーワードと組み合わ
せて使用した場合、以下の図に示した場所に key が配置されます:

\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


キーワード {\bf above} と {\bf over} は {\bf tmargin} と同じ意味です。以前のバージョンとの互換性のために、{\bf above} と {\bf over} は l/c/r や重ね上げ方向のキーワードなしで使用すると、{\bf center} で {\bf horizontal} を使います。キーワ
ード {\bf below} と {\bf under} は {\bf bmargin} と同じ意味です。互換性のために、
{\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} は key が $<$position$>$ の右に置かれて左
合わせで出力されます。他の場合も同様です。
\subsubsection{キーの凡例 (key samples)}
\label{commands set key samples}
\label{set key samples}
\label{key samples}
デフォルトでは、グラフ上の各描画はキー内にそれぞれに対応するエントリを
生成します。このエントリには、描画タイトルと、その描画で使われるのと同
じ色、同じ塗りつぶし属性による線/点/箱 のサンプルが入ります。font と
textcolor 属性は、キー内に現われる個々の描画タイトルの見た目を制御しま
す。textcolor を {\tt"}rgb variable{\tt"} にセットすると、キーの各エントリの文字
列は、描画グラフの線や塗りつぶし色と同じ色になります。これは、以前のある時期の gnuplot のデフォルトの挙動でした。

グラフ曲線のサンプルの線分の長さは {\bf samplen} で指定できます。その長さ
は目盛りの長さと、$<$sample\_length$>$*(文字幅) の和として計算されます。
{\bf sapmlen} は、グラフ上の点のサンプルの位置にも (もしサンプル線分自身が
書かれなくても) 影響を与えています。それは、点の記号はサンプル線分の中
央に書かれるためです。

行間の垂直スペースは、{\bf spacing} で指定できます。その幅は、点のサイズ
(pointsize) と垂直な目盛りのサイズと $<$vertical\_spacing$>$ の積になります。
この垂直スペースは、文字の高さよりも小さくはならないことが保証されてい
ます。

$<$width\_increment$>$ は、文字列の長さに加えたり減らしたりする幅 (何文字分
か) を表す数値です。これは、説明に外枠を書き、文字列に制御文字を使う場
合にだけ有用でしょう。{\bf gnuplot} は外枠の幅を計算するときは、ラベル文字
列の文字数を単純に数えるだけなので、それを修正するのに使えます。
\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>}
     unset label {<tag>}
     show label
\end{verbatim}
\postverbatim

位置 ($<$position$>$) は x,y か x,y,z のどちらかで指定し、座標系を選択する
にはその座標の前に {\bf first}, {\bf second}, {\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 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>` は、色見本 (colorbar) の <val> の色になります。
  `tc palette fraction <val>` (0<=val<=1) は、[0:1] から `palette` の
      灰色階調/カラーへの写像に対応した色になります。
  `tc rgb "#RRGGBB"` は、任意の 24-bit RGB 色を選択します。
\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}}。

EEPIC, Imagen, LaTeX, TPIC で出力する場合は、$\backslash$$\backslash$ を使うことで見出しを
改行させることができます。

ラベルの座標と文字列もデータファイルから読み込むことができます (以下参照: {\bf labels (p.~\pageref{labels})\index{labels}})。

例:

(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

\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}
\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, Amiga ではセミコロン (';') 等で
区切ります。{\bf show loadpath}, {\bf save}, {\bf save set} コマンドは、可搬性のた
めに OS 固有のパス区切りをスペース (' ') で置き換えます。

環境変数 GNUPLOT\_LIB が設定されている場合、その内容は {\bf loadpath} に追
加されますが、{\bf show loadpath} は、ユーザ定義の loadpath と環境変数によ
るシステム loadpath を別々に表示しますし、{\bf save}, {\bf save set} コマンド
は、可搬性の目的のためにユーザ定義の {\bf loadpath} のみを保存します。
\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}
\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} の任意の順序の
組み合せが可能です。また、$<$base$>$ は、対数スケールの底です。$<$base$>$ が指
定されなかった場合は 10 になります。もし、$<$axes$>$ が指定されなかった場
合は、全部が指定されたことになります。コマンド {\bf unset logscale} は、指
定した軸の対数スケールを解除します。

例:

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}
\label{commands set macros}
\label{commands show macros}
\label{set macros}
\label{show macros}
これによりコマンドラインのマクロ置換機能を有効にすると、コマンドライン
内の @$<$stringvariablename$>$ の形式の部分文字列は、文字列変数
$<$stringvariablename$>$ に含まれるテキスト文字列に置き換えられます。以下参照: {\bf substitution (p.~\pageref{substitution})\index{substitution}}。

書式:
\preverbatim
\begin{verbatim}
    set macros
\end{verbatim}
\postverbatim

\subsection{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} では何もしません。
\par\hskip2.7em\href{http://www.gnuplot.info/demo/world.html}{\tt world.dem: mapping のデモ。
}

\subsection{Margin}
\label{commands set margin}
\label{commands show margin}
\label{set margin}
\label{show margin}
\label{margin}
\index{margin}
自動的に計算される周囲の余白 (margin) はコマンド {\bf set margin} で変更で
きます。{\bf show margin} は現在の設定を表示します。

書式:
\preverbatim
\begin{verbatim}
     set bmargin {{at screen} <margin>}
     set lmargin {{at screen} <margin>}
     set rmargin {{at screen} <margin>}
     set tmargin {{at screen} <margin>}
     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{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} はマウス機能を有効にします。現在、pm, x11, ggi,
windows, wxt の各出力ドライバがマウス拡張されています。2 種類のマウス
モードがあります。2 次元グラフモードは、2 次元グラフ、または地図型表示
(すなわち、z の回転角が 0, 90, 180, 270, 360 度の {\bf set view} での
splot、および {\bf set view map}) で動作し、グラフ上の位置の追跡、拡大表示、
グラフの注釈づけ等を可能にします。{\bf splot} による 3 次元グラフに対して
は、グラフの視方向 (view) と縮尺の変更が、それぞれマウスボタン 1 と 2
(によるドラッグ) で行えます。これらのボタンにさらに $<$ctrl$>$ キーを押す
と、座標軸のみが回転されますが、これは大きなデータに対して有用でしょう。
ボタン 2 の垂直方向のドラッグを shift キーと同時に行うと、z 軸の一番下
の位置 ({\bf xyplane}) を上下します。

マウスは多重描画 (multiplot) モードでは無効ですが、{\bf unset multiplot}
で多重描画が終了すれば、マウス機能は ON になり、直前の描画 (ほぼ
replot で描画されるもの) に対して作用します。

書式:
\preverbatim
\begin{verbatim}
     set mouse {doubleclick <ms>} {nodoubleclick} \
               {{no}zoomcoordinates} \
               {noruler | ruler {at x,y}} \
               {polardistance{deg|tan} | nopolardistance} \
               {format <string>} \
               {clipboardformat <int>/<string>} \
               {mouseformat <int>/<string>} \
               {{no}labels {"labeloptions"}} \
               {{no}zoomjump} {{no}verbose}
     unset mouse
\end{verbatim}
\postverbatim

ダブルクリックの解像度はミリ秒 (ms) 単位で与えます。これは、ボタン 1
用のもので、現在のマウス位置をクリップボード ({\bf clipboard}) にコピーす
るのに使います。シングルクリックでそれを行うようにするには、0 ms を指
定してください。デフォルトの値は 300 ms です。

オプション {\bf zoomcoordinates} は、拡大 (zoom) の時に、ズームの枠の端に
その座標を書くかどうかを決定し、デフォルトでは ON になっています。

オプション {\bf noruler} と {\bf ruler} は、定規 (ruler) 機能を off, on にしま
す。{\bf ruler} には座標を与えて原点を設定することもできます。{\bf ruler} が
on の間、ruler の原点からマウスまでのユーザ単位での距離が連続的に表示
されます。デフォルトでは、ruler のトグルスイッチは 'r' にキー割り当て
されています。

オプション {\bf polardistance} は、マウスカーソルから定規 (ruler) までの距
離を極座標でも表示 (距離、および角度または傾き) するかどうかを決定しま
す。これはデフォルトのキー割り当て '5' に対応します。

オプション {\bf format} は、fprintf と似た書式文字列で、ドライバウィンドウ
とクリップボード上で実数をどのように表示するかを決定します。デフォルト
は {\tt"}\% \#g{\tt"} です。

{\bf clipboardformat} と {\bf mouseformat} は、ボタン 1 とボタン 2 の作用時
(座標をクリップボードへコピー、マウス位置に一時的に注釈をつける) の文
字列の書式用に使われます。これは、キー割り当て '1', '2', '3', '4' に対
応します (ドライバのマニュアル参照)。引数が文字列の場合、その文字列は
C 言語の書式で、2 つの実数の指定子を含んでいる必要があります。例:
{\bf set mouse mouseformat {\tt"}mouse = \%5.2g, \%10.2f{\tt"}}。この文字列を再び OFF
にするには {\bf set mouse mouseformat {\tt"}{\tt"}} としてください。

以下の書式が組み込まれています (書式 6 は書式文字列が既に指定されている場合のみ使用可):

\preverbatim
\begin{verbatim}
0   カッコ内に実際の座標           例: [1.23, 2.45]
1   カッコ無に実際の座標           例:  1.23, 2.45
2   x == 時間書式 (timefmt)            [(`set timefmt` の設定), 2.45]
3   x == 日付                          [31. 12. 1999, 2.45]
4   x == 時刻                          [23:59, 2.45]
5   x == 日付 / 時刻                   [31. 12. 1999 23:59, 2.45]
6   文字列で与えられた代替書式         ""
\end{verbatim}
\postverbatim

\index{labels}
ボタン 2 の gnuplot の永続的なラベルを定義するには、オプション
{\bf labels} を使用します。デフォルトは {\bf nolabels} で、ボタン 2 は単に一時
的なラベルをマウス位置に描画します。ラベルは現在の {\bf mouseformat} の設
定に従って書かれます。{\bf labeloptions} 文字列は、コマンド {\bf set label} コ
マンドに渡されます。そのデフォルトは {\tt"}point pointstyle 1{\tt"} で、これはラ
ベル位置に小さいプラス ({\bf +}) を描画します。一時的なラベルは、その次の
{\bf replot}、またはマウスズーム操作では現れません。永続的なラベルは、ラベ
ルの点の上で Ctrl キーを押してボタン 2 をクリックすることで消すことが
できます。実際のラベルの位置にどれ位近くでクリックしなければいけないか
の閾値も {\bf pointsize} で決定されます。

オプション {\bf zoomjump} が ON の場合、ボタン 3 によるズーム領域の選択を
開始すると、マウスポインタは自動的に少しだけずれた位置に移動します。
これは、ごく小さい (または空でさえある) ズーム領域を選択してしまうこと
を避けるのに便利でしょう。デフォルトでは {\bf zoomjump} は OFF です。

オプション {\bf verbose} が ON の場合、実行時の報告コマンドが表示されます。
このオプションはドライバウィンドウ上で {\bf 6} を打つことで ON/OFF がスイ
ッチできます。デフォルトでは {\bf verbose} は OFF になっています。

ドライバウィンドウ上で 'h' を打つと、マウスとキー割当の短い説明が表示
されます。これは、ユーザ定義のキー割当、すなわち {\bf bind} コマンドによる
{\bf hotkeys} (以下参照: {\bf bind (p.~\pageref{bind})\index{bind}}) も表示されます。ユーザ定義の {\bf hotkeys} は
デフォルトのキー割当を無効にします。

ドライバウィンドウ上で 'q' を打つと、ウィンドウを閉じます。このキーは
{\bf bind} コマンドでは無効にできません。

以下も参照: {\bf bind (p.~\pageref{bind})\index{bind}}, {\bf label (p.~\pageref{label})\index{label}}。
\subsubsection{X11 でのマウス (X11 mouse)}
\label{mouse x11_mouse}
\label{x11_mouse}
\index{x11 mouse}
\label{x11 mouse}
x11 の出力形式のオプション {\bf set term x11 $<$n$>$} を使って複数の X11 描画
ウィンドウが開いている場合、マウスコマンドとホットキーの機能をちゃんと
使えるのは現在の描画ウィンドウのみです。しかし、他のウィンドウも左下に
マウスの座標を表示位はしてくれるでしょう。

他のスクリーン出力形式との統一性も考え、X11 でのマウスサポートは、標準
入力がどこからであっても、デフォルトで ON になります。しかし、UNIX 風
の OS の中には、/dev/null のような特殊な入力デバイスを選択してはいけな
いものがあり、そのようなデバイスでマウスを ON にすると gnuplot がハン
グアップしてしまうことがあります。このような状況では、{\bf unset mouse} で
マウス機能を OFF にしてください。
\subsection{Multiplot}
\label{commands set multiplot}
\label{commands unset multiplot}
\label{set multiplot}
\label{unset multiplot}
\label{multiplot}
\index{multiplot}
\label{nomultiplot}
\index{nomultiplot}
コマンド {\bf set multiplot} は {\bf gnuplot} を多重描画モードにします。これ
は複数の描画を同じページ、ウィンドウ、スクリーンに表示するものです。

書式:
\preverbatim
\begin{verbatim}
     set multiplot { layout <rows>,<cols>
                     {rowsfirst|columnsfirst} {downwards|upwards}
                     {title <page title>}
                     {scale <xscale>{,<yscale>}} {offset <xoff>{,<yoff>}}
                   }
     unset multiplot
\end{verbatim}
\postverbatim

出力形式 (terminal) によっては、コマンド {\bf unset multiplot} が与えられ
るまで何の描画も表示されないことがあります。この場合このコマンドにより
ページ全体の描画が行なわれ、gnuplot は標準の単一描画モードになります。
それ以外の出力形式では、各 {\bf plot} コマンドがそれぞれ表示を更新しますが、それは、それまで出力したものすべてを再描画し、それに新しいものを追加する方法、あるいは、現在の表示に単に新しいものを追加するだけのやり方、のいずれかです。

次の描画で使われる領域は、新しい描画が行われる前に消されることはありま
せんから、描画を {\tt"}挿入{\tt"} するような場合などでそうしたいなら、{\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 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 となります。

以下も参照
\par\hskip2.7em\href{http://gnuplot.sourceforge.net/demo/multiplt.html}{\tt multiplot のデモ (multiplt.dem)
}

\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}
\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> | default}
     unset mxtics
     show mxtics
\end{verbatim}
\postverbatim

これらの書式は {\bf mytics}, {\bf mztics}, {\bf mx2tics}, {\bf my2tics}, {\bf mcbtics} に
対しても同じです。

$<$freq$>$ は大目盛り間の、小目盛りによって分割される区間の数 (小目盛りの
数ではありません) です。通常の線形軸に対してはデフォルトの値は 2 か 5
で、これは大目盛りによって変化します。よって大目盛り間に 1 つ、または
4 つの小目盛りが入ることになります。{\bf default} を指定することによって小
目盛りの数はデフォルトの値に戻ります。

軸が対数軸である場合、分割区間の数はデフォルトでは有意な数にセットされ
ます (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}}。
\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}
\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}
\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{Object}
\label{object}
\index{object}
\label{commands set object}
\label{commands show object}
\label{set object}
\label{show object}
コマンド {\bf set object} は、その後の 2 次元描画すべてに表われる単一のオ
ブジェクトを定義します。オブジェクトはいくつでも定義できます。オブジェ
クトの型は、現在は {\bf rectangle} (長方形)、{\bf circle} (円)、{\bf ellipse}
(楕円) をサポートしています。長方形は、コマンド {\bf set style rectangle}
によって設定されたスタイルの属性の組 (塗り潰し、色、境界) をデフォルト
として受け継ぎますが、個々のオジェクトを別々のスタイル属性で描画するこ
とももちろん可能です。円と楕円は、{\bf set style fill} による塗り潰しスタ
イルを受け継ぎます。

書式:
\preverbatim
\begin{verbatim}
   set object <index>
       <object-type> <object-properties>
       {front|back|behind} {fc|fillcolor <colorspec>} {fs <fillstyle>}
       {default} {lw|linewidth <width>}
\end{verbatim}
\postverbatim

$<$object-type$>$ は、{\bf rectangle}, {\bf ellipse}, {\bf circle}, {\bf polygon} のいずれ
かです。個々のオブジェクトの型は、その型に特有の性質もいくつか持ってい
ます。

{\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
は、グラフやページ全体の背景に色をつけるのに利用できます。

オブジェクトの塗り潰しの色は $<$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}
\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}
\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>}
       {<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) は、水平軸と楕円の最初の軸との間の角度で指定します。
注意: x 軸と y 軸の縮尺が等しくない場合、回転後の主軸と副軸の比は正し
くはなりません。これは、gnuplot の今後の版で修正されるでしょう。

{\bf set object ellipse size $<$2r$>$,$<$2r$>$} と {\bf set object circle $<$r$>$} とは、
一般には同じことにはならないことに注意してください。circle の半径は常
に x 軸の単位で計られ、よって x 軸と y 軸の縮尺が違ったり、描画のアス
ペクト比が 1 でなくても、常に円が生成されます。{\bf set object ellipse} で
は、最初の '2r' は x 軸の単位で、後ろの '2r' は y 軸の単位で計られます
ので、こちらは x 軸と y 軸の縮尺が同じで、かつ描画のアスペクト比が 1
である場合のみ円が生成されることになります。

\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>]}
       {<other-object-properties>}
\end{verbatim}
\postverbatim

円の位置は、中心を指定し、その後ろに半径を指定します。キーワード {\bf at}
と {\bf center} は同じ意味です。その位置と半径には、x 軸の座標、グラフ領域
内の相対座標 ({\bf graph})、スクリーン座標 ({\bf screen}) のいずれかを使用でき
ます (以下参照: {\bf coordinates (p.~\pageref{coordinates})\index{coordinates}})。そのいずれの場合でも、半径は軸、グラフ、
スクリーンの水平方向の縮尺に対して計られ、水平方向と垂直方向の縮尺にず
れがあっても、結果が常に正しく円になるように直されます。

デフォルトでは、完全な円が描画されます。オプションの {\bf arc} に開始角と
終了角を度を単位として指定すると円弧を描画します。円弧は、常に反時計回
りに描かれます。

\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

多角形の位置は、頂点の位置の列を与えることで指定できます。それらは、軸
の座標 ({\bf first}, {\bf second})、グラフ領域内の相対座標 ({\bf graph})、スクリー
ン座標 ({\bf screen}) のいずれかを使用できます。相対的な座標 (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

\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}
オフセットは、自動縮尺されたグラフの中のデータの周りに空の境界を置く仕
組みを提供します。オフセットは、x1,y1 軸と 2 次元の {\bf plot} コマンドの
みで意味を持ちます。

書式:
\preverbatim
\begin{verbatim}
     set offsets <left>, <right>, <top>, <bottom>
     unset offsets
     show offsets
\end{verbatim}
\postverbatim

各オフセットは定数、または数式が使え、それらのデフォルトの値は 0 です。
デフォルトでは、左右のオフセットは x1 軸と同じ単位で指定し、上下のオフ
セットは y1 軸と同じ単位で指定しますが、キーワード {\tt"}graph{\tt"} を用いるこ
とで軸の全範囲に対する割合としてオフセットを指定することもできます。正
のオフセットの値は、軸の範囲を指定された方向へ伸ばします。例えば正の下
方向のオフセットは y の最小値をより小さな値にします。許されている範囲
での負のオフセットは、自動縮尺、あるいはクリッピングとの思いもよらぬ結
果を生む可能性があります。自動縮尺機能から軸の範囲の調節を守りたい場合
は、{\tt"}set auto fix{\tt"} も指定するといいでしょう。

例:
\preverbatim
\begin{verbatim}
     set auto fix
     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}
\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}
\label{commands set output}
\label{commands show output}
\label{set output}
\label{show output}
\label{output}
\index{output}
\label{output file}
デフォルトでは、グラフは標準出力に表示されます。コマンド {\bf set output} は
その出力を指定されたファイルやデバイスにリダイレクトします。

書式:
\preverbatim
\begin{verbatim}
     set output {"<filename>"}
     show output
\end{verbatim}
\postverbatim

ファイル名は引用符で囲まなければなりません。ファイル名が省略された場合
は、直前の {\bf set output} で開かれたファイルがクローズされ、新たな出力が
標準出力 (STDOUT) に送られます。(もし、{\bf set output {\tt"}STDOUT{\tt"}} とすると
出力は {\tt"}STDOUT{\tt"} という名前のファイルに送られるかもしれません ! [{\tt"}かも
しれない{\tt"} というのは、例えば {\bf x11} や {\bf wxt} などの terminal (出力形式)
では {\bf set output} が無視されるからです。])

{\bf set terminal} と {\bf set output} の両方を指定する場合、{\bf set terminal} を
先に指定する方が安全です。それは、ある種の terminal では、OS が必要と
するフラグをセットすることがあるからです。例えば、OS がファイルを開く
ときに (礼儀良く) ファイルがフォーマットされているかどうかを知る必要が
あるような OS などがそれ該当します。

popen 関数を持つようなマシン (Unix 等) では、ファイル名の最初を '$|$' と
することにより、出力をシェルコマンドにパイプで渡すことが可能です。例え
ば以下の通りです:

\preverbatim
\begin{verbatim}
     set output "|lpr -Plaser filename"
     set output "|lp -dlaser filename"
\end{verbatim}
\postverbatim

MS-DOS では、{\bf set output {\tt"}PRN{\tt"}} とすると標準のプリンタに出力されます。
VMS では出力は任意のスプール可能なデバイスに送ることが出来ます。出力を
DECnet 透過なタスクに送ることも可能で、それはある種の柔軟性を与えてく
れます。
\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 paramaetric} コマンドは {\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{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{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
アルゴリズムを用いていて、これはデータが格子状であっても、データ走査毎
に点の数が違っているような非格子状のデータであっても、前処理することな
く描画できます。

カラー曲面の描画は、{\bf palette} で指定した色割当による多角形の塗りつぶし
をサポートしている出力形式で行えます。現在サポートしている出力形式には
以下のものが含まれます。

\preverbatim
\begin{verbatim}
 画像出力ドライバ:
   OS/2 Presentation Manager
   X11
   Linux VGA (vgagl)
   GGI
   Windows
   AquaTerm (Mac OS X)
   wxWidgets (wxt)
 画像ファイル出力ドライバ:
   PostScript
   pslatex, pstex, epslatex
   gif, png, jpeg
   (x)fig
   tgif
   cgm
   pdf
   svg
   emf
\end{verbatim}
\postverbatim

まず、地図/曲面がどのように描かれるのかについて記述します。入力データ
は、関数を評価して得られるかまたは {\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}}。

3. pm3d の色づけを 3 次元曲面ではなく 2 次元描画に使うには、
{\bf set view map} か {\bf set pm3d map} を使用してください。

書式 (オプションは任意の順で与えることができます):
\preverbatim
\begin{verbatim}
     set pm3d
     set pm3d {
                { at <bst combination> }
                { interpolate <steps/points in scan, between scans> }
                { scansautomatic | scansforward | scansbackward | depthorder }
                { flush { begin | center | end } }
                { ftriangles | noftriangles }
                { clip1in | clip4in }
                { corners2color { mean|geomean|median|min|max|c1|c2|c3|c4 } }
                { hidden3d <linestyle> | nohidden3d }
                { implicit | explicit }
                { map }
              }
     show pm3d
     unset pm3d
\end{verbatim}
\postverbatim

データまたは関数の描画スタイル ({\bf style}) がグローバルに、または {\bf with}
オプションで pm3d に設定されている場合、色付きの曲面が描画されます。
オプション {\bf implicit} が有効になっている場合、pm3d の曲面は線分による
曲面の網目による表示も一緒に行なわれます。詳しいことは、この節の下の方
をご覧ください。

色の曲面は底面か天井 (この場合は灰色/カラーの平面地図) か曲面上の点の
z 座標 (灰色/カラー曲面) に描くことができます。その選択は、オプション
{\bf at} に、{\bf b}, {\bf t}, {\bf s} の 6 つまでの組合せの文字列をつけて指定すること
で行えます。例えば {\bf at b} は底面のみに描画しますし、{\bf at st} は最初に曲
面に描いて次に天井面に色地図を描きますし、{\bf at bstbst} は ... 真面目な
話、こんなものは使いません。

塗られた四辺形は、次から次へと描画されて行きます。曲面を描画する場合
({\bf at s})、後の四辺形が前のものに重なり (上書きし) ます (gnuplot は塗ら
れた多角形の網の重なりの相互作用を計算するような仮想現実ツールではあり
ません)。 最初に走査されるデータを最初に描くか最後に描くかを切替えるス
イッチオプション {\bf scansforward} と {\bf scansbackward} を試してみてくださ
い。デフォルトは {\bf scansautomatic} で、これは gnuplot 自身に走査の順を
推測させます。一方で、オプション {\bf depthorder} は四辺形の順序を完全に再
構成します。塗りつぶしは深さ順に並び変えされた後で行われ、これによりか
なり複雑な曲面でも視覚的なものにすることができます。詳細は、以下参照:{\bf pm3d depthorder (p.~\pageref{pm3d depthorder})\index{depthorder}}。

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}
は指示します。これは滑らかな色地図の境界を描くのに使われます。

四辺形の x,y 座標に関するクリッピングは 2 つの方法で行われます。
{\bf clip1in}: 各四辺形の全ての 4 点が定義されていなければならず、少なくと
もそのうちの 1 点が x, y の範囲におさまっていなければなりません。
{\bf clip4in}: 各四辺形の全ての 4 点が x, y の範囲におさまっていなければな
りません。

描画される各 pm3d 四辺形には一つの灰色/カラー値が対応します (4 頂点間
で滑らかなカラー変化は起こりません)。その値は、{\bf corners2color $<$option$>$}
に従って周囲の角の z 座標から計算されます。$<$option$>$ は 'mean' (デフォ
ルト)、'geomean', '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 色しかない長方形が生成されます。

与えられた節点に対して、その周りの 4 つの節点の平均化された (x,y) 座標
から角を得て四辺形を作って、その四辺形を節点の色で塗る、といったような
他の描画アルゴリズムが将来実装されるかもしれません。
これは、イメージの描画 (2 次元の格子) に対しては {\bf image} と {\bf rgbimage}
スタイルによって既に行なわれています。

z の値の範囲と曲面の色の値の範囲は、z と cb に関する {\bf set log} 同様、
{\bf set zrange} と {\bf set cbrange} によって独立に調整し得ることに注意して
ください。色地図は cb 軸のみで調節されます。以下も参照: {\bf set view map (p.~\pageref{set view map})\index{map}},{\bf set colorbox (p.~\pageref{set colorbox})\index{colorbox}}。

オプション {\bf hidden3d} は、線種 (linestyle) を引数に取りますが、それは
{\bf set style line ...} で生成しなければなりません (その線種は pm3d の設
定時には存在している必要はありませんが、描画時には必要です)。これが設
定されると、線は隠線処理を考慮に入れながら、指定された線種で描画されま
す。これは、{\bf set hidden3d} コマンドを使うよりもはるかに効果的で、これ
は実際に隠線処理を計算することはしませんが、塗りつぶされた多角形を正し
い順序で描いて行きます。よって、pm3d を使う場合のお勧めの選択は以下の通りです:
\preverbatim
\begin{verbatim}
     set pm3d at s hidden3d 100
     set style line 100 lt 5 lw 0.5
     unset hidden3d
     unset surf
     splot x*x+y*y
\end{verbatim}
\postverbatim

従来、このコマンドに \{transparent$|$solid\} のオプションが用意されていま
したが、現在はそれらはそれぞれ {\bf set grid \{front$|$layerdefault\}} で行な
うことができます。

{\bf set pm3d map} は {\bf set pm3d at b}; {\bf set view map}; {\bf set style data pm3d};
{\bf set style func pm3d}; を省略したものです。これは、{\bf set view map} がな
かったころの旧バージョンへの互換性のためのものです。入力データ点をフィ
ルタするための {\bf zrange}、および色の範囲の変更用の {\bf cbrange} を注意して
適切に使用してください。{\bf set (no)surface} も 効果 (副作用 ?) があるよ
うです。

オプション {\bf interpolate m,n} は、格子点をより細かな網目に補間し、色四
角形も近似的に補間します。データ描画に対しては、これは曲面の色の変化を
滑らかにし、曲面の色の尖りを補正します。関数描画に対しては、この補間は
細かさの代わりにメモリを消費してしまう、といったことくらいの意味しかあ
りませんから、関数描画の場合は普通 {\bf samples} や {\bf isosamples} を使うべ
きでしょう。正の m, n に対しては、各四辺形、または三角形は、それぞれの
方向に m 回、n 回補間されます。負の m, n では補間の頻度は、少なくとも
$|$m$|$, $|$n$|$ 点が描画されるように選択されます。これは特別な格子関数と見な
すことができます。0 の場合、すなわち {\bf interpolate 0,0} は、自動的に最
適な補間曲面点数を選択します。

色づけの設定はカラーボックスの描画と同様に {\bf set palette} で決定されま
す。一つの描画では一つのパレットのみが存在し得ます。いくつもの曲面を
異なるパレットで描画するには、{\bf origin} と {\bf size} を固定して {\bf mutiplot}
を使うことで行えます。出力ドライバが利用できる色を使い尽くしてしまう場
合には {\bf set palette maxcolors} を使うことを忘れずに。

gnuplot の起動時はモードは {\bf explicit} になっています。歴史的な、よって
互換性のために、コマンド {\bf set pm3d;} (すなわちオプションを指定しない場
合) と {\bf set pm3d at X ...} (すなわち {\bf at} が最初のオプションの場合) は
モードを {\bf implicit} に設定します。{\bf set pm3d;} はさらにその他のオプショ
ンをデフォルトの値に設定します。

オプション {\bf implicit} が ON の場合、全ての曲面の描画が追加的にデフォル
トの型で行われます。例えば
\preverbatim
\begin{verbatim}
     splot 'fred.dat' with lines, 'lola.dat' with lines
\end{verbatim}
\postverbatim
は、両方の描画 (網目の曲面) を追加的に pm3d 曲面に描きます。{\bf set 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 曲面とし
て描かれます。

デフォルトのデータ/関数の描画スタイルを {\bf pm3d} にしたい場合は、例えば
\preverbatim
\begin{verbatim}
     set style data pm3d
\end{verbatim}
\postverbatim
とします。この場合、オプション {\bf implicit} と {\bf explicit} は効力を持ちま
せん。

いくつかの描画においては、それらはコマンドラインで与えられた順に描画さ
れることに注意してください。これは特に、以前の描画を上書きしてそれで一部を隠してしまう可能性がある、曲面の塗りつぶしに関して関心を持たれることです。

{\bf splot} コマンドライン上で {\bf with pm3d} が指定されている場合はオプショ
ン {\bf at} も使えます。以下の描画は、異なった高さで 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 x11 pm3d (p.~\pageref{x11 pm3d})\index{pm3d}}。
そしてもちろんデモファイル {\bf demo/pm3d.dem} も参考になるでしょう。
\subsubsection{Depthorder}
\label{commands set pm3d depthorder}
\label{set pm3d depthorder}
\label{pm3d depthorder}
\label{depthorder}
\index{depthorder}
デフォルトでは、pm3d の塗り潰し曲面を構成する四角形は、それらが曲面の
格子点に沿って出会う順番に塗り潰されます。この順番は、オプション
{\bf scansautomatic}$|${\bf scansforward}$|${\bf scansbackward} で制御できます。これら
の走査 (scan) オプションは、一般には隠面処理とは両立しません。

gnuplot は、曲面の塗り潰しにおいては、本当の隠面処理は行いませんが、た
いていは遠い方から近い方へ順に四角形要素を塗り潰すことで十分なできあが
りになります。このモードは、以下のオプションを使うことで選択できます:
\preverbatim
\begin{verbatim}
     set pm3d depthorder hidden3d
\end{verbatim}
\postverbatim
オプション {\bf depthorder} は塗り潰し四角形への指示で、オプション
{\bf hidden3d} は同様に境界線 (もし描くなら) への指示です。大域的なオプシ
ョンである {\bf set hidden3d} は、pm3d 曲面には影響しないことに注意してく
ださい。
\subsection{Palette}
\label{commands set palette}
\label{commands show palette}
\label{set palette}
\label{show palette}
\label{palette}
\index{palette}
パレットは、{\bf pm3d} で、カラー等高線や多角形、カラーヒストグラム、色勾
配の背景、その他実装されている、あるいは実装されるものの塗りつぶしで使
われる、色の記憶場所です。ここではそれは滑らかで {\tt"}連続的な{\tt"} カラーや灰
色階調のパレットを意味しますが、それを単にパレットと呼ぶことにします。

カラーパレットは、多角形の色の塗りつぶしと滑らかな色のパレットをサポー
トした出力形式を必要とし、それは現在、{\bf pm3d} で一覧表示される出力形式
で使用可能です。色の値の範囲は、{\bf set cbrange} と {\bf set log cb} で独立に
調整可能です。カラーパレット全体は {\bf colorbox} 中に表示されます。

書式:
\preverbatim
\begin{verbatim}
     set palette
     set palette {
                { gray | color }
                { gamma <gamma> }
                {   rgbformulae <r>,<g>,<b>
                  | defined { ( <gray1> <color1> {, <grayN> <colorN>}... ) }
                  | file '<filename>' {datafile-modifiers}
                  | functions <R>,<G>,<B>
                }
                { model { RGB | HSV | CMY | YIQ | XYZ } }
                { positive | negative }
                { nops_allcF | ps_allcF }
                { maxcolors <maxcolors> }
              }
     show palette
     show palette palette <n> {{float | int}}
     show palette gradient
     show palette fit2rgbformulae
     show palette rgbformulae
     show colornames
\end{verbatim}
\postverbatim

{\bf set palette} は (すなわちオプションなしでは) デフォルトの値を設定しま
す。それ以外の場合、オプションは任意の順に与えることができます。
{\bf show palette} は、現在のパレットの属性を表示します。

{\bf show palette gradient} は、パレットの勾配 (gradient) の定義が (それが
適切であれば) 表示されます。{\bf show palette rgbformulae} は、定義済で利
用できる、灰色値からカラーへの変換公式が表示されます。
{\bf show colornames} は、認識できる色名を表示します。

{\bf show palette palette $<$n$>$} は、$<$n$>$ 個の離散的な色を持つパレットの、現
在のパレットの設定によって計算される RGB の値の組とパレットの表を、画
面、または {\bf set print} で指定されたファイルに書き出します。デフォルト
の広い表は、追加のオプション float または int によって、3 列の [0..1]
の実数値だけにするか [0..255] の整数値だけにするかをそれぞれ指定できま
す。この方法で gnuplot のカラーパレットを、Octave のような他の画像アプ
リケーションに渡すことができます。このようなテキスト形式の RGB の一覧
表に加え、{\bf test palette} コマンドにより、現在のパレットの R,G,B の状態
を描画させることもできます。

以下のオプションは、色付けの属性を決定します。

このパレットを使用する図は、{\bf gray} か {\bf color} になります。例えば、
{\bf pm3d} カラー曲面では、範囲 [min\_z,max\_z] が灰色の範囲 [0:1] に対応し
ていて、微小曲面四辺形の 4 つの角の z 座標の平均値をこの範囲の中に対応
させることで各微小部分の灰色の値 (gray) が得られます。この値は、灰色階
調の色地図での灰色の値として直接使うことができますし、カラーの色地図で
は、その灰色の値から (R,G,B) への変換、すなわち [0:1] から
([0:1],[0:1],[0:1]) への写像が使われます。

基本的に、2 種類の異なる写像方式が利用可能です: 1 つは灰色からカラーへ
の解析的な公式、もう一つは離散的な対応表の補間によるものです。
{\bf palette rgbformulae} と {\bf palette functions} が解析的な公式用で、
{\bf palette defined} と {\bf palette file} が補間表用です。{\bf palette rgbformulae}
は postscript 出力のサイズを小さくすることができます。

コマンド {\bf show palette fit2rgbformulae} は、現在の {\bf set palette} に最
も良く対応する {\bf set palette rgbformulae} を見つけ出します。当然、それ
は rgbformulae パレット以外に対しても意味を持ちます。このコマンドは主
に、パレットの rgbformulae 定義が gnuplot と同じ物を使っている外部プロ
グラム、例えば zimg などにとって有用です (
\par\hskip2.7em\href{http://zimg.sourceforge.net}{\tt           http://zimg.sourceforge.net
}

)。

{\bf set palette gray} は、灰色階調のみのパレットにし、
{\bf set palette rgbformulae}, {\bf set palette defined}, {\bf set palette file},
{\bf set palette functions} はカラーパレットにします。灰色パレットから直前
のカラーパレットへ、{\bf set palette color} で簡単に復帰できます。

{\bf set palette gamma $<$gamma$>$} による自動的なガンマ補正は、灰色のパレット
({\bf set palette gray}) のみに行われます。灰色階調への線形写像は gamma=1
に相当します (以下参照: {\bf test palette (p.~\pageref{test palette})\index{palette}})。カラーパレットに対してはガン
マ値は無視されます。

ほとんどの出力形式は、有限個の色数しかサポートしていません (例えば gif
では 256 個)。デフォルトでは、パレットは、gnuplot のデフォルトの線種の
色の宣言の後に残ったものが全て pm3d 用に割り当てられます。よって、出力
形式が利用できる色の場所がなくなってしまった場合、{\bf multiplot} は失敗し
てしまうでしょう。その場合、{\bf set palette maxcolors $<$maxcolors$>$} で適当
に小さい値を設定すべきです。このオプションは、z=定数の高低を離散個に分
割し、よって等高線の疑似的な塗りつぶしを行うことにも使えます。デフォル
トの値は 0 で、これは出力形式のパレットの残りの全てを割り当てる、ある
いは正確な RGB への対応を使用することを意味します。

RGB 色空間が作業を行うのに常にもっとも有用な色空間であるとは限らない、
という理由で、色空間は {\bf model} を使うことで、{\bf RGB}, {\bf HSV}, {\bf CMY},
{\bf YIQ}, {\bf XYZ} のいずれかに変更できます。RGB 以外の色空間では{\bf set palette defined} の表で色名を使うと、それはおかしな色になります。
全ての説明は RGB 色空間用に書いてありますが、それぞれの色空間で、例え
ば {\bf R} は {\bf H}, {\bf C}, {\bf Y}, {\bf X} のことを意味することに注意してください
({\bf G}, {\bf B} も同様)。

全ての色空間で、全ての値は [0,1] に制限されています。

RGB は赤、緑、青を、CMY は水色 (Cyan)、紫 (Magenta)、黄 (Yellow) を、
HSV は色相 (Hue)、彩度 (Saturation)、明度 (Value) をそれぞれ意味します。
YIQ は 全米商業カラーテレビ放送協会 (the U.S. Commercial Color
Television Broadcasting) の使ったカラーモデルで、RGB 記録方式を元にし
ていますが、白黒テレビに対する後方互換性を持っています。XYZ は CIE
('Commission Internationale de l'Eclairage'; 国際照明委員会) が定義し
た色モデルの 3 つの原刺激値です。
色モデルのより詳しい情報については以下を参照してください:
\par\hskip2.7em\href{http://en.wikipedia.org/wiki/Color_space}{\tt           http://en.wikipedia.org/wiki/Color\_space
}


\subsubsection{Rgbformulae}
\label{commands set palette rgbformulae}
\label{set palette rgbformulae}
\label{palette rgbformulae}
\label{rgbformulae}
\index{rgbformulae}
\index{colors}
{\bf rgbformulae} 用には 3 つの適切な割り当て関数が選ばれる必要があります。
この選択は {\bf rgbformulae $<$r$>$,$<$g$>$,$<$b$>$} を通して行われます。使うことがで
きる割り当て関数の一覧は {\bf show palette rgbformulae} で見ることができま
す。デフォルトは {\bf 7,5,15} で、他の例としては {\bf 3,11,6}, {\bf 21,23,3},
{\bf 3,23,21} などがあります。{\bf 3,-11,-6} のような負の値は、逆のカラーを意
味します (すなわち、1-gray をその関数に代入します。下記の以下参照:オプション {\bf positive (p.~\pageref{positive})\index{positive}}, {\bf negative (p.~\pageref{negative})\index{negative}})。

RGB の色空間では、いくつかの良い割り当て公式があります:
\preverbatim
\begin{verbatim}
  7,5,15   ... 伝統的 pm3d (黒-青-赤-黄)
  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

{\bf rgbformulae} という名前で呼ばれていても、例の通り、それらの関数は実際
には $<$H$>$,$<$S$>$,$<$V$>$ または $<$X$>$,$<$Y$>$,$<$Z$>$, ... といった色の成分を決定するか
もしれないということに注意してください。

図の色を反転させるには {\bf positive} や {\bf negative} を使ってください。
\label{positive}
\label{negative}

他の色体系に対する最も良い rgbformulae の集合は、以下のコマンドで見つけることができることを覚えておいてください。
\preverbatim
\begin{verbatim}
  show palette fit2rgbformulae
\end{verbatim}
\postverbatim
\subsubsection{Defined}
\label{commands set palette defined}
\label{set palette defined}
\label{palette defined}
\index{colors}
灰色から RGB への対応は {\bf palette defined} を使うことで手動で設定できま
す: 色勾配 (gradient) は 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

$<$grayX$>$ は [0,1] に割り当てられるべき灰色値で、$<$colorX$>$ はそれに対応す
る RGB 色です。カラー値は 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} でそ
の一覧を見ることができます。

$<$r$>$ と書いても、HSV 色空間ではそれは $<$H$>$ 成分を、CIE-XYZ 空間では $<$X$>$
を、といったように選択されたカラーモデルに依存して意味が違うことに注意
してください。

$<$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

虹のようなパレットを生成するには:
\preverbatim
\begin{verbatim}
     set palette defined ( 0 "blue", 3 "green", 6 "yellow", 10 "red" )
\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

あまり色を使わないパレットを生成するには:
\preverbatim
\begin{verbatim}
     set palette model RGB maxcolors 4
     set palette defined ( 0 "blue", 1 "green", 2 "yellow", 3 "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}
\label{commands set palette functions}
\label{set palette functions}
\label{palette functions}
色の割り当ての R(gray), G(gray), B(gray) の 3 つの関数を与えるには
{\bf set palette functions $<$Rexpr$>$, $<$Gexpr$>$, $<$Bexpr$>$} を使ってください。
それらの 3 つの関数の変数は、[0,1] の値を取る変数 {\bf gray} であり、その
値も [0,1] の中に取る必要があります。
$<$Rexpr$>$ は、HSV 色空間が選択されている場合は、H の値を表す式でなければ
いけないことに注意してください (他の式、または他の色空間でも同様です)。

例:

フルカラーパレットを生成するには:
\preverbatim
\begin{verbatim}
     set palette model HSV functions gray, 1, 1
\end{verbatim}
\postverbatim

黒から金色への良いパレット:
\preverbatim
\begin{verbatim}
     set palette model XYZ functions gray**0.35, gray**0.5, gray**0.8
\end{verbatim}
\postverbatim

ガンマ補正の白黒のパレット:
\preverbatim
\begin{verbatim}
     gamma = 2.2
     color(gray) = gray**(1./gamma)
     set palette model RGB functions color(gray), color(gray), color(gray)
\end{verbatim}
\postverbatim

\subsubsection{File}
\label{commands set palette file}
\label{set palette file}
\label{palette file}
{\bf set palette file} は基本的に {\bf set palette defined ($<$gradient$>$)} と同
じで、この $<$gradient$>$ がデータファイルから読み込まれます。4 列 (gray,
R,G,B) かまたは 3 列 (R,G,B) のデータが {\bf using} データファイル修飾子に
よって選択される必要があります。3 列の場合、行番号が gray の値として使
われますが、その gray の範囲は自動的に [0,1] にスケール変換されます。
ファイルは通常のデータファイルとして読まれるので、全てのデータファイル
修飾子が使えます。
例えば HSV 色空間が選択されている場合には、{\bf R} は実際には {\bf H} を指すと
いうことに注意してください。

例によって、$<$filename$>$ が {\bf '-'} の場合は、データがインライン形式で引き
続いて与えられ、一つの {\bf e} のみの行でそれが終了することを意味します。

勾配 (gradient) を表示するには {\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 "-"
     0 0 1
     0 1 0
     1 1 0
     1 0 0
     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)}
\label{commands set palette gamma-correction}
\label{set palette gamma-correction}
\label{palette gamma-correction}
\label{gamma-correction}
\index{gamma correction}
灰色の配色に対するガンマ補正は {\bf set palatte gamma $<$gamma$>$} で ON にで
きます。$<$gamma$>$ のデフォルトは 1.5 で、これは多くの出力形式に適切な値
です。

カラーの配色に対しては gnuplot では自動的なガンマ補正は行いません。し
かしガンマ補正は簡単に実装できます。ここに例として、ガンマの値の少し異
なる赤、緑、青の成分に、明示的な関数を与えた灰色階調画像の例を紹介しま
す。

例:
\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{Postscript}
\label{commands set palette postscript}
\label{set palette postscript}
postscript ファイルのサイズを小さくする目的で、灰色の輝度値、そして全
てではないいくつかの計算された RGB の輝度値がそのファイル中に書かれま
す。成分関数は postscript 言語で直接コード化され、pm3d の描画の直前に
ヘッダとしておかれます。/g や /cF の定義を参照してください。通常その定
義をその中に書くことは、3 つの式のみが使われる場合に意味を持ちます。し
かし、multiplot やその他の理由で postscript ファイル中のその変換関数を
直接手で編集したいと思うかも知れません。これがデフォルトのオプション
{\bf nops\_allcF} です。オプション {\bf ps\_allcF} を使うと、全ての公式の定義が
postscript ファイル中に書かれます。一つのグラフ中で、異なる曲面に異な
るパレットを持たせたいという目的で postscript ファイルを編集したい場合
に、このオプションに関心を持つでしょう。その機能は、{\bf origin} と {\bf size}
を固定して {\bf multiplot} を使うことで実現できるでしょう。

pm3d 色地図が、格子状、あるいはほぼ規則正しいデータから postscript フ
ァイルとして描画された場合、gnuplot と同時に配布される awk スクリプト
{\bf pm3dCompress.awk} を使うことで、この postscript ファイルのサイズをほ
ぼ 50\% 位まで小さくすることができます。このファイルを文書に取り込む場
合、あるいは低速のプリンタに大きなファイルを印刷する前などに、この機能
に関心を持つことでしょう。使用法は以下の通りです:
\preverbatim
\begin{verbatim}
   awk -f pm3dCompress.awk thefile.ps >smallerfile.ps
\end{verbatim}
\postverbatim

pm3d 色地図が四角形の格子状データから postscript ファイルとして描画さ
れた場合、同時に配布される awk スクリプト {\bf pm3dConvertToImage.awk} を
使うことで、そのサイズを更に小さくすることができます。使用法:
\preverbatim
\begin{verbatim}
   awk -f pm3dConvertToImage.awk <thefile.ps >smallerfile.ps
\end{verbatim}
\postverbatim

postscript 出力の灰色階調をカラーへ、またはその逆、そして $<$maxcolors$>$
の定義などを、手動で変更することができます。
\subsection{Pointintervalbox}
\label{commands set pointintervalbox}
\label{set pointintervalbox}
\label{pointintervalbox}
\index{pointintervalbox}
線種の属性 {\bf pointinterval} は描画スタイル {\bf linespoints} で使われます。
pointinterval を負の値、例えば -N とすると、点の記号は N 番目毎に書かれ、
そして各点の記号の後ろの箱 (実際には円) の部分は背景色で塗りつぶして消
されます。コマンド {\bf set pointintervalbox} は、この消す領域の大きさ (半
径) を制御します。
\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}
\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
     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} コマンドは {\bf splot} ではサポートされていません。{\bf splot} に
対する同様の機能に関しては、以下参照: {\bf set mapping (p.~\pageref{set mapping})\index{mapping}}。

極座標モードでは t の数式の意味は r=f(t) となり、t は回転角となります。
trange は関数の定義域 (角度) を制御し、xrange と yrange はそれぞれグラ
フの x,y 方向の範囲を制御することになります。これらの範囲と rrange は
自動的に設定されるか、または明示的に設定できます。これらすべての
{\bf ranges} コマンドの詳細に関しては、以下参照: {\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。

例:
\preverbatim
\begin{verbatim}
     set polar
     plot t*sin(t)
     plot [-2*pi:2*pi] [-3:3] [-3:3] t*sin(t)
\end{verbatim}
\postverbatim

最初の {\bf plot} はデフォルトの角度の範囲の 0 から 2*pi を使います。動径
方向とグラフのサイズは自動的に伸縮されます。2 番目の {\bf plot} は角度の定
義域を拡張し、グラフのサイズを x,y のいずれの方向にも [-3:3] に制限し
ます。

{\bf set size square} とすると {\bf gnuplot} はアスペクト比 (縦横の比) を 1 に
するので円が (楕円でなく) 円に見えるようになります。
以下も参照
\par\hskip2.7em\href{http://www.gnuplot.info/demo/polar.html}{\tt 極座標のデモ (polar.dem)
}

および
\par\hskip2.7em\href{http://www.gnuplot.info/demo/poldat.html}{\tt 極座標データの描画 (poldat.dem)。
}

\subsection{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>"
     set print "<filename>" append
     set print "|<shell_command>"
\end{verbatim}
\postverbatim

{\tt"}$<$filename$>${\tt"} がない場合は出力は $<$STDERR$>$ になります。{\tt"}-{\tt"} という
$<$filename$>$ は $<$STDOUT$>$ を意味します。{\bf append} フラグはファイルを追加
(append) モードで開くことを意味します。パイプをサポートするプラットホ
ーム上では、$<$filename$>$ が {\tt"}$|${\tt"} で始まっていたら、$<$shell\_command$>$ へのパ
イプが開かれます。
\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}
\label{commands set rrange}
\label{commands show rrange}
\label{set rrange}
\label{show rrange}
\label{rrange}
\index{rrange}
コマンド {\bf set rrange} は極座標モードのグラフの動径方向の範囲を設定しま
す。詳細は、以下参照: {\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。
\subsection{Samples}
\label{commands set samples}
\label{commands show samples}
\label{set samples}
\label{show samples}
\label{samples}
\index{samples}
関数、またはデータの補間に関するサンプリング数はコマンド {\bf set samples}
で変更できます。

書式:
\preverbatim
\begin{verbatim}
     set samples <samples_1> {,<samples_2>}
     show samples
\end{verbatim}
\postverbatim

デフォルトではサンプル数は 100 点と設定されています。この値を増やすと
より正確な描画が出来ますが遅くなります。このパラメータはデータファイル
の描画には何の影響も与えませんが、補間/近似のオプションが使われている
場合はその限りではありません。2 次元描画については {\bf plot smooth} を、
3 次元描画に関しては、以下参照: {\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}
\label{commands set size}
\label{commands show size}
\label{set size}
\label{show size}
\label{size}
\index{size}
\label{aspect ratio}
書式:
\preverbatim
\begin{verbatim}
     set size {{no}square | ratio <r> | noratio} {<xscale>,<yscale>}
     show size
\end{verbatim}
\postverbatim

$<$xscale$>$ と $<$yscale$>$ は描画全体の拡大の倍率で、描画全体とはグラフとラ
ベルと余白の部分を含みます。

重要な注意:
\preverbatim
\begin{verbatim}
     gnuplot の以前の版では、`set size` の値を、出力する描画領域
     (キャンバス) のサイズを制御するのにも使っていた出力形式もありま
     したが、すべての出力形式がそうだったわけではありませんでした。
     version 4.4 では、ほとんどの出力形式が以下のルールに従うようにな
     りました:
\end{verbatim}
\postverbatim

{\bf set term $<$terminal\_type$>$ size $<$XX$>$, $<$YY$>$} は、出力ファイルのサイズ、
または {\tt"}キャンバス{\tt"} のサイズを制御します。サイズパラメータの有効な値に
ついては、個々の出力形式のヘルプを参照してください。デフォルトでは、グ
ラフはそのキャンバス全体に描画されます。

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

{\bf ratio} は、指定した $<$xscale$>$, $<$yscale$>$ の描画範囲内で、グラフのアスペ
クト比 (縦横比) を $<$r$>$ にします ($<$r$>$ は x 方向の長さに対する y 方向の
長さの比)。

$<$r$>$ の値を負にするとその意味は違って来ます。$<$r$>$=-1 のとき、x 軸、y 軸
の双方の単位 (つまり 1) の目盛の長さが同一になるよう設定されます。(例
えば地理データ表示に向く)。$<$r$>$=-2 のとき、y 軸の単位目盛の長さは x 軸
の単位目盛の長さの 2 倍に設定されます。$<$r$>$ が負の値に関して以下同様です。

{\bf gnuplot} が指定されたアスペクト比のグラフをちゃんと書けるかは選択され
る出力形式に依存します。グラフの領域は出力の指定された部分にちゃんと収
まり、アスペクト比が $<$r$>$ であるような最大の長方形となります (もちろん
適当な余白も残しますが)。

{\bf square} は {\bf 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

以下も参照
\par\hskip2.7em\href{http://www.gnuplot.info/demo/airfoil.html}{\tt 翼のデモ。
}

\subsection{Style}
\label{set style}
\label{show style}
\label{unset style}
\label{set style <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}}。

書式:
\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 fill <fillstyle>
     set style histogram <histogram style options>
     set style line <n> <linestyle>
\end{verbatim}
\postverbatim

\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}
\label{arrowtype}
\label{arrowwidth}
各出力形式は矢や点の形のデフォルトの集合を持っていて、それはコマンド
{\bf test} で参照できます。{\bf set style arrow} は矢の形、幅、点の形、サイズ
を定義し、それらを後で使うときにいちいち同じ情報を繰り返して指定しなく
てもインデックスで参照できるようにします。

書式:
\preverbatim
\begin{verbatim}
     set style arrow <index> default
     set style arrow <index> {nohead | head | heads}
                             {size <length>,<angle>{,<backangle>}}
                             {filled | empty | nofilled}
                             {front | back}
                             { {linestyle | ls <line_style>}
                               | {linetype | lt <line_type>}
                                 {linewidth | lw <line_width} }
     unset style arrow
     show style arrow
\end{verbatim}
\postverbatim

$<$index$>$ は整数で、それで矢のスタイル (arrowstyle) を特定します。

{\bf default} を指定すると、全ての arrow スタイルパラメータはそのデフォル
トの値になります。

$<$index$>$ の arrowstyle が既に存在する場合、他の全ては保存されたまま、与
えられたパラメータのみが変更されます。$<$index$>$ が存在しなければ、指定さ
れなかった値はデフォルトの値になります。

{\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 $<$backangle$>$} は、{\bf filled} か
または {\bf empty} がともに使われた場合のみ効力を持ち、その場合、
{\bf $<$backangle$>$} は矢先の後ろの部分の矢軸との切り角 ({\bf $<$angle$>$} と同じ方向;
単位は度) になります。出力形式 {\bf fig} は、制限された切り角関数を持って
いて、それは 3 つの異なる形をサポートしていて、それは 2 つの閾値で決定
します: 70 度未満の場合、矢先はへこんだ切り角を持ち、110 度を超える場
合、後ろの部分に尖った角を持ち、その間の角では、矢先の後ろは直線になり
ます。

{\bf filled} を指定すると、塗りつぶされた矢先を作ります ({\bf heads} が使われ
ている場合)。塗りつぶしは、多角形の塗りつぶしが行えるような出力形式で
サポートされていて、そのリストについては、以下参照: {\bf pm3d (p.~\pageref{pm3d})\index{pm3d}}。他の出力形
式では矢先は閉じられますが塗りつぶされません。それと同じ効果 (閉じらる
が塗られない) は、{\bf empty} を指定しても得られます。また、{\bf metafont},
{\bf metapost}, {\bf latex}, {\bf tgif} のように、矢をそれら自身の独自のルーチンで
描くような出力形式では、矢先の塗りつぶしや矢先の枠線描きはもちろんサポ
ートされません。

線種はユーザの定義したラインスタイルのリストから選ぶこともできますし
(以下参照: {\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{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}
\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 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} は、箱を塗りつぶしませんが、これがデフォルトです。

デフォルトの {\bf border} は、現在の線の種類の実線で箱の境界を描きます。
{\bf border $<$colorspec$>$} で境界の色を変更することができます。{\bf noborder} は
境界の線が描かれないようにします。
\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 の塗
りつぶしでは、パターンの背景が完全な透明か完全な不透明のいずれかです。


\begin{center}
\begin{tabular}{|cccl|} \hline
出力形式   &   solid & pattern &    pm3d \\ \hline
gif        &      no &     yes &      no \\
jpeg       &     yes &      no &     yes \\
pdf        &     yes &     yes &     yes \\
png        &TrueColor&   index &     yes \\
post       &      no &     yes &      no \\
svg        &     yes &      no &     yes \\
wxt        &     yes &     yes &     yes \\
x11        &      no &     yes &      no \\
\hline
\end{tabular}
\end{center}
透明な塗りつぶし領域を含むグラフを見たり作ったりするのには、別な制限が
ありうることに注意してください。例えば、png 出力形式では、{\tt"}truecolor{\tt"}
オプションが指定されている場合にのみ透明化の塗り潰しが利用できます。
PDF ファイルには透明化領域が正しく記述されていても、PDF の表示ソフトに
よってはそれを正しく表示できないこともありえます。実際に PostScript プ
リンタでは問題はないのに、Ghostscript/gv ではパターン塗りつぶし領域を
正しく表示できません。
\subsubsection{Set style function}
\label{commands set style function}
\label{commands show style function}
\label{set style function}
\label{show style function}
\label{function style}
コマンド {\bf set style function} は関数描画に対するデフォルトの描画スタイ
ルを変更します。

書式:
\preverbatim
\begin{verbatim}
     set style function <plotting-style>
     show style function
\end{verbatim}
\postverbatim

選択項目については、以下参照: {\bf plotting styles (p.~\pageref{plotting styles})\index{styles}}。項目を指定しなかった
場合、その一覧が表示されます。{\bf show style function} は現在のデフォルト
の関数描画スタイルを表示します。
\subsubsection{Set style increment}
\label{commands set style increment}
\label{commands show style increment}
\label{set style increment}
\label{show style increment}
書式:
\preverbatim
\begin{verbatim}
     set style increment {default|userstyles}
     show style increment
\end{verbatim}
\postverbatim

デフォルトでは、同じグラフ上の次の描画は、現在の出力形式でデフォルトで
定義されている線種の次のもので行われます。
しかし、{\bf set style increment user} を選択すると、デフォルトの線種では
なく、ユーザ定義ラインスタイル番号のものを使用させることができます。

例:

\preverbatim
\begin{verbatim}
     set style line 1 lw 2 lc rgb "gold"
     set style line 2 lw 2 lc rgb "purple"
     set style line 4 lw 1 lc rgb "sea-green"
     set style increment user
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     plot f1(x), f2(x), f3(x), f4(x)
\end{verbatim}
\postverbatim

これは、関数 f1, f2, f4 は新たにユーザ定義されたラインスタイルで描画さ
れます。ユーザ定義ラインスタイルが見つからない場合は、代わりにそれに対
応するデフォルトの線種が利用されます。例えば、上の例では、f3(x) はデフ
ォルトの線種 3 で描画されます。

\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}
出力装置にはおのおのデフォルトの線種と点種の集合があり、それらはコマン
ド {\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>}
                            {palette}
     unset style line
     show style line
\end{verbatim}
\postverbatim

{\bf default} を指定すると、全ての line スタイルパラメータはそのデフォルト
の値になります。

$<$index$>$ の linestyle が既に存在する場合、他の全ては保存されたまま、与
えられたパラメータのみが変更されます。$<$index$>$ が存在しなければ、指定さ
れなかった値はデフォルトの値になります。

線種と点種は、その 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 set style increment (p.~\pageref{set style increment})\index{increment}}。

全ての出力装置が {\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}
\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>}
\end{verbatim}
\postverbatim

このコマンドは、描画スタイル {\tt"}with circles{\tt"} で使われるデフォルトの半径
を設定します。これは、データ描画で 2 列のデータ (x,y) しか与えなかった
場合、あるいは関数描画のときに適用されます。デフォルトは、以下のようになっています: {\tt"}set style circle radius graph 0.02{\tt"}。

\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 linsestyle 3 fs pattern 2 noborder
\end{verbatim}
\postverbatim

デフォルトの設定は、背景色での塗り潰しで、境界は黒になっています。

\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} は {\bf splot} による曲面の表示を制御します。

書式:
\preverbatim
\begin{verbatim}
     set surface
     unset surface
     show surface
\end{verbatim}
\postverbatim

曲面はデータや関数に対して、{\bf with} で指定されたスタイル、あるいは他の
適切なスタイルで書かれます。

{\bf unset surface} により {\bf splot} は、関数やデータファイルの点に対するど
んな点や線も描かなくなります。個別にある関数やあるデータファイルの曲面
描画を無効にしてその他を有効にしたい場合には、コマンド {\bf splot} のキー
ワード {\bf nosurface} を使用してください。その場合でも {\bf set contour} の設
定により曲面の等高線は書かれます。{\bf unset surface; set contour base} の
組は、等高線を格子の土台に表示する際に便利です。以下も参照:{\bf set contour (p.~\pageref{set contour})\index{contour}}。
\subsection{Table}
\label{commands set table}
\label{set table}
\label{table}
\index{table}
{\bf table} モードが有効な場合、{\bf plot} と {\bf splot} コマンドは、現在の出力形
式に対する実際の描画を生成する替わりに X Y \{Z\} R の値の複数列からなる
表形式のアスキー出力を行ないます。文字 R は、次の 3 種類のうちの一つで
す: その点が有効な範囲内にある場合は {\tt"}i{\tt"}、範囲外の場合は {\tt"}o{\tt"}、未定義値
(undefined) の場合は {\tt"}u{\tt"} です。データの書式は、軸のラベルの書式
(以下参照: {\bf set format (p.~\pageref{set format})\index{format}}) によって決まり、列は一つの空白で区切られます。
これは、等高線を生成し、例えば {\bf plot} で描画するなど、それを再利用する
ために保存したいときに便利です。例については、以下参照: {\bf set contour (p.~\pageref{set contour})\index{contour}}。
この方法は、補間されたデータを保存するのにも使うことができます (以下参照: {\bf set samples (p.~\pageref{set samples})\index{samples}}, {\bf set dgrid3d (p.~\pageref{set dgrid3d})\index{dgrid3d}})。

書式:
\preverbatim
\begin{verbatim}
     set table {"outfile"}
     plot <whatever>
     unset table
\end{verbatim}
\postverbatim

表形式の出力は、指定されたファイルに書き出されますが、指定がない場合は
現在 {\bf set output} で指定されている値に出力されます。現在の出力形式の標
準的な描画に戻すには、{\bf unset table} を明示的に行なう必要があります。
\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 png (p.~\pageref{png})\index{png}}, {\bf postscript (p.~\pageref{postscript})\index{postscript}}。
各 {\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}
\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 {solid|dashed}
    set termoption {linewidth <lw>}{lw <lw>}
\end{verbatim}
\postverbatim

\subsection{Tics}
\label{commands set tics}
\label{commands unset tics}
\label{commands show tics}
\label{set tics}
\label{unset tics}
\label{show tics}
\label{tics}
\index{tics}
全ての軸の (見出しのつく) 大目盛りの制御を一度に行うことは、コマンド
{\bf set tics} で可能です。

全ての軸の (見出しのつく) 大目盛りは コマンド {\bf set tics} で一度に制御
できます。目盛りは {\bf unset tics} で消え、{\bf set tics} で (デフォルトの状
態の) 目盛りがつきます。各単一軸の大目盛りの制御を行なう同様のコマンド
があります ({\bf tics} の前に軸名をつけたもの)。

書式
\preverbatim
\begin{verbatim}
     set tics {axis | border} {{no}mirror}
              {in | out} {scale {default | <major> {,<minor>}}}
              {{no}rotate {by <ang>}} {offset <offset> | nooffset}
              { format "formatstring" } { font "name{,<size>}" }
              { textcolor <colorspec> }
     set tics {front | back}
     unset tics
     show tics
\end{verbatim}
\postverbatim

上の最初のオプションの形式は、別々に任意の、またはすべての軸 x, y, z,
x2, y2, cb に適用できます。

tics の {\bf front} または {\bf back} の設定は、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 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 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 set tics} は、目盛りの刻みを内側にしますが、その他の
全てのオプションは直前の値を保持します。

大目盛り (ラベルのつく) の他の制御に関しては、以下参照: {\bf set xtics (p.~\pageref{set xtics})\index{xtics}}。
小目盛りの制御に関しては、以下参照: {\bf set mxtics (p.~\pageref{set mxtics})\index{mxtics}}。これらのコマンドは、
各軸毎にその一つの軸の制御を提供します。
\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}
\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}
\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>"}
     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$>$ は日付が書かれるフ
ォントを指定します。

{\bf timestamp} の代わりに省略名 {\bf time} を使っても構いません。

例:
\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}
\label{commands set timefmt}
\label{commands show timefmt}
\label{set timefmt}
\label{show timefmt}
\label{timefmt}
\index{timefmt}
このコマンドは、データが日時の形式になっている場合に、その時系列データ
に適用されます。これはコマンド {\bf set xdata time} も与えられていないと意
味がありません。

書式:
\preverbatim
\begin{verbatim}
     set timefmt "<format string>"
     show timefmt
\end{verbatim}
\postverbatim

文字列引数 ($<$format string$>$) は {\bf gnuplot} に日時データをデータファイル
からどのように読むかを指示します。有効な書式は以下の通りです:


\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@ & 月名 (英語) \\
\hline
\end{tabular}
\end{center}
任意の文字を文字列中で使用できますが、規則に従っている必要があります。
$\backslash$t (タブ) は認識されます。バックスラッシュ + 8 進数列 ($\backslash$nnn) はそれが
示す文字に変換されます。日時要素の中に分離文字がない場合、\%d, \%m, \%y,
\%H, \%M, \%S はそれぞれ 2 桁の数字を読み込み、\%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 桁の西暦値は本質的にあいまいです。

他の情報については、以下も参照: {\bf set xdata (p.~\pageref{set xdata})\index{xdata}}, {\bf time/date (p.~\pageref{time/date})\index{time/date}}。

例:
\preverbatim
\begin{verbatim}
     set timefmt "%d/%m/%Y\t%H:%M"
\end{verbatim}
\postverbatim
は、{\bf gnuplot} に日付と時間がタブで分離していることを教えます (ただし、
あなたのデータをよーく見てください。タブだったものがどこかで複数のスペ
ースに変換されていませんか ? 書式文字列はファイル中に実際にある物と一
致していなければなりません)。
以下も参照
\par\hskip2.7em\href{http://www.gnuplot.info/demo/timedat.html}{\tt 時系列データ (time data) デモ。
}

\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}
\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}
\label{commands set trange}
\label{commands show trange}
\label{set trange}
\label{show trange}
\label{trange}
\index{trange}
コマンド {\bf set trange} は、媒介変数モード、あるいは極座標モードでの x,y
の値を計算するのに使われる媒介変数の範囲を設定します。詳細は、以下参照:{\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。
\subsection{Urange}
\label{commands set urange}
\label{commands show urange}
\label{set urange}
\label{show urange}
\label{urange}
\index{urange}
{\bf set urange} と {\bf set vrange} は、{\bf splot} の媒介変数モードで x,y,z の値
を計算するのに使われる媒介変数の範囲を設定します。詳細は、以下参照:{\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。
\subsection{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

\subsection{Version}
\label{show version}
コマンド {\bf show version} は現在起動している gnuplot のバージョン、最終
修正日、著作権者と、FAQ や info-gnuplot メーリングリスト、バグレポート
先のメールアドレスを表示します。対話的にプログラムが呼ばれているときは
スクリーン上にその情報を表示します。

書式:
\preverbatim
\begin{verbatim}
     show version {long}
\end{verbatim}
\postverbatim

{\bf long} オプションを与えると、さらにオペレーティングシステム、{\bf gnuplot}
インストール時のコンパイルオプション、ヘルプファイルの置き場所、そして
(再び) 有用なメールアドレスを表示します。
\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
     set view {no}equal {xy|xyz}
     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}) の描画、およびカラー表示 ({\bf pm3d}) の色地図に使え
ます。後者に関しては、入力データ点のフィルタ用の {\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{Equal\_axes}
\label{set view equal_axes}
\label{set view equal}
\label{view equal_axes}
\label{view equal}
コマンド {\bf set view equal xy} は x 軸と y 軸の単位の長さが強制的に等し
くなるように縮尺を合わせ、グラフがページに丁度合うようにその縮尺を選択
します。コマンド {\bf set view equal xyz} は、さらに z 軸も x と y 軸に合
うようにしますが、現在の z 軸の範囲が、描画境界の範囲に合う保証はあり
ません。デフォルトでは、3 つの軸は独立に有効な領域を埋めるように伸縮さ
れます。

以下も参照: {\bf set xyplane (p.~\pageref{set xyplane})\index{xyplane}}。
\subsection{Vrange}
\label{commands set vrange}
\label{commands show vrange}
\label{set vrange}
\label{show vrange}
\label{vrange}
\index{vrange}
コマンド {\bf set urange} と {\bf set vrange} は、{\bf splot} の媒介変数 (パラメー
タ) モードで x, y, z の値を計算するのに使われる媒介変数の範囲を設定し
ます。 詳細は、以下参照: {\bf set xrange (p.~\pageref{set xrange})\index{xrange}}。
\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}
\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}
\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}
\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}
\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}}。
\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}
\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}
\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 にどのように日時データを読みこませるかについては、以下参照:{\bf set timefmt (p.~\pageref{set timefmt})\index{timefmt}}。日時データは今世紀の始まり (訳注: 厳密には 2000 年 1 月
1 日の始まり) からの秒数に変換されます。時間書式 (timefmt) は現在はた
だ一つだけしか使えません。それは、全ての日時データ項目がこの書式に一致
しなければならないことを意味します。また、範囲の指定は、日時指定が数式
と解釈されるのを避けるために、その書式に従った文字列を引用符で囲んで指
定すべきです。

目盛り刻みの見出し (label) を表示するのには関数 'strftime' (unix でそ
れを調べるには {\tt"}man strftime{\tt"} とタイプしてください) が使われます。
{\bf set format x {\tt"}string{\tt"}} で、10 進数の書式ではなさそうなもの (2 つ以上の '\%'、または \%f でも \%g でもないもの) が与えられていなければ、
{\bf gnuplot} はこれを適当に意味のある書式で計算して表示します。

他の情報については、以下参照: {\bf time/date (p.~\pageref{time/date})\index{time/date}}。
\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}
\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 | tc} {lt <line_type> | default}} {{no}enhanced}
                {rotate by <degrees>}
     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 textcolor lt $<$n$>$} は、見出し文字列を線種 $<$n$>$ の色にします。

{\bf noenhanced} は、拡張文字列処理 (enhanced text) モードが有効になってい
る場合でも、ラベル文字列を拡張文字列処理させないようにします。

見出しを消去するには、オプションをつけずに実行します。例: {\tt"}{\bf set y2label}{\tt"}

軸の見出しのデフォルトの位置は以下の通りです:

xlabel: x 軸の見出しは下の軸の下の真中

ylabel: y 軸の見出しは出力形式依存で、以下の 3 つのいずれか:

1. 水平方向の文字列で描画の左上に左端に合わせて配置されます。文字列の
回転を行なえない出力形式では多分これが選択されます。{\bf set x2tics} が同
時に使われている場合、ylabel は x2 軸の見出しの左端と重なるかも知れま
せん。これは ylabel の位置か左の余白を調整することで対処できるでしょ
う。

2. 垂直方向の文字列で、描画の左で垂直方向に中央揃えされます。文字列を
回転できる出力形式では多分これが選択されます。

3. 水平方向の文字列で、描画の左で垂直方向に中央揃えされます。LaTeX,
TPIC ドライバではこれが選択されます。EEPIC ドライバでは、描画に重なら
ないような、文字の積み重ねを生成しますが、その他のドライバ (LaTeX や
TPIC のような) では、ylabel が描画に上書きするのを避けるために、$\backslash$$\backslash$ を
使って改行を入れる必要があるかもしれません。

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 つの行で同じフォントが使われます。

x, x2, y, y2 軸のラベルの方向 (回転角) は、デフォルトの設定に対して明
示的に変更することができますが、これは 2 次元描画で、かつ文字列の回転
をサポートする出力形式のみで有効です。

もし軸の位置のデフォルトの位置が気に入らないならば、代わりに {\bf set label}
を使ってください。このコマンドは文字列をどこに配置するかをもっと自由に
制御できます。

バックスラッシュ文字列の作用、及び文字列を囲む単一引用符と二重引用符の
違いに関するより詳しい情報については、以下参照: {\bf syntax (p.~\pageref{syntax})\index{syntax}}。
\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}
\label{commands set xrange}
\label{commands show xrange}
\label{set xrange}
\label{show xrange}
\label{writeback}
\index{writeback}
\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}writeback} }
                | restore
     show xrange
\end{verbatim}
\postverbatim

ここで $<$min$>$ と $<$max$>$ には定数、数式、または '*' で、'*' は自動縮尺機
能を意味します。日時データの場合、範囲は {\bf set timefmt} の書式に従った
文字列を引用符で囲む必要があります。省略された値は変更されません。

{\bf yrange}, {\bf zrange}, {\bf x2range}, {\bf y2range}, {\bf cbrange}, {\bf rrange}, {\bf trange},
{\bf urange}, {\bf vrange} は同じ書式を使用します。

オプション {\bf reverse} は軸の方向を逆にします。例えば
{\bf set xrange [0:1] reverse} は、1 が左、0 が右であるような軸にします。
これは、もちろん {\bf set xrange [1:0]} と同じですが、{\bf reverse} は主に自動
縮尺 ({\bf autoscale}) で用いられることを意図しています。

オプション {\bf writeback} は、{\bf set xrange} で占められているバッファの中に
自動縮尺機能により作られた範囲を保存します。これは、いくつかの関数を同
時に表示し、しかしその範囲はそのうちのいくつかのものから決定させたい場
合に便利です。{\bf writeback} の作用は、{\bf plot} の実行中に機能するので、その
コマンドの前に指定する必要があります。最後に保存した水平方向の範囲は
{\bf set xrange restore} で復元できます。例を上げます。

\preverbatim
\begin{verbatim}
     set xrange [-10:10]
     set yrange [] writeback
     plot sin(x)
     set yrange restore
     replot x/2
\end{verbatim}
\postverbatim

この場合、y の範囲 (yrange) は sin(x) の値域として作られた [-1:1] の方
になり、x/2 の値域 [-5:5] は無視されます。上記のそれぞれのコマンドの後
に {\bf show yrange} を実行すれば、上で何が行なわれているかを理解する助け
になるでしょう。

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} も同じです。

例:

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
\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}
               {add}
               {  autofreq
                | <incr>
                | <start>, <incr> {,<end>}
                | ({"<label>"} <pos> {<level>} {,{"<label>"}...) }
               { format "formatstring" } { font "name{,<size>}" }
               { 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 xtics} を実行すると、目盛りが表示される状態であ
れば、それはデフォルトの境界、または軸を復元し、そうでなければ何もしま
せん。その前に指定した目盛りの間隔、位置 (と見出し) は保持されます。

目盛りの位置は、デフォルト、またはオプション {\bf autofreq} が指定されてい
れば自動的に計算されます。そうでなければ、次の 2 つの形式で指定されま
す:

暗示的な $<$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 に設定しま
す。

{\bf set grid} のオプション 'front', 'back', 'layerdefault' も、x 軸の目盛
りの描画の順序に影響します。

例:

目盛りを 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

明示的な ({\tt"}$<$label$>${\tt"} $<$pos$>$ $<$level$>$, ...) の形式は、任意の目盛りの位置、
あるいは数字でない見出しの生成も可能にします。この形式では、目盛りは位
置の数字の順に与える必要はありません。各目盛りは位置 (pos) と見出し
(label) を持ちますが、見出しは必須ではありません。見出しは二重引用符で
囲まれた文字列であることに注意してください。それは、{\tt"}hello{\tt"} のような固
定文字列でも構いませんし、{\tt"}\%3f clients{\tt"} のようにその位置を数字に変換す
る書式文字列を含んでも構いませんし、空文字列 {\tt"}{\tt"} でも構いません。より詳
しい情報については、以下参照: {\bf set format (p.~\pageref{set format})\index{format}}。もし、文字列が与えられなけ
れば、デフォルトの数字の見出しが使用されます。

明示的な形式では 3 つ目のパラメータとして {\tt"}レベル{\tt"} (level) を与えるこ
とができます。デフォルトのレベルは 0 で、これは大目盛りを意味し、レベ
ルが 1 の場合小目盛りが生成されます。レベルを指定する場合はラベルも必
ず指定する必要があります。

例:
\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 間隔でつけますが、πのところに
明示的な見出しも追加します。

しかし指定しても、表示されるのはあくまで描画範囲のものだけです。

目盛りの見出しの書式 (または省略) は {\bf set format} で制御されます。ただ
しそれは {\bf set xtics (}$<$label$>${\bf )} の形式の明示的な見出し文字列が含まれ
ていない場合だけです。

(見出し付けされない) 小目盛りは、{\bf set mxtics} コマンドで自動的に追加す
るか、または位置を手動で {\bf set xtics ({\tt"}{\tt"} $<$pos$>$ 1, ...)} の形式で与える
こともできます。
\subsubsection{Xtics time\_data}
\label{set xtics time_axis tics}
\label{xtics time_axis tics}
\label{time_axis tics}
時系列データの場合、軸の目盛り位置の値は {\bf timefmt} の書式にしたがった
日付、または時刻を引用符で囲んで与えなければいけません。$<$start$>$,
$<$incr$>$, $<$end$>$ 形式を使う場合、$<$start$>$ と $<$end$>$ は {\bf timefmt} に従って与
えますが、$<$incr$>$ は秒単位で与える必要があります。その時刻は実際には
{\bf set format} で与えた書式に従って表示されます。

例:
\preverbatim
\begin{verbatim}
     set xdata time
     set timefmt "%d/%m"
     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"
     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"} の目盛りは見出し付けされません。
\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{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 ticslevel} も後方互換性のために残さ
れています。

xy 平面を z 軸の 'pos' の位置に置くには、{\bf ticslevel} の値を
(pos - zmin) / (zmin - zmax) としてください。しかし、この位置は z の範
囲 ({\bf zrange}) を変更した場合は変わってしまいます。

もう一つの形式である {\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}
\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}
\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}
\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}
\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}
\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}
\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}}。
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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 軸用のコマンドが同様の働きをします。

書式:
\preverbatim
\begin{verbatim}
     set {x|x2|y|y2|z}zeroaxis { {linestyle | ls <line_style>}
                                | { linetype | lt <line_type>}
                                  { linewidth | lw <line_width>}}
     unset {x|x2|y|y2|z}zeroaxis
     show {x|y|z}zeroaxis
\end{verbatim}
\postverbatim


デフォルトでは、これらのオプションはオフになっています。選択された 0
の軸は $<$line\_type$>$ の線の型と$<$line\_width$>$ の線の幅 (現在使用している
出力形式がサポートしていれば) で、あるいはあらかじめ定義された
$<$line\_style$>$ のスタイルで描かれます。

線の型を指定しなければ、軸は通常の軸の線の型 (型 0) で描かれます。

{\bf set zeroaxis} は {\bf set xzeroaxis; set yzeroaxis} と同等です。z 軸は、
{\bf set zzeroaxis} を使って独立に設定する必要があることに注意してください。

例:

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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\label{commands shell}
\label{shell}
\index{shell}
{\bf shell} コマンドは対話的なシェルを起動します。{\bf gnuplot} に戻るには、
VMS では {\bf logout} を、Unix ならば {\bf exit} もしくは END-OF-FILE 文字を、
AmigaOS では {\bf endcli} を、MS-DOS か OS/2 ならば {\bf exit} を入力して下
さい。

シェルコマンドを実行する方法は 2 つあります: コマンド {\bf system} を使う
か {\bf !} (VMS では \$) を使うか。前者は、コマンド文字列をパラメータとして
取るので、他の gnuplot コマンドのどこでも使うことができますが、後者の
書式は、その行にそのコマンドただ一つであることを要求します。これらの場
合コマンドが終了するとすぐに制御は {\bf gnuplot} に戻ってきます。例えば
AmigaOS, MS-DOS, OS/2 では、

\preverbatim
\begin{verbatim}
    ! dir
\end{verbatim}
\postverbatim
または
\preverbatim
\begin{verbatim}
    system "dir"
\end{verbatim}
\postverbatim

とするとディレクトリの一覧を表示して {\bf gnuplot} に戻ってきます。

{\bf system} を使う他の例:
\preverbatim
\begin{verbatim}
      system "date"; set time; plot "a.dat"
      print=1; if (print) replot; set out; system "lpr x.ps"
\end{verbatim}
\postverbatim
\section{Splot}
\label{commands splot}
\label{splot}
\index{splot}
{\bf splot} は 3 次元描画のためのコマンドです (もちろんご存知でしょうが、
実際にはその 2 次元への射影)。それは関数、またはファイルから読み込んだ
データから {\bf plot} コマンドととても良く似た方法でその描画を作ります。
{\bf splot} は、それぞれ単一の x, y, z 軸を提供するだけで、{\bf plot} で用意さ
れている第 2 軸 x2, y2 のようなものはありません。

{\bf plot} コマンドと共通の仕様については、以下参照: {\bf plot (p.~\pageref{plot})\index{plot}}。ここではそれ
と異なるものだけ詳細に取り上げます。

書式:
\preverbatim
\begin{verbatim}
     splot {<ranges>}
           {<iteration>}
           <function> | "<datafile>" {datafile-modifiers}}
           {<title-spec>} {with <style>}
           {, {definitions{,}} <function> ...}
\end{verbatim}
\postverbatim

ここで、関数 $<$function$>$、またはクォートでくくられたデータファイル名の
どちらかが必要です。関数は、一本の数式、あるいは媒介変数モードでは
3 つの数式の組です。

デフォルトでは、{\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} の場合と同じです。媒介変数
モードでなければ範囲は {\bf xrange}, {\bf yrange}, {\bf zrange} の順であり、媒介変
数モードでは {\bf urange}, {\bf vrange}, {\bf xrange}, {\bf yrange}, {\bf zrange} の順です。

{\bf title} オプションも {\bf plot} と同じです。{\bf with} も {\bf plot} とほぼ同じ
ですが、{\bf splot} では利用可能な描画スタイルは {\bf lines}, {\bf points},
{\bf linespoints}, {\bf dots}, {\bf impulses} に限られています。{\bf plot} で使える
エラーバーの機能は {\bf splot} にはありません。

{\bf datafile} オプションにはさらに違いがあります。

以下も参照: {\bf show plot (p.~\pageref{show plot})\index{plot}}。
\subsection{データファイル (datafile)}
\label{commands splot datafile}
\label{splot datafile}
\label{splot data-file}
{\bf plot} と同じように、ファイルに含まれる離散的なデータは、そのファイル
名をクォートで囲んで指定することで描画できます。

書式:
\preverbatim
\begin{verbatim}
     splot '<file_name>' {binary <binary list>}
                         {matrix}
                         {index <index list>}
                         {every <every list>}
                         {using <using list>}
\end{verbatim}
\postverbatim

{\bf {\tt"}{\tt"}} や {\bf {\tt"}-{\tt"}} といった特別なファイル名も {\bf plot} のときと同様に許されます。

手短にいうと、{\bf binary} や {\bf matrix} はそのデータが特別な形であることを、
{\bf index} は多重データ集合ファイルからどのデータ集合を選んで描画するかを、
{\bf every} は各データ集合からどのデータ行 (部分集合) を選んで描画するかを、
{\bf using} は各データ行からどのように列を選ぶかを指定します。

{\bf index} と {\bf every} オプションは {\bf plot} の場合と同じように振舞います。
{\bf using} も、{\bf using} のリストが 2 つでなく 3 つ必要であるということを
除いては同様です。

{\bf thru} や {\bf smooth} といった {\bf plot} のオプションは {\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}}。

3 列の {\bf splot} データにおいては、媒介変数モード ({\bf parametric}) を指定
することはもはや不要です。
\subsubsection{Binary matrix}
\label{commands plot datafile binary matrix}
\label{commands splot datafile binary matrix}
\label{plot datafile matrix binary}
\label{splot datafile matrix binary}
\label{plot binary matrix}
\label{splot binary matrix}
\label{plot matrix binary}
\label{splot matrix binary}
\label{matrix binary}
\label{binary matrix}
\label{gpbin}
\index{gpbin}
Gnuplot は、{\bf array}, {\bf record}, {\bf format}, {\bf filetype} などの general バ
イナリ形式を特定するようなキーワードをつけずにオプション {\bf binary} を使
うことで、matrix バイナリファイルを読み込むことができます。その他の変換
用の general バイナリキーワードは、matrix バイナリファイルにも適用でき
るでしょう。(詳細は、以下参照: {\bf binary general (p.~\pageref{binary general})\index{general}}。)

以前のバージョンでは、{\bf gnuplot} は動的にバイナリデータかどうかを判断していましたが、現在は、ファイル名の後ろに {\bf binary} キーワードを直接指定することが必要です。

単精度浮動小数の数値が次のように保存されています:

\preverbatim
\begin{verbatim}
     <N+1>  <y0>   <y1>   <y2>  ...  <yN>
      <x0> <z0,0> <z0,1> <z0,2> ... <z0,N>
      <x1> <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} が通常の方法で描画の残りを行います。

行列やベクトルの操作のサブルーチン (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 index} キーワードは、ファイルフォーマットが 1 つのファイルにつき 1 つ
の曲面しか許さないため、サポートされません。{\bf every} や {\bf using} フィルタ
はサポートされます。{\bf using} は、データがあたかも上の 3 つ組の形で読まれ
たかのように働きます。

以下参照: {\bf binary general (p.~\pageref{binary general})\index{general}}。以下も参照。
\par\hskip2.7em\href{http://www.gnuplot.info/demo/binary.html}{\tt バイナリファイルの splot のデモ。
}

\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} は個々のデータブロック内の点の数が等しいと
いうことを必要としているだけです。しかし、等高線を導くのに用いられる曲
面の網目は、対応する点を列的に選んで結ぶため、不揃いの格子データに対す
る曲面の描画への影響は予想できません。それはケースバイケースの原理でテ
ストすべきでしょう。
\subsubsection{Ascii 数字の matrix (matrix\_ascii)}
\label{commands plot datafile matrix ascii}
\label{commands splot datafile matrix ascii}
\label{plot datafile matrix ascii}
\label{splot datafile matrix ascii}
\label{plot matrix ascii}
\label{splot matrix ascii}
\label{data-file matrix ascii}
\label{datafile matrix ascii}
\label{matrix ascii}
\preverbatim
\begin{verbatim}
   {s}plot 'a.dat' matrix
\end{verbatim}
\postverbatim
のキーワード {\bf matrix} (キーワード {\bf binary} がその後ろにつかない場合)
は、データが ascii 数字の配列形式で保存されていることを意味します。

各ブロックの z の値は一行で一度に読まれます。すなわち、
\preverbatim
\begin{verbatim}
   z11 z12 z13 z14 ...
   z21 z22 z23 z24 ...
   z31 z32 z33 z34 ...
\end{verbatim}
\postverbatim
など。

3 次元では、配列の曲面描画の x、y 番号は、それぞれ配列の列番号と行番号
(0 から始まる) に対応します。軸の変換や伸縮も、x=\$1, y=\$2, z=\$3 による
3 列のデータファイルに対する通常の方法と同様に行えます。例:
\preverbatim
\begin{verbatim}
   splot 'a.dat' matrix using (1+$1/100):(1+$2*10):3
\end{verbatim}
\postverbatim

空行、またはコメント行は配列データを終了させ、新たな曲面の網 (mesh) を
開始します。いつものことですが、{\bf splot} コマンド の {\bf index} オプション
を使ってファイル内の網を自由に選択できます。

2 次元描画における配列データの縦、および横の行の描画の例については、
以下参照: {\bf matrix (p.~\pageref{matrix})\index{matrix}}。
\subsubsection{Matrix}
\label{commands plot datafile matrix}
\label{commands splot datafile matrix}
\label{plot datafile matrix}
\label{splot datafile matrix}
\label{plot matrix}
\label{splot matrix}
\label{data-file matrix}
\label{datafile matrix}
\label{matrix}
\index{matrix}
データファイルは、ascii 形式かバイナリ形式の matrix (配列) フォーマッ
トを使用することも可能で、{\bf binary} または {\bf matrix binary} がバイナリ形
式を意味します。詳しくは、以下参照: {\bf matrix ascii (p.~\pageref{matrix ascii})\index{ascii}}, {\bf matrix binary (p.~\pageref{matrix binary})\index{binary}}。

{\bf splot} での基本的な使用法:
\preverbatim
\begin{verbatim}
   splot 'a.dat' matrix
   splot 'a.gpbin' {matrix} binary
\end{verbatim}
\postverbatim
{\bf splot} での進んだ使用法:
\preverbatim
\begin{verbatim}
   splot 'a.dat' matrix using 1:2:3
   splot 'a.gpbin' {matrix} binary using 1:2:3
\end{verbatim}
\postverbatim
これにより軸の座標と z の値を独立に変換できるようになります。

{\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} を適用す
ることで明示的に行や列を指定できます。

例 -- ASCII データファイルの配列の軸の拡大:
\preverbatim
\begin{verbatim}
   splot `a.dat` matrix using (1+$1):(1+$2*10):3
\end{verbatim}
\postverbatim

例 -- ASCII データファイルの配列の第 3 行の描画:
\preverbatim
\begin{verbatim}
   plot 'a.dat' matrix using 1:3 every 1:999:1:2
\end{verbatim}
\postverbatim
(行は 0 から数えられるので、3 ではなくて 2 を指定します)。
\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} によって\{異なる\}格子状データに変換すること
ができます。

等高線に関するコードは、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 overview)}
\label{commands splot overview}
\label{splot overview}
{\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} のより強い整形能力を生かすこともできます。
\section{System}
\label{commands system}
\label{system}
\index{system}
{\bf system {\tt"}command{\tt"}} は、標準的なシェルを使って {\tt"}command{\tt"} を実行します。
以下参照: {\bf shell (p.~\pageref{shell})\index{shell}}。関数として呼ばれた場合、{\bf system({\tt"}command{\tt"})} は結果
として標準出力に流れる文字列を文字列値として返します。一つ追加される改
行文字は無視されます。

これは、gnuplot スクリプト内に外部関数を取り込むのに使えます:

\preverbatim
\begin{verbatim}
     f(x) = real(system(sprintf("somecommand %f", x)))
\end{verbatim}
\postverbatim
\section{Test}
\label{commands test}
\label{test palette}
\label{test}
\index{test}
このコマンドは、出力形式やパレットでどのような出力が行なえるかを画像で
テストし表示します。

書式:
\preverbatim
\begin{verbatim}
     test {terminal | palette [rgb|rbg|grb|gbr|brg|bgr]}
\end{verbatim}
\postverbatim

{\bf test} または {\bf test terminal} は、現在使用中の出力形式 ({\bf terminal}) で
使える線の種類、点の種類、または有用なそして利用可能なその他の描画を生
成します。

{\bf test palette} は、現在のカラーパレット ({\bf palette}) で計算した R(z),
G(z),B(z) (0$<$=z$<$=1) の状態を画像で描画します。それは実際には、本来はあ
なたが {\bf show palette palette 256 float} の結果から作るべき綺麗な描画で
す。追加のパラメータは、r,g,b の文字の組合せで、それにより描画する順番
が決定されます。{\bf set palette gray} で色々試してみてください。デフォル
トの順番は rgb です。
\section{Undefine}
\label{commands undefine}
\label{undefine}
\index{undefine}
1 つ、または複数の定義済みのユーザ変数を削除します。これは、初期化テス
トを含むようなスクリプトの状態をリセットするのに便利でしょう。

例:

\preverbatim
\begin{verbatim}
     undefine foo foo1 foo2
     if (!exists("foo")) load "initialize.gp"
\end{verbatim}
\postverbatim

\section{Unset}
\label{commands unset}
\label{unset}
\index{unset}
\index{iteration}
コマンド {\bf set} で設定したオプションは、それに対応した {\bf unset} コマンド
によってそのデフォルトの値に戻すことが可能です。{\bf unset} コマンドには繰
り返し節も利用できます。以下参照: {\bf iteration (p.~\pageref{iteration})\index{iteration}}。

例:
\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

\section{Update}
\label{commands update}
\label{update}
\index{update}
このコマンドは当てはめ (fit) のパラメータの現在の値を、初期値のファイ
ルの形式で ({\bf fit} の項で説明されている)、与えられたファイルに書き出し
ます。これは、現在の値を、後で使うために、あるいは終了/中断した当ては
めを再実行するために保存しておくのに有用です。

書式:
\preverbatim
\begin{verbatim}
     update <filename> {<filename>}
\end{verbatim}
\postverbatim

2 番目のファイル名を指定すると、元のパラメータファイルは変更せずに 2
番目のファイルの方に更新された値を書き出します。

そうでなければ、指定したファイルが存在すれば {\bf gnuplot} はそのファイル
名に {\bf .old} をつけてファイル名を変更し、指定したファイル名のファイルを
新たに開き直します。つまり、{\tt"}{\bf update 'fred'}{\tt"} とすると、それは
{\tt"}{\bf !rename fred fred.old; update 'fred.old' 'fred'}{\tt"} としたことと同じこ
とになります。[{\tt"}filename.ext{\tt"} の 12 文字しか使えない MS-DOS や他のシス
テムでは、{\tt"}ext{\tt"} が {\tt"}{\bf old}{\tt"} になって {\tt"}filename{\tt"} は最初のファイルに関係
するもの (多分どれかがすぐに分かるでしょう) が使われます。VMS では、フ
ァイルのバージョン管理システムが使われるため、名前の変更は行なわれませ
ん。]

より詳しい情報に関しては、以下参照: {\bf fit (p.~\pageref{fit})\index{fit}}。
\part{出力形式 (Terminal)}
\section{出力形式の一覧}
\label{complete list of terminals}
\label{terminal}
\index{terminal}
\label{term}
\index{term}
gnuplot はとても多くの出力形式をサポートしています。これらは、適切な
出力形式を、必要なら機能を変更する追加オプションをつけて選択すること
により設定されます。以下参照: {\bf set terminal (p.~\pageref{set terminal})\index{terminal}}。

この文書は、あなたのシステム上で初期設定およびインストールがなされなか
ったために利用できない出力形式についても記述されているかも知れません。
インストールされた個々の gnuplot で、どの出力形式が有効なのかの一覧を
見るには、オプションを何もつけずに 'set terminal' と打ってください。

\subsection{Aed767}
\label{commands set terminal aed767}
\label{set terminal aed767}
\label{set term aed767}
\label{terminal aed767}
\label{term aed767}
\label{aed767}
\index{aed767}
\label{commands set terminal aed512}
\label{set terminal aed512}
\label{set term aed512}
\label{terminal aed512}
\label{term aed512}
\label{aed512}
\index{aed512}
出力ドライバ {\bf aed512} と {\bf aed767} は AED グラフィック端末をサポートし
ます。この 2 つのドライバは、水平方向の範囲のみが違っていて、それぞれ
512 ピクセルと 767 ピクセルです。垂直方向はいずれも 575 ピクセルです。
これらのドライバにはオプションはありません。
\subsection{Aifm}
\label{commands set terminal aifm}
\label{set terminal aifm}
\label{set term aifm}
\label{terminal aifm}
\label{term aifm}
\label{aifm}
\index{aifm}

注意: この出力ドライバは時代遅れです。Adobe Illustrator はレベル 1 の
PostScriptファイルを直接認識するので、{\bf set terminal post level1} を代
わりに使うべきです。

Adobe Illustrator 3.0+ ドライバ {\bf aifm} には、いくつかのオプションを設
定できます。

書式:
\preverbatim
\begin{verbatim}
     set terminal aifm {<color>} {"<fontname>"} {<fontsize>}
\end{verbatim}
\postverbatim

$<$color$>$ は {\bf color} か {\bf monochrome}、{\tt"}$<$fontname$>${\tt"} は正式な PostScript
フォント名、$<$fontsize$>$ はフォントサイズを PostScript のポイント数で与
えます。これらは {\bf set size} コマンドでスケール変換される前のものです。
{\bf default} を選択すると、全てのオプションがデフォルトの値: {\bf monochrome},
{\tt"}Times-Roman{\tt"}, 14pt, に設定されます。

AI は複数のページをサポートしていないので、複数のグラフは直接他のグラ
フの上に書かれます。しかし、各グラフは個別にグループ化されていて、AI
上で簡単にそれらを分離することが出来ます (単にそれらを拾い上げて移動
させるだけです)。

例:
\preverbatim
\begin{verbatim}
     set term aifm
     set term aifm 22
     set size 0.7,1.4; set term aifm color "Times-Roman" 14
\end{verbatim}
\postverbatim
\subsection{Amiga}
\label{commands set terminal amiga}
\label{set terminal amiga}
\label{set term amiga}
\label{terminal amiga}
\label{term amiga}
\label{amiga}
\index{amiga}
Commodore (コモドール) Amiga コンピュータ用の {\bf amiga} 出力ドライバは、
スクリーン (default)、または、Kickstart 3.0 またはそれ以上のものがインストールされていればカレントパブリックスクリーン上のウィンドウのどちらでも描画できます。フォントとそのサイズも選択できます。

書式:
\preverbatim
\begin{verbatim}
     set terminal amiga {screen | window} {"<fontname>"} {<fontsize>}
\end{verbatim}
\postverbatim

デフォルトのフォントは 8 ポイントの {\tt"}topaz{\tt"} です。

screen オプションは、仮想スクリーンを使うので、スクリーンより大きいグ
ラフを作ることも可能です。
\subsection{Apollo}
\label{commands set terminal apollo}
\label{set terminal apollo}
\label{set term apollo}
\label{terminal apollo}
\label{term apollo}
\label{apollo}
\index{apollo}
{\bf apollo} 出力ドライバは、Apollo グラフィックプリミティブリソースをサポ
ートしウィンドウのリサイズ後のリスケーリングもサポートしています。オプ
ションはありません。

固定サイズのウィンドウが必要ならば、{\bf gpr} 出力を代わりに使用してくださ
い。
\subsection{Aqua}
\label{commands set terminal aqua}
\label{set terminal aqua}
\label{set term aqua}
\label{terminal aqua}
\label{term aqua}
\label{aqua}
\index{aqua}
\label{Aqua}
\index{Aqua}
この出力形式は Mac OS X 上の表示に関する AquaTerm.app に依存しています。

書式:
\preverbatim
\begin{verbatim}
     set terminal aqua {<n>} {title "<wintitle>"} {size <x> <y>}
                       {font "<fontname>{,<fontsize>}"}
                       {{no}enhanced} {solid|dashed} {dl <dashlength>}}
\end{verbatim}
\postverbatim

$<$n$>$ は描画するウィンドウの番号 (デフォルトでは 0)
$<$wintitle$>$ はタイトルバーに表示される名前 (デフォルトは {\tt"}Figure $<$n$>${\tt"}),
$<$x$>$ $<$y$>$ は描画サイズ (デフォルトは 846x594 pt = 11.75x8.25 インチ) です。

使用されるフォントは $<$fontname$>$ で指定し (デフォルトは {\tt"}Times-Roman{\tt"})、
フォントサイズは $<$fontsize$>$ で設定します (デフォルトは 14.0 pt)。古い
書式 \{fname {\tt"}$<$fontname$>${\tt"}\} \{fsize $<$fontsize$>$\} もとりあえずサポートし
ています。

aqua 出力形式は、拡張文字列処理モード (enhanced text mode; 以下参照:{\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}) を、重ね書き以外はサポートしてます。フォントの使用はシステ
ムで有効なフォントに制限されています。文字エンコーディングは、
{\bf set encoding} で選択できますが、現在は iso\_latin\_1, iso\_latin\_2,
cp1250 と default (= UTF8) がサポートされています。

曲線は、実線か点線 (デフォルトは実線) のいずれかで描画でき、点線の間隔は
倍率 $<$dashlength$>$ ($>$0) で変更できます。

\subsection{Be}
\label{commands set terminal be}
\label{set terminal be}
\label{set term be}
\label{terminal be}
\label{term be}
\label{be}
\index{be}
\label{BE}
\index{BE}
{\bf gnuplot} は X サーバを利用する {\bf be} 出力ドライバを提供します。この出
力形式は、環境変数 {\bf DISPLAY} がセットされているか、環境変数 {\bf TERM} が
{\bf xterm} にセットされているか、またはコマンドラインオプションとして
{\bf -display} が使われていれば起動時に自動的に選択されます。

書式:
\preverbatim
\begin{verbatim}
         set terminal be {reset} {<n>}
\end{verbatim}
\postverbatim

複数のグラフ描画ウィンドウをサポートしています。{\bf set terminal be $<$n$>$}
は番号 n のウィンドウに出力します。n$>$0 の場合、その番号はウィンドウタ
イトルとアイコン名に {\bf gplt $<$n$>$} として付けられます。現在のウィンドウは
カーソル記号の変化で区別できます (デフォルトカーソルから十字カーソルへ)。

{\bf gnuplot} ドライバが別な出力ドライバに変更されても、描画ウィンドウは開
いたままになります。描画ウィンドウは、そのウィンドウにカーソルを置いて
文字 q を押すか、ウィンドウマネージャのメニューの {\bf close} を選択すれば
閉じることができます。{\bf reset} を実行すれば全てのウィンドウを一度に閉じ
れます。それは実際にウィンドウを管理している子プロセスを終了します (も
し {\bf -persist} が指定されていなければ)。

描画ウィンドウは {\bf -persisit} オプションが与えられていなければ、対話の
終了時に自動的に閉じられます。

描画サイズとアスペクト比は、{\bf gnuplot} のウィンドウをリサイズすることで
も変更できます。

線の幅と点のサイズは {\bf gnuplot} の {\bf set linestyle} で変更可能です。

出力ドライバ {\bf be} に関しては、{\bf gnuplot} は (起動時に)、コマンドライン、
または設定ファイルから、geometry や font, name などの通常の X Toolkit
オプションやリソースの指定を受け付けます。それらのオプションについては
X(1) マニュアルページ (やそれと同等のもの) を参照してください。

他にも {\bf be} 出力形式用の多くの {\bf gnuplot} のオプションがあります。これ
らは {\bf gnuplot} を呼ぶときにコマンドラインオプションとして指定するか、
または設定ファイル {\tt"}.Xdefaults{\tt"} のリソースとして指定できます。これらは
起動時に設定されるので、{\bf gnuplot} 実行時には変更できません。
\subsubsection{Command-line\_options}
\label{commands set terminal be command-line-options}
\label{set terminal be command-line-options}
\label{set term be command-line-options}
\label{be command-line-options}
X Toolkit オプションに加え、以下のオプションが gnuplot の立ち上げ時のコマンドラインで、またはユーザのファイル {\tt"}.Xdefaults{\tt"} 内のリソースとして指定できます:

\begin{center}
\begin{tabular}{|cl|} \hline
`-mono`  & カラーディスプレイ上で強制的に白黒描画\\
`-gray`  & グレイスケールまたはカラーディスプレイ上でのグレイスケール描画\\
            & (デフォルトではグレイスケールディスプレイは白黒描画を受け付ける)\\
`-clear` & 新しい描画を表示する前に (瞬間的に) 画面を消去\\
`-raise` & 各描画後に描画ウィンドウを最前面へ出す\\
`-noraise` & 各描画後に描画ウィンドウを最前面へ出すことはしない\\
`-persist` & gnuplot プログラム終了後も描画ウィンドウを残す\\
\hline
\end{tabular}
\end{center}
上記のオプション、はコマンドライン上での指定書式で、{\tt"}.Xdefaults{\tt"} にリ
ソースとして指定するときは異なる書式を使います。

例:
\preverbatim
\begin{verbatim}
         gnuplot*gray: on
\end{verbatim}
\postverbatim

{\bf gnuplot} は描画スタイル {\bf points} で描画する点のサイズの制御にも、コマンド
ラインオプション ({\bf -pointsize $<$v$>$}) とリソース ({\bf gnuplot*pointsize: $<$v$>$})
を提供しています。値 {\bf v} は点のサイズの拡大率として使われる実数値
(0 $<$ v $<$= 10) で、例えば {\bf -pointsize 2} はデフォルトのサイズの 2 倍、
{\bf -pointsize 0.5} は普通のサイズの半分の点が使われます。
\subsubsection{Monochrome\_options}
\label{commands set terminal be monochrome_options}
\label{set terminal be monochrome_options}
\label{set term be monochrome_options}
\label{be monochrome_options}
白黒ディスプレイに対しては {\bf gnuplot} は描画色 (foreground) も背景色
(background) も与えません。デフォルトでは背景は白、描画は黒です。{\bf -rv}
や {\bf gnuplot*reverseVideo: on} の場合には背景が黒で描画は白になります。

\subsubsection{Color\_resources}
\label{commands set terminal be color_resources}
\label{set terminal be color_resources}
\label{set term be color_resources}
\label{be color_resources}
カラーディスプレイに対しては、{\bf gnuplot} は以下のリソース (ここではそのデフォルトの値を示します)、または白黒階調 (greyscale) のリソースを参照
します。リソースの値はシステム上の BE rgb.txt ファイルに書かれている色
名、または 16 進の色指定 (BE のマニュアルを参照) か、色名と強度 (0 か
ら 1 の間の値) をコンマで区切った値を使用できます。例えば {\bf blue, 0.5}
は半分の強度の青、を意味します。

\begin{center}
\begin{tabular}{|cl|} \hline
&gnuplot*background: white\\
&gnuplot*textColor: black\\
&gnuplot*borderColor: black\\
&gnuplot*axisColor: black\\
&gnuplot*line1Color: red\\
&gnuplot*line2Color: green\\
&gnuplot*line3Color: blue\\
&gnuplot*line4Color: magenta\\
&gnuplot*line5Color: cyan\\
&gnuplot*line6Color: sienna\\
&gnuplot*line7Color: orange\\
&gnuplot*line8Color: coral\\
\hline
\end{tabular}
\end{center}

これらに関するコマンドラインの書式は、例えば以下の通りです。

例:
\preverbatim
\begin{verbatim}
         gnuplot -background coral
\end{verbatim}
\postverbatim

\subsubsection{Grayscale\_resources}
\label{commands set terminal be grayscale_resources}
\label{set terminal be grayscale_resources}
\label{set term be grayscale_resources}
\label{be grayscale_resources}
{\bf -gray} を選択すると、{\bf gnuplot} は、グレイスケールまたはカラーディスプ
レイに対して、以下のリソースを参照します (ここではそのデフォルトの値を示します)。デフォルトの背景色は黒であることに注意してください。

\begin{center}
\begin{tabular}{|cl|} \hline
&gnuplot*background: black\\
&gnuplot*textGray: white\\
&gnuplot*borderGray: gray50\\
&gnuplot*axisGray: gray50\\
&gnuplot*line1Gray: gray100\\
&gnuplot*line2Gray: gray60\\
&gnuplot*line3Gray: gray80\\
&gnuplot*line4Gray: gray40\\
&gnuplot*line5Gray: gray90\\
&gnuplot*line6Gray: gray50\\
&gnuplot*line7Gray: gray70\\
&gnuplot*line8Gray: gray30\\
\hline
\end{tabular}
\end{center}

\subsubsection{Line\_resources}
\label{commands set terminal be line_resources}
\label{set terminal be line_resources}
\label{set term be line_resources}
\label{be line_resources}
{\bf gnuplot} は描画の線の幅 (ピクセル単位) の設定のために以下のリソースを参照します (ここではそのデフォルトの値を示します)。0 または 1 は最小の
線幅の 1 ピクセル幅を意味します。2 または 3 の値によってグラフの外観を
改善できる場合もあるでしょう。

\begin{center}
\begin{tabular}{|cl|} \hline
&gnuplot*borderWidth: 2\\
&gnuplot*axisWidth: 0\\
&gnuplot*line1Width: 0\\
&gnuplot*line2Width: 0\\
&gnuplot*line3Width: 0\\
&gnuplot*line4Width: 0\\
&gnuplot*line5Width: 0\\
&gnuplot*line6Width: 0\\
&gnuplot*line7Width: 0\\
&gnuplot*line8Width: 0\\
\hline
\end{tabular}
\end{center}

{\bf gnuplot} は線描画で使用する点線の形式の設定用に以下のリソースを参照します。0 は実線を意味します。2 桁の 10 進数 {\bf jk} ({\bf j} と {\bf k} は 1 から
9 までの値) は、{\bf j} 個のピクセルの描画に {\bf k} 個の空白のピクセルが続く
パターンの繰り返しからなる点線を意味します。例えば '16' は 1 個のピク
セルの後に 6 つの空白が続くパターンの点線になります。さらに、4 桁の 10
進数でより詳細なピクセルと空白の列のパターンを指定できます。例えば、
'4441' は 4 つのピクセル、4 つの空白、4 つのピクセル、1 つの空白のパタ
ーンを意味します。以下のデフォルトのリソース値は、白黒ディスプレイ、あるいはカラーや白黒階調 (grayscale) ディスプレイ上の白黒描画における値
です。カラーディスプレイではそれらのデフォルトの値はほとんど 0 (実線)
で、{\bf axisDashes} のみがデフォルトで '16' の点線となっています。

\begin{center}
\begin{tabular}{|cl|} \hline
&gnuplot*borderDashes: 0\\
&gnuplot*axisDashes: 16\\
&gnuplot*line1Dashes: 0\\
&gnuplot*line2Dashes: 42\\
&gnuplot*line3Dashes: 13\\
&gnuplot*line4Dashes: 44\\
&gnuplot*line5Dashes: 15\\
&gnuplot*line6Dashes: 4441\\
&gnuplot*line7Dashes: 42\\
&gnuplot*line8Dashes: 13\\
\hline
\end{tabular}
\end{center}
\subsection{Canvas}
\label{commands set terminal canvas}
\label{set terminal canvas}
\label{set term canvas}
\label{terminal canvas}
\label{term canvas}

書式:
\preverbatim
\begin{verbatim}
     set terminal canvas {size <xsize>, <ysize>} {fsize <fontsize>}
                         {{no}enhanced} {linewidth <lw>}
                         {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 standalone} モードは、HTML 5 の canvas 要素を使用してグ
ラフを描画するような javascript コードを含む HTML ページを生成します。
その HTML ページは、2 つの必要な javascript ファイル 'canvastext.js'、
'gnuplot\_common.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

\subsection{Cgi}
\label{commands set terminal cgi}
\label{set terminal cgi}
\label{set term cgi}
\label{terminal cgi}
\label{term cgi}
\label{cgi}
\index{cgi}
\label{commands set terminal hcgi}
\label{set terminal hcgi}
\label{set term hcgi}
\label{terminal hcgi}
\label{term hcgi}
\label{hcgi}
\index{hcgi}
{\bf cgi} と {\bf hcgi} 出力ドライバは SCO CGI ドライバをサポートします。{\bf hcgi}
はプリンタ用で、環境変数 CGIPRNT が設定されている必要があります。{\bf cgi}
はディスプレイ、またはハードコピーに使え、環境変数 CGIDISP が設定され
ていればディスプレイを使用し、そうでなければ CGIPRNT を使用します。

これらの出力ドライバにはオプションはありません。
\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>"}
                      {<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} を
選択すると、全てのオプションをそのデフォルトの値にします。

各カラー (color) は 'xrrggbb' の形式です。ここで、x は文字 'x' そのも
の、'rrggbb' は 16 進数での赤、緑、青の成分です。例えば 'x00ff00' は
緑になります。背景色が最初に設定され、以下は描画色となります。

例:
\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}
\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}{|ccl|} \hline
\multicolumn{3}{|c|}{CGM fonts}\\
&Helvetica&\\
&Helvetica Bold&\\
&Helvetica Oblique&\\
&Helvetica Bold Oblique&\\
&Times Roman&\\
&Times Bold&\\
&Times Italic&\\
&Times Bold Italic&\\
&Courier&\\
&Courier Bold&\\
&Courier Oblique&\\
&Courier Bold Oblique&\\
&Symbol&\\
&Hershey/Cartographic\_Roman&\\
&Hershey/Cartographic\_Greek&\\
&Hershey/Simplex\_Roman&\\
&Hershey/Simplex\_Greek&\\
&Hershey/Simplex\_Script&\\
&Hershey/Complex\_Roman&\\
&Hershey/Complex\_Greek&\\
&Hershey/Complex\_Script&\\
&Hershey/Complex\_Italic&\\
&Hershey/Complex\_Cyrillic&\\
&Hershey/Duplex\_Roman&\\
&Hershey/Triplex\_Roman&\\
&Hershey/Triplex\_Italic&\\
&Hershey/Gothic\_German&\\
&Hershey/Gothic\_English&\\
&Hershey/Gothic\_Italian&\\
&Hershey/Symbol\_Set\_1&\\
&Hershey/Symbol\_Set\_2&\\
&Hershey/Symbol\_Math&\\
&ZapfDingbats&\\
&Script&\\
&15&\\
\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}
\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}
\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}
\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}
\label{set terminal cgm solid}
\label{set term cgm solid}
\label{cgm solid}
{\bf solid} オプションは描画の点線の線描画スタイルを無効するのに使います。
これは、カラーが有効である場合、また点線にすることでグラフが見にくくな
る場合に有用でしょう。{\bf dashed} オプションはデフォルトの挙動を保証し、
この場合個々の線種に異なる点線のパターンが与えられます。
\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}
\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}
\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{Corel}
\label{commands set terminal corel}
\label{set terminal corel}
\label{set term corel}
\label{terminal corel}
\label{term corel}
\label{corel}
\index{corel}
{\bf corel} 出力形式は CorelDraw 用の出力です。

書式:
\preverbatim
\begin{verbatim}
     set terminal corel {  default
                         | {monochrome | color
                              {"<font>" {<fontsize> 
                                 {<xsize> <ysize> {<linewidth> }}}}}
\end{verbatim}
\postverbatim

ここで、フォントサイズ ({\bf fontsize}) と線幅 ({\bf linewidth}) はポイント単
位、横幅 ({\bf xsize}) と縦幅 ({\bf ysize}) はインチ単位です。デフォルトの値は
それぞれ、monochrome, {\tt"}SwitzerlandLight{\tt"}, 22, 8.2, 10, 1.2 です。
\subsection{Debug}
\label{commands set terminal debug}
\label{set terminal debug}
\label{set term debug}
\label{terminal debug}
\label{term debug}
\label{debug}
\index{debug}
このドライバは {\bf gnuplot} のデバッグのために提供されているものです。お
そらくソースコードを修正するユーザのみが使用するものでしょう。
\subsection{Dospc}
\label{commands set terminal dospc}
\label{set terminal dospc}
\label{set term dospc}
\label{terminal dospc}
\label{term dospc}
\label{dospc}
\index{dospc}
{\bf dospc} ドライバは  PC の任意のグラフィックボードをサポートし、それら
を自動検出します。これは、gcc, または Zortec C/C++ コンパイラを使って
いないときのみ利用可能です。
\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}) ドライバにはサイズの指定と改行制御用のオプションがあ
ります。

書式:
\preverbatim
\begin{verbatim}
     set terminal dumb {[no]feed} {<xsize> <ysize>}
                       {[no]enhanced}
\end{verbatim}
\postverbatim

$<$xsize$>$, $<$ysize$>$ はダム端末 のサイズを設定し、デフォルトはそれぞれ 79,
24 となっています。最後の改行は、{\bf feed} オプションが設定されている場合
のみ出力されます。

例:
\preverbatim
\begin{verbatim}
     set term dumb nofeed
     set term dumb 79 49 # VGA screen---何故こうしたい人がいるんだろう ?
\end{verbatim}
\postverbatim
\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 set size} で変更できます。{\bf dxf} は 7 色
(白、赤、黄、緑、水色、青、赤紫) を使いますが、これを変更するにはドラ
イバソースファイルを修正する必要があります。白黒の出力装置を使う場合、
それらの色は線の太さの違いで表現されます。詳細は AutoCad の印刷/プロッ
タ出力コマンドに関する記述を参照してください。
\subsection{Dxy800a}
\label{commands set terminal dxy800a}
\label{set terminal dxy800a}
\label{set term dxy800a}
\label{terminal dxy800a}
\label{term dxy800a}
\label{dxy800a}
\index{dxy800a}
このドライバは Roland DXY800A プロッタをサポートします。オプションはあ
りません。
\subsection{Eepic}
\label{commands set terminal eepic}
\label{set terminal eepic}
\label{set term eepic}
\label{terminal eepic}
\label{term eepic}
\label{eepic}
\index{eepic}
{\bf eepic} ドライバは LaTeX picture 環境を拡張するものをサポートします。
これは {\bf latex} ドライバに代わる別な選択肢です。

このドライバによる出力は、LaTeX 用の {\tt"}eepic.sty{\tt"} マクロパッケージと共
に使われることを仮定しています。それを使うには、{\tt"}eepic.sty{\tt"} と
{\tt"}epic.sty{\tt"}、および {\tt"}tpic{\tt"} $\backslash$special 命令群をサポートするプリンタドライ
バが必要です。もし、あなたの使うプリンタドライバがそれらの {\tt"}tpic{\tt"}
$\backslash$special 命令をサポートしていない場合でも、{\tt"}eepicemu.sty{\tt"} を使うことで
それらのうちのいくつかを使えるようになります。
dvips と dvipdfm は {\tt"}tpic{\tt"} $\backslash$special をサポートしています。

書式:
\preverbatim
\begin{verbatim}
  set terminal eepic {color, dashed, rotate, small, tiny, default, <fontsize>}
\end{verbatim}
\postverbatim

オプション:
オプションは任意の順番で与えることができます。
'color' は gnuplot に $\backslash$color\{...\} コマンドを生成させ、それによりグラフ
をカラーにします。このオプションを使用する場合は、latex 文書のプリアン
ブルに $\backslash$usepackage\{color\} を入れる必要があります。
'dashed' は線種に点線を使用することを許可します。このオプションを指定
しないと、色々な太さの実線のみが使われます。
'dashed' と 'color' は一方のみが意味を持ち、'color' が指定された場合、
'dashed' は無視されます。
'rotate' は本当に回転 (90 度) された文字列を使用するようになります。指
定しない場合は、1 文字 1 文字、上に積み上げていく方法で回転された文字
列を作ります。このオプションを使う場合は、$\backslash$usepackage\{graphicx\} をプリ
アンブルに入れる必要があります。
'small' は point スタイルでのグラフ描画の印として $\backslash$scriptsize の記号を
使用します (多分これは TeX ではだめで、LaTeX2e でしか使えないでしょう)。
デフォルトでは標準の数式のサイズを使用します。
'tiny' は、それに $\backslash$scriptscriptstyle の記号を使用します。
'default' は全てのオプションをデフォルトの値にリセットします。デフォル
トは、color はなし、dashed line はなし、疑似回転 (積み上げ) 文字列の使
用、大きなサイズの記号の使用、です。
$<$fontsize$>$ は picture 環境内でのフォントサイズを指定する数字です。単位
は pt (ポイント) で、10 pt はほぼ 3.5 mm です。フォントサイズを指定し
ない場合、全てのグラフ内の文字は $\backslash$footnotesize に設定されます。

注意:
文字 \# (およびその他 (La)TeX で特別な意味を持つその他の文字) を $\backslash$$\backslash$ (バ
ックスラッシュ 2 つ) でエスケープすることを忘れないでください。
グラフの角が近すぎると点線は実線のようになります。(これが tpic specials
の一般的な問題なのか、eepic.sty や dvips/dvipdfm のバグが原因なのかは私
にはわかりません。)
デフォルトの eepic グラフの大きさは 5x3 インチで、これは 'set size a,b'
で伸縮可能です。
数ある中で、点 (point) は、LaTeX のコマンド {\tt"}$\backslash$Diamond{\tt"}, {\tt"}$\backslash$Box{\tt"} などを
使って描かれます。これらのコマンドは現在は LaTeX2e のコアには存在せず
latexsym パッケージに含まれていますが、このパッケージ基本配布の一部で
あり、よって多くの LaTeX のシステムの一部になっています。このパッケー
ジを使うことを忘れないでください。latexsym の代わりに amssymb パッケー
ジを使うことも可能です。
LaTeX に関する全てのドライバは文字列の配置の制御に特別な方法を提供しま
す: '\{' で始まる文字列は、'\}' で閉じる必要がありますが、その文字列全体
が水平方向にも垂直方向にもセンタリングされます。'[' で始まる文字列の場
合は、位置の指定をする文字列 (t,b,l,r のうち 2 つまで) が続き、次に
']\{'、文字列本体、で最後に '\}' としますが、この文字列は LaTeX が LR-box
として整形します。'$\backslash$rule\{\}\{\}' を使えばさらに良い位置合わせが可能でしょ
う。

例:
set term eepic
\preverbatim
\begin{verbatim}
 は、グラフを picture 環境に含まれた eepic マクロとして出力します。
 そのファイルを LaTeX 文書に \input で取り込んでください。
\end{verbatim}
\postverbatim
set term eepic color tiny rotate 8
\preverbatim
\begin{verbatim}
 eepic マクロを \color マクロ、point 印は \scripscriptsize の大きさ、
 本当に回転された文字の使用、および全ての文字を 8pt にセットして出力
 します。
\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
\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} {solid | dashed}
                      {enhanced {noproportional}}
                      {rounded | butt}
                      {linewidth <LW>} {dashlength <DL>} {size XX,YY}
                      {"<fontname>"} {<fontsize>}    #古い書式
                      {font "<fontname>,<fontsize>"} #新しい書式
\end{verbatim}
\postverbatim

{\bf monochorome} モードは折れ線を点線のパターンを循環させて打ち出します。
{\bf color} モードは折れ線をいくつかの色で打ち出し、すべての 8 つのデフォ
ルト色を使いつくした後にのみ点線パターンを変化させます。
{\bf solid} は全ての線を実線で書き、点線のパターンは塗りつぶします。
{\bf linewidth $<$factor$>$} は全ての線幅をここで指定する値倍にします。
{\bf dashlength $<$factor$>$} は、太い線には便利でしょう。
{\bf $<$fontname$>$} はフォント名、
{\bf $<$fontsize$>$} はポイント単位でのフォントの大きさです。

出力画像の形式的な (名ばかりの) サイズは、デフォルトでは適当な単位での
1024x768 になっています。オプション {\bf size} を使って別な形式的なサイズ
を指定できます。

拡張文字列処理モード (enhanced text mode) は、プロポーショナル文字間隔
を近似しようとします。モノスペースフォントを使う場合、あるいはこの近似
を好まない場合、オプション {\bf noproportional} を使うことでこの補正をオフ
にできます。

デフォルトの設定は、{\bf color dashed font {\tt"}Arial,12{\tt"} size 1024,768} で、
{\bf default} を選択すると全てのオプションがそのデフォルトの値になります。

例:
\preverbatim
\begin{verbatim}
     set terminal emf 'Times Roman Italic' 12
     set terminal emf color solid    # 面倒な点線など消えてしまえ !
\end{verbatim}
\postverbatim
\subsection{Emxvga}
\label{commands set terminal emxvga}
\label{set terminal emxvga}
\label{set term emxvga}
\label{terminal emxvga}
\label{term emxvga}
\label{emxvga}
\index{emxvga}
\label{commands set terminal emxvesa}
\label{set terminal emxvesa}
\label{set term emxvesa}
\label{terminal emxvesa}
\label{term emxvesa}
\label{emxvesa}
\index{emxvesa}
\label{commands set terminal vgal}
\label{set terminal vgal}
\label{set term vgal}
\label{terminal vgal}
\label{term vgal}
\label{vgal}
\index{vgal}
{\bf emxvga}, {\bf emxvesa}, {\bf vgal} の各ドライバはそれぞれ SVGA, vesa SVGA,
VGA グラッフィックボードの PC をサポートします。これらは DOS、または
OS/2 上で、{\tt"}emx-gcc{\tt"} でコンパイルされたることを意図しています。これ
らにはさらに VESA パッケージと SVGAKIT が必要です。これらは Johannes
Martin (JMARTIN@GOOFY.ZDV.UNI-MAINZ.DE) が保守し David J. Liu
(liu@phri.nyu.edu) が拡張しているライブラリです。

書式:
\preverbatim
\begin{verbatim}
     set terminal emxvga
     set terminal emxvesa {vesa-mode}
     set terminal vgal
\end{verbatim}
\postverbatim

唯一のオプションは {\bf emxvesa} に対する vesa のモードで、デフォルトでは
それは G640x480x256 となっています。
\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}
                             {oldstyle | newstyle}
                             {level1 | leveldefault}
                             {color | colour | monochrome}
                             {solid | dashed}
                             {dashlength | dl <DL>}
                             {linewidth | lw <LW>}
                             {rounded | butt}
                             {clip | noclip}
                             {palfuncparam <samples>{,<maxdeviation>}}
                             {size <XX>{unit},<YY>{unit}}
                             {header <header> | noheader}
                             {blacktext | colortext | colourtext}
                             {{font} "fontname{,fontsize}" {<fontsize>}}
\end{verbatim}
\postverbatim

epslatex 出力形式は、文字列を PostScript コードに含ませる代わりに LaTeX
ファイルに移すことを除けば {\bf terminal postscript eps} 同様に描画します。
よって、{\bf postscript terminal} と多くのオプションが共通です。

version 4.0 から 4.2 の間に、postscript 出力形式とのより良い互換性の
ために epslatex 出力は変更されました。描画サイズは 5 x 3 インチから
5 x 3.5 インチへと変更され、文字幅は従来はフォントサイズの 50\% と見
なしていましたが、現在は 60\% と評価しています。より多くの Postscript
の線種や記号も使われます。以前の状態にほぼ等しい状態にするにはオプション {\bf oldstyle} を指定してください。(実際にはごくわずかな違いが残ります:
記号のサイズがわずかに違い、目盛刻み (tics) は従来の半分になっています
がそれは {\bf set tics scale} で変更できます。そして矢 (arrow) に関しては
postscript 出力形式で使える全ての機能が利用できます。)

以下のようなエラーメッセージが出た場合:
\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 solid} は全てのグラフの点線のパターンを実線で上書きします。
{\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 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 これは、以前は、出力形式での設定よりも、コマンド set size で設定した方がいい、と言っていたことの変更を意味します}。以前の方法では BoundingBox は変更されずに残ってしまい、スクリーン座標が実際の描画の限界に対応していませんでした。

{\bf blacktext} は、たとえカラーモードでも全ての文字列を黒で書きます。

epslatex ドライバは文字列の配置の制御に特別な方法を提供します:
(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 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 フォント等となっています。以下には、多くのフォントの名前について書かれています。
\par\hskip2.7em\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{Epson\_180dpi}
\label{commands set terminal epson_180dpi}
\label{set terminal epson_180dpi}
\label{set term epson_180dpi}
\label{terminal epson_180dpi}
\label{term epson_180dpi}
\label{epson_180dpi}
\index{epson 180dpi}
\label{commands set terminal epson_60dpi}
\label{set terminal epson_60dpi}
\label{set term epson_60dpi}
\label{terminal epson_60dpi}
\label{term epson_60dpi}
\label{epson_60dpi}
\index{epson 60dpi}
\label{commands set terminal epson_lx800}
\label{set terminal epson_lx800}
\label{set term epson_lx800}
\label{terminal epson_lx800}
\label{term epson_lx800}
\label{epson_lx800}
\index{epson lx800}
\label{commands set terminal nec_cp6}
\label{set terminal nec_cp6}
\label{set term nec_cp6}
\label{terminal nec_cp6}
\label{term nec_cp6}
\label{nec_cp6}
\index{nec cp6}
\label{commands set terminal okidata}
\label{set terminal okidata}
\label{set term okidata}
\label{terminal okidata}
\label{term okidata}
\label{okidata}
\index{okidata}
\label{commands set terminal starc}
\label{set terminal starc}
\label{set term starc}
\label{terminal starc}
\label{term starc}
\label{starc}
\index{starc}
\label{commands set terminal tandy_60dpi}
\label{set terminal tandy_60dpi}
\label{set term tandy_60dpi}
\label{terminal tandy_60dpi}
\label{term tandy_60dpi}
\label{tandy_60dpi}
\index{tandy 60dpi}
\label{commands set terminal dpu414}
\label{set terminal dpu414}
\label{set term dpu414}
\label{terminal dpu414}
\label{term dpu414}
\label{dpu414}
\index{dpu414}
このドライバはエプソンプリンタのいくつかとそれに類似するものをサポート
します。

{\bf epson\_180dpi} と {\bf epson\_60dpi} はそれぞれ 180dpi (ドット/インチ),
60dpi の解像度の Epson LQ 型 24 ピンプリンタ用のドライバです。

{\bf epson\_lx800} は Epson LX-800, Star の NL-10 や NX-1000, PROPRINTER な
どの適当なプリンタに流用できる、一般的な 9 ピンプリンタドライバです。

{\bf nec\_cp6} は NEC CP6 や Epson LQ-800 などのプリンタで使える、一般的な
24 ピンプリンタ用のドライバです。

{\bf okidata} ドライバは 9 ピンの OKIDATA 320/321 標準プリンタをサポートし
ます。

{\bf starc} ドライバは Star カラープリンタ用です。

{\bf tandy\_60dpi} ドライバは 9 ピン 60dpi の Tandy DMP-130 シリーズ用です。

{\bf dpu414} ドライバは Seiko DPU-414 感熱プリンタ用です。

{\bf nec\_cp6} にはオプションがあります:

書式:
\preverbatim
\begin{verbatim}
     set terminal nec_cp6 {monochrome | colour | draft}
\end{verbatim}
\postverbatim

デフォルトでは白黒 (monochrome) です。

{\bf dpu414} にはオプションがあります:

書式:
\preverbatim
\begin{verbatim}
     set terminal dpu414 {small | medium | large} {normal | draft}
\end{verbatim}
\postverbatim

デフォルトは medium (= フォントサイズ) で normal です。
おすすめの組み合わせは、{\bf medium normal} か {\bf small draft} です。

\subsection{Excl}
\label{commands set terminal excl}
\label{set terminal excl}
\label{set term excl}
\label{terminal excl}
\label{term excl}
\label{excl}
\index{excl}
{\bf excl} ドライバは EXCL レーザープリンターや 1590 のような Talaris プリ
ンタをサポートします。オプションはありません。
\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} ドライバは Fig グラフィック言語での出力を生成します。

書式:
\preverbatim
\begin{verbatim}
     set terminal fig {monochrome | color}
                      {landscape | portrait}
                      {small | big | size <xsize> <ysize>}
                      {metric | inches}
                      {pointsmax <max_points>}
                      {solid | dashed}
                      {font <fontname>} {fontsize <fsize>}
                      {textnormal | {textspecial texthidden textrigid}}
                      {{thickness|linewidth} <units>}
                      {depth <layer>}
                      {version <number>}
\end{verbatim}
\postverbatim

{\bf monochrome} と {\bf color} は 画像を白黒にするか {\bf color} にするかを決定し
ます。{\bf small} と {\bf big} は、デフォルトの {\bf landscape} モードではグラフを
5x3 インチにするか 8x5 インチにするか、{\bf portrait} モードでは 3x5 イン
チにするか 5x8 インチにするかを決定します。{\bf size} は描画範囲を
$<$xsize$>$*$<$ysize$>$ に設定 (変更) します。この場合の単位は、{\bf inches} か
{\bf metric} かの設定によってそれぞれインチかセンチメートルかになります。
この設定は {\tt"}xfig{\tt"} での編集に対するデフォルトの単位としても使われます。

{\bf pointsmax $<$max\_points$>$} は折れ線の最大点数を設定します。

{\bf solid} は、実線 (solid) の linestyle が全部使われてしまった後で自動的
に使われる点線の使用を抑制し、別な形で表示します。

{\bf fontsize} はテキストフォントのサイズを $<$fsize$>$ ポイントに設定します。
{\bf textnormal} はテキストフラグの設定をリセットして postscript フォント
を選択し、{\bf textspecial} はテキストフラグを LaTeX special に設定し、
{\bf texthidden}, {\bf textrigid} はそれぞれ無表示のテキスト、スケーリングされ
ないテキスト用のフラグを設定します。

{\bf depth} は全ての線と文字列に対する、重なりに関するデフォルトの深さ
(depth layer) を設定します。デフォルトの深さは 10 で、{\tt"}xfig{\tt"} でグラフ
の上に何かを上書きするための余地を残しています。

{\bf version} は生成される fig 出力の書式バージョンを設定します。現在は、
バージョン 3.1 と 3.2 のみがサポートされています。

{\bf thickness} はデフォルトの線の太さを設定し、指定されなければ 1 になりま
す。太さの変更は、{\bf plot} コマンドの {\bf linetype} の値に 100 倍の数を加え
ることで実現できます。同様に、(デフォルトの深さに対する) 各描画要素の
深さの値は $<$linetype$>$ に 1000 倍の数を加えることで制御できます。よって
その深さは $<$layer$>$+$<$linetype$>$/1000 になり、線の太さは ($<$linetype$>$\%1000)
/100 となりますが、その値が 0 の場合はデフォルトの線の太さになります。
{\bf linewidth} は {\bf thickness} と同義です。

{\bf plot} コマンドの {\bf point} スタイルによる描画の際の記号を {\bf fig} ドライ
バで追加することもできます。記号の指定は ({\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
これらの記号の大きさはフォントの大きさと関係しています。デフォルトでは
記号の深さは、良いエラーバーを実現するために、線の深さより 1 だけ小さ
い値になっています。$<$pointtype$>$ が 1000 より大きい場合、深さは $<$layer$>$
+$<$pointtype$>$/1000-1 になります。$<$pointtype$>$\%1000 が 100 より大きい場合
塗りつぶし色は ($<$pointtype$>$\%1000)/100-1 になります。

有効な塗りつぶし色 (1 から 9) は、黒、青、緑、水色、赤、紫、黄、白、暗
い青 (白黒モードでは 1 から 6 までは黒で 7 から 9 までは白) です。

$<$linetype$>$ と $<$pointtype$>$ の詳細については、以下参照: {\bf plot with (p.~\pageref{plot with})\index{with}}。

{\bf big} オプションは以前のバージョンの {\bf bfig} ドライバの代用品ですが、このドライバは今はもうサポートされていません。

例:
\preverbatim
\begin{verbatim}
     set terminal fig monochrome small pointsmax 1000  # デフォルト
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
     plot 'file.dat' with points linetype 102 pointtype 759
\end{verbatim}
\postverbatim
は、黄色で塗りつぶされた円を生成し、それら輪郭は幅 1 の青い線です。

\preverbatim
\begin{verbatim}
     plot 'file.dat' using 1:2:3 with err linetype 1 pointtype 554
\end{verbatim}
\postverbatim
は黒い線によるエラーバーと赤で塗りつぶされた円を生成します。この円は線
よりも 1 層だけ上になります (デフォルトでは深さは 9)。

円の上にエラーバーを書くには以下のようにしてください。
\preverbatim
\begin{verbatim}
     plot 'file.dat' using 1:2:3 with err linetype 1 pointtype 2554
\end{verbatim}
\postverbatim
\subsection{Ggi}
\label{commands set terminal ggi}
\label{set terminal ggi}
\label{set term ggi}
\label{terminal ggi}
\label{term ggi}
\label{ggi}
\index{ggi}
{\bf ggi} ドライバは X や svgalib のような異なるターゲット上で動作します。

書式:
\preverbatim
\begin{verbatim}
  set terminal ggi [acceleration <integer>] [[mode] {mode}]
\end{verbatim}
\postverbatim

X では、ウィンドウマネージャの機能を使ってウィンドウのサイズを変更する
ことはできませんが、モードを mode オプションを使って、例えば以下のように変更することができます:
\preverbatim
\begin{verbatim}
- V1024x768
- V800x600
- V640x480
- V320x200
\end{verbatim}
\postverbatim
他のモードについては、ggi (libggi) のドキュメントを参照してください。
キーワード {\bf mode} は追加してもしなくても結構です。libggi のマニュアル
ページで紹介されているように、環境変数でターゲットを選択することをお勧
めします。X 上で DGA を使うなら、例えば以下のようにしてください。
\preverbatim
\begin{verbatim}
  bash> export GGI_DISPLAY=DGA
  csh>  setenv GGI_DISPLAY DGA
\end{verbatim}
\postverbatim

{\bf acceleration} は、相対的なポインタ動作イベントを発生するターゲット
(例えば DGA) でのみ使用され、正の整数で相対的な距離に対する倍率 (積因
子) を表します。デフォルトの acceleration は 7 です。

例:
\preverbatim
\begin{verbatim}
  set term ggi acc 10
  set term ggi acc 1 mode V1024x768
  set term ggi V1024x768
\end{verbatim}
\postverbatim
\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}transparent} {rounded|butt}
            {linewidth <lw>} {dashlength <dl>}
            {tiny | small | medium | large | giant}
            {font "<face> {,<pointsize>}"} {{no}enhanced}
            {size <x>,<y>} {{no}crop}
            {animate {delay <d>} {loop <n>} {{no}optimize}}
            {<background_color>}
\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 より大きい場合に
のみ有効です。この設定は、水平線、垂直線の描画の場合に有用でしょう。
デフォルトは {\bf rounded} (丸め) です。

フォントの選択の詳細は、やや複雑です。
以下に同じ意味を持つ簡単な例を示します:
\preverbatim
\begin{verbatim}
    set term gif font arial 11
    set term gif font "arial,11"
\end{verbatim}
\postverbatim
より詳しい情報については、{\bf fonts} の下の該当するセクションを参照してく
ださい。

オプション {\bf animate} はあなたの手元にある gd ライブラリがアニメーショ
ン gif の作成をサポートする場合にのみ有効です。作成される画像の表示間
隔は、1/100 秒単位で指定できます (デフォルトは 5)。ただし実際の表示間
隔は、使用する表示ソフトによって変化します。
アニメーションの繰り返し回数も指定できますが、デフォルトは 0 でそれは
無限の繰り返しを意味します。
アニメーション画像列は、次の {\bf set output} か {\bf set term} コマンドによっ
て終了します。オプション {\bf optimize} は、アニメーションに関する 2 つの
効果を持ちます。

1) アニメーション全体を通じて単一のカラーマップが使用されます。これは
アニメーションの全てのフレームで使用される全ての色が最初のフレームで
定義されている必要があります。

2) 可能ならば、個々のフレームで一つ前のフレームと違う部分のみがアニメ
ーションファイルに保存されます。これはファイルサイズを小さくしてくれ
ますが、透明化機能を使用している場合には働かないかもしれません。

これら両方の最適化はより小さいサイズの出力ファイルを作ろうとするもの
ですが、多分その減少量は、長いアニメーションかまたはフレームサイズが
とても小さな場合にのみ意味がある程度でしょう。
オプション {\bf nooptimize} はこれらの効果をいずれも無効にします。各フレ
ームは、個々のカラーマップ (プライベートカラーマップ) を使い、丸ごと
保存されていきます。一つ注意しておきますが、最適化されていないアニメ
ーションファイルは外部ユーティリティを使って後処理することができます
し、その後処理によって gnuplot の最適化よりも小さなファイルが作られ
るかもしれません。
デフォルトでは {\bf nooptimize} です。

出力描画サイズ $<$x,y$>$ はピクセル単位で与えます。デフォルトは 640x480 で
す。以下も参照: {\bf canvas (p.~\pageref{canvas})\index{canvas}}, {\bf set size (p.~\pageref{set size})\index{size}}。
描画終了後の端の余白は、オプション {\bf crop} で取り除くことができ、その結
果としてその画像サイズは小さくなります。デフォルトは {\bf nocrop} です。

背景色は 'xrrggbb' の形式で指定します。ここで、x はそのまま文字 'x' を
意味し、'rrggbb' は赤、緑、青の 16 進数での成分です。例えば 'x00ff00'
は緑を表します。背景色以外の追加の色指定は非推奨です。

\subsubsection{例}
\label{set term gif examples}
\preverbatim
\begin{verbatim}
     set terminal gif medium size 640,480 xffffff
\end{verbatim}
\postverbatim

この例は medium サイズの、大きさ変更不能で回転できない組み込みフォント
を使用し、透明化されない背景色として白 (xffffff) を使用します。

\preverbatim
\begin{verbatim}
     set terminal gif font arial 14 enhanced
\end{verbatim}
\postverbatim

これは、'arial' というフェース名のスケーラブルフォントを検索し、フォン
トサイズを 14pt に設定します。フォントの検索がどのように行われるかにつ
いては以下参照: {\bf fonts (p.~\pageref{fonts})\index{fonts}}。これはスケーラブルフォントなので、拡張文字列
処理モードが使用できます。

\preverbatim
\begin{verbatim}
     set term gif animate transparent opt delay 10 size 200,200 x000000
     load "animate2.dem"
\end{verbatim}
\postverbatim

これは、アニメーション GIF ファイルの作成用に gif 出力形式を開きます。
アニメーション列の個々のフレームは、標準デモファイル集にあるスクリプト
ファイル animate2.dem によって生成されます。

\subsection{Gnugraph(GNU plotutils)}
\label{commands set terminal gnugraph}
\label{set terminal gnugraph}
\label{set term gnugraph}
\label{terminal gnugraph}
\label{term gnugraph}
\label{gnugraph}
\index{gnugraph}
{\bf gnugraph} ドライバは、デバイスに依存しない GNU の plot グラフィック言
語の出力を生成します。それを {\tt"}plot2ps{\tt"} で PostScript 形式の出力にした
大きさのデフォルトは 5 インチ x 3 インチです。これは {\bf set size} で約
8.25 x 8.25 まで増加させることが可能です。

書式:
\preverbatim
\begin{verbatim}
     set terminal gnugraph {"<fontname>"} {<fontsize>}
                           {type <pt>} {size "<size>"}
\end{verbatim}
\postverbatim

デフォルトは 10 ポイントの {\tt"}Courier{\tt"} です。

{\bf type} には以下のオプションが追加できます: {\bf X}, {\bf pnm}, {\bf gif}, {\bf ai},{\bf ps}, {\bf cgm}, {\bf fig}, {\bf pcl5}, {\bf hpgl}, {\bf tek}, {\bf meta} (default)。
{\bf size} オプション (default では a4) は、そのまま直接 plotutils に渡さ
れますので、ユーザは正しい値を設定する義務を負います。詳細は plotutils
のドキュメントを参照してください。

例:
\preverbatim
\begin{verbatim}
     set terminal gnugraph type hpgl size "a4"
     set terminal gnugraph size "a4,xoffset=-5mm,yoffset=2.0cm" type pnm
\end{verbatim}
\postverbatim

非 GNU 版の {\bf gnugraph} ドライバもありますが、それは GNU 版のを取り除か
ないとコンパイルはされません。
\subsection{Gpic}
\label{commands set terminal gpic}
\label{set terminal gpic}
\label{set term gpic}
\label{terminal gpic}
\label{term gpic}
\label{gpic}
\index{gpic}
{\bf gpic} ドライバは FSF (the Free Software Foundations) の {\tt"}groff{\tt"} パッ
ケージの中の GPIC 形式のグラフを生成します。デフォルトの大きさは 5 x 3
インチです。オプションは原点に関するもののみで、デフォルトでは (0,0)
です。

書式:
\preverbatim
\begin{verbatim}
     set terminal gpic {<x> <y>}
\end{verbatim}
\postverbatim

ここで {\bf x} と {\bf y} の単位はインチです。

単純なグラフを整形するには以下のようにします。

\preverbatim
\begin{verbatim}
     groff -p -mpic -Tps file.pic > file.ps
\end{verbatim}
\postverbatim

pic からの出力はパイプで eqn に渡すこともできるので、'set label' と
{\bf set \{x/y\}label} コマンドでグラフに複雑な関数の式を入れることも可能で
す。例えば、

\preverbatim
\begin{verbatim}
     set ylab '@space 0 int from 0 to x alpha ( t ) roman d t@'
\end{verbatim}
\postverbatim

とすれば、以下のコマンドによって y 軸に綺麗な積分が見出し付けされます。

\preverbatim
\begin{verbatim}
     gpic filename.pic | geqn -d@@ -Tps | groff -m[macro-package] -Tps
         > filename.ps
\end{verbatim}
\postverbatim

このようにして作られた図は文書に綺麗に当てはまるように伸縮することがで
きます。pic 言語は簡単に理解できるので、必要なら容易にグラフを直接編集
できます。{\bf gnuplot} で作られる pic ファイルの全ての座標は x+gnuplotx,
y+gnuploty の形で与えられます。デフォルトでは x, y の値は 0 です。いく
つかのファイルに対してその x,y を 0 と設定している行を削除すれば、以下のようにして複数のグラフを一つの図の中に入れてしまうこともできます (デフォルトの大きさは 5.0x3.0 インチ):

\preverbatim
\begin{verbatim}
     .PS 8.0
     x=0;y=3
     copy "figa.pic"
     x=5;y=3
     copy "figb.pic"
     x=0;y=0
     copy "figc.pic"
     x=5;y=0
     copy "figd.pic"
     .PE
\end{verbatim}
\postverbatim

これは、横に 2 つ、縦に 2 つずつ並んだ 4 つのグラフからなる、8 インチ
の広さの図を生成します。

以下のコマンドでも同じことができます。

\preverbatim
\begin{verbatim}
     set terminal gpic x y
\end{verbatim}
\postverbatim

これを例えば以下のように使います。

\preverbatim
\begin{verbatim}
     .PS 6.0
     copy "trig.pic"
     .PE
\end{verbatim}
\postverbatim
\subsection{Gpr}
\label{commands set terminal gpr}
\label{set terminal gpr}
\label{set term gpr}
\label{terminal gpr}
\label{term gpr}
\label{gpr}
\index{gpr}
{\bf gpr} ドライバは Apollo Graphics Primitive Resource の固定サイズウィン
ドウをサポートします。オプションはありません。

色々なサイズのウィンドウが必要なら、{\bf apollo} ドライバを代わりに使用し
てください。
\subsection{Grass}
\label{commands set terminal grass}
\label{set terminal grass}
\label{set term grass}
\label{terminal grass}
\label{term grass}
\label{grass}
\index{grass}
{\bf grass} ドライバは GRASS 地理情報システムのユーザが {\bf gnuplot} を利用す
ることを可能にします。詳しい情報については grassp-list@moon.cecer.army.mil
に連絡を取ってください。ページは GRASS グラフウィンドウの現在のフレー
ムに書かれます。オプションはありません。
\subsection{Hercules}
\label{commands set terminal hercules}
\label{set terminal hercules}
\label{set term hercules}
\label{terminal hercules}
\label{term hercules}
\label{hercules}
\index{hercules}
\label{commands set terminal egalib}
\label{set terminal egalib}
\label{set term egalib}
\label{terminal egalib}
\label{term egalib}
\label{egalib}
\index{egalib}
\label{commands set terminal egamono}
\label{set terminal egamono}
\label{set term egamono}
\label{terminal egamono}
\label{term egamono}
\label{egamono}
\index{egamono}
\label{commands set terminal vgalib}
\label{set terminal vgalib}
\label{set term vgalib}
\label{terminal vgalib}
\label{term vgalib}
\label{vgalib}
\index{vgalib}
\label{commands set terminal vgamono}
\label{set terminal vgamono}
\label{set term vgamono}
\label{terminal vgamono}
\label{term vgamono}
\label{vgamono}
\index{vgamono}
\label{commands set terminal svgalib}
\label{set terminal svgalib}
\label{set term svgalib}
\label{terminal svgalib}
\label{term svgalib}
\label{svgalib}
\index{svgalib}
\label{commands set terminal ssvgalib}
\label{set terminal ssvgalib}
\label{set term ssvgalib}
\label{terminal ssvgalib}
\label{term ssvgalib}
\label{ssvgalib}
\index{ssvgalib}
これらのドライバは  PC のモニタをサポートし、グラフィックボードを自動
検出します。これらは、gcc, または Zortec C/C++ でコンパイルされた場合
のみ利用可能です。
\subsection{Hp2623a}
\label{commands set terminal hp2623a}
\label{set terminal hp2623a}
\label{set term hp2623a}
\label{terminal hp2623a}
\label{term hp2623a}
\label{hp2623a}
\index{hp2623a}
{\bf hp2623a} ドライバはヒューレットパッカード (Hewlett Packard) HP2623A
をサポートします。オプションはありません。
\subsection{Hp2648}
\label{commands set terminal hp2648}
\label{set terminal hp2648}
\label{set term hp2648}
\label{terminal hp2648}
\label{term hp2648}
\label{hp2648}
\index{hp2648}
{\bf hp2648} ドライバはヒューレットパッカード (Hewlett Packard) HP2647 と
HP2648 をサポートします。オプションはありません。
\subsection{Hp500c}
\label{commands set terminal hp500c}
\label{set terminal hp500c}
\label{set term hp500c}
\label{terminal hp500c}
\label{term hp500c}
\label{hp500c}
\index{hp500c}
{\bf hp500c} ドライバはヒューレットパッカード (Hewlett Packard) 社の HP
DeskJet 500c をサポートします。これには解像度と圧縮に関するオプション
があります。

書式:
\preverbatim
\begin{verbatim}
     set terminal hp500c {<res>} {<comp>}
\end{verbatim}
\postverbatim

ここで {\bf res} は 75, 100, 150, 300 のいずれかの解像度 (DPI; dots per
inch) で、{\bf comp} は {\tt"}rle{\tt"} か {\tt"}tiff{\tt"} です。他の設定をするとそれはデフォ
ルトの値になります。デフォルトは 75 dpi で圧縮はなしです。高解像度での
ラスタライズはたくさんのメモリを必要とします。
\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}
\label{commands set terminal pcl5}
\label{set terminal pcl5}
\label{set term pcl5}
\label{terminal pcl5}
\label{term pcl5}
\label{pcl5}
\index{pcl5}
{\bf hpgl} ドライバは HP7475A プロッタのような装置用の HPGL 出力を行ないま
す。これは 2 つの設定可能なオプションを持ちます: それはペンの数と {\bf eject}
オプションで、{\tt"}eject{\tt"} は描画後にプロッタにページを排出させるよう指示し
デフォルトでは 6 つのペンを使い、描画後のページの排出は行ないません。

国際的文字セット ISO-8859-1 と CP850 を {\bf set encoding iso\_8859\_1} や
{\bf set encoding cp850} で認識させることができます (詳細は、以下参照:{\bf set encoding (p.~\pageref{set encoding})\index{encoding}})。

書式:
\preverbatim
\begin{verbatim}
     set terminal hpgl {<number_of_pens>} {eject}
\end{verbatim}
\postverbatim

以下の設定

\preverbatim
\begin{verbatim}
     set terminal hpgl 8 eject
\end{verbatim}
\postverbatim

は、以前の {\bf hp7550} ドライバと同等で、設定

\preverbatim
\begin{verbatim}
     set terminal hpgl 4
\end{verbatim}
\postverbatim

は、以前の {\bf hp7580b} ドライバと同等です。

{\bf pcl5} ドライバは、Hewlett-Packard Designjet 750C、Hewlett-Packard
Laserjet III, Hewlett-Packard Laserjet IV のようなプロッタをサポートし
ます。これは実際には HPGL-2 を使用しているのですが、装置間で名前の衝突
があります。このドライバにはいくつかのオプションがありますが、それらは
以下に示した順序で指定しなければいけません:

書式:
\preverbatim
\begin{verbatim}
     set terminal pcl5 {mode <mode>} {<plotsize>}
         {{color {<number_of_pens>}} | monochrome} {solid | dashed}
         {font <font>} {size <fontsize>} {pspoints | nopspoints}
\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 color} は複数のペン (すなわちカラー) 描画用で
$<$number\_of\_pens$>$ はカラー出力で使用されるペンの本数 (すなわち色数) で
す。{\bf monochrome} は 1 本のペン (例えば黒) の描画です。{\bf solid} は全ての
線を実線で描き、{\bf dashed} は異なる点線や鎖線パターンで線を描き分けます。
$<$font$>$ は {\bf stick}, {\bf univers}, {\bf cg\_times}, {\bf zapf\_dingbats}, {\bf antique\_olive},
{\bf arial}, {\bf courier}, {\bf garamond\_antigua}, {\bf letter\_gothic}, {\bf cg\_omega},
{\bf albertus}, {\bf times\_new\_roman}, {\bf clarendon}, {\bf coronet}, {\bf marigold},
{\bf truetype\_symbols}, {\bf wingdings} のいずれかです。$<$fontsize$>$ はポイント
単位でのフォントの大きさです。点の種類 (point type) は、{\bf nopspoints} を
指定することで標準的なデフォルトの設定から選択できるようになりますが、
{\bf pspoints} を指定すると postscript terminal と同じ点の種類の設定から
選択できるようになります。

これらのオプションのいくつかの組み込まれたサポートは、プリンタに依存す
ることに注意してください。例えば全てのフォントは恐らく HP Laserjet IV
ではサポートされているでしょうが、HP Laserjet III と Designjet 750C で
は 2,3 (例えば univers, stick) がサポートされているのみでしょう。
また、laserjet は白黒の出力装置なので、それらではカラーも明らかに使え
ません。

デフォルト: landscape, noextended, color (6 pens), solid, univers, 12
\preverbatim
\begin{verbatim}
           point, nopspoints
\end{verbatim}
\postverbatim

{\bf pcl5} では国際的文字セットはプリンタで扱われますので、テキスト文字列
に適切な 8-bit 文字コードを入れるだけで、わざわざ {\bf set encoding} で邪
魔をする必要はありません。

HPGL グラフィックは多くのソフトウェアパッケージで取り込むことが可能で
す。
\subsection{Hpljii}
\label{commands set terminal hpljii}
\label{set terminal hpljii}
\label{set term hpljii}
\label{terminal hpljii}
\label{term hpljii}
\label{hpljii}
\index{hpljii}
\label{commands set terminal hpdj}
\label{set terminal hpdj}
\label{set term hpdj}
\label{terminal hpdj}
\label{term hpdj}
\label{hpdj}
\index{hpdj}
{\bf hpljii} ドライバは HP Laserjet Sries II プリンタを、{\bf hpdj} ドライバは
HP DeskJet 500 プリンタをサポートします。これらのドライバでは、解像度
の選択が可能です。

書式:
\preverbatim
\begin{verbatim}
     set terminal hpljii | hpdj {<res>}
\end{verbatim}
\postverbatim

ここで {\bf res} は 75, 100, 150, 300 のいずれかの解像度 (DPI; dots per
inch) で、デフォルトは 75 です。高解像度でのラスタライズはたくさんのメ
モリを必要とします。

{\bf hp500c} ドライバは {\bf hpdj} とほぼ同じですが、{\bf hp500c} は加えてカラーと
圧縮もサポートしています。
\subsection{Hppj}
\label{commands set terminal hppj}
\label{set terminal hppj}
\label{set term hppj}
\label{terminal hppj}
\label{term hppj}
\label{hppj}
\index{hppj}
{\bf hppj} ドライバは HP PaintJet と HP3630 プリンタをサポートします。オプ
ションはフォントを選択するものがあるのみです。

書式:
\preverbatim
\begin{verbatim}
     set terminal hppj {FNT5X9 | FNT9X17 | FNT13X25}
\end{verbatim}
\postverbatim

中間サイズフォント (FNT9X17) がデフォルトです。
\subsection{Imagen}
\label{commands set terminal imagen}
\label{set terminal imagen}
\label{set term imagen}
\label{terminal imagen}
\label{term imagen}
\label{imagen}
\index{imagen}
{\bf imagen} ドライバは Imagen レーザプリンタをサポートします。これは 1 ペ
ージに複数のグラフを配置することも可能です。

書式:
\preverbatim
\begin{verbatim}
     set terminal imagen {<fontsize>} {portrait | landscape}
                         {[<horiz>,<vert>]}
\end{verbatim}
\postverbatim

{\bf fontsize} はデフォルトでは 12 ポイントで、レイアウトのデフォルトは
{\bf landscape} です。{\bf $<$horiz$>$} と {\bf $<$vert$>$} はグラフを横方向と縦方向に何列
置くかを指定します。これらのデフォルトは 1 です。

例:
\preverbatim
\begin{verbatim}
     set terminal imagen portrait [2,3]
\end{verbatim}
\postverbatim

これは、1 ページに 6 つのグラフを横に 2 列、縦に 3 列、縦置き (portrait)
で配置します。
\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}interlace}
            {linewidth <lw>} {dashlength <dl>} {rounded|butt}
            {tiny | small | medium | large | giant}
            {font "<face> {,<pointsize>}"} {{no}enhanced}
            {size <x>,<y>} {{no}crop}
            {<background_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} です。

背景色は 'xrrggbb' の形式で指定します。ここで、x はそのまま文字 'x' を
意味し、'rrggbb' は赤、緑、青の 16 進数での成分です。例えば 'x00ff00'
は緑を表します。背景色以外の追加の色指定は非推奨です。

\subsection{Kyo}
\label{commands set terminal kyo}
\label{set terminal kyo}
\label{set term kyo}
\label{terminal kyo}
\label{term kyo}
\label{kyo}
\index{kyo}
\label{commands set terminal prescribe}
\label{set terminal prescribe}
\label{set term prescribe}
\label{terminal prescribe}
\label{term prescribe}
\label{prescribe}
\index{prescribe}
{\bf kyo} と {\bf prescribe} のドライバは Kyocera (京セラ) レーザープリンタを
サポートします。この両者の唯一の違いは、{\bf kyo} が {\tt"}Helvetica{\tt"} を使うの
に対して {\bf prescribe} が {\tt"}Courier{\tt"} を使うことだけです。オプションはあり
ません。
\subsection{Latex}
\label{commands set terminal emtex}
\label{set terminal emtex}
\label{set term emtex}
\label{terminal emtex}
\label{term emtex}
\label{emtex}
\index{emtex}
\label{commands set terminal latex}
\label{set terminal latex}
\label{set term latex}
\label{terminal latex}
\label{term latex}
\label{latex}
\index{latex}
書式:
\preverbatim
\begin{verbatim}
     set terminal {latex | emtex} {default | {courier|roman} {<fontsize>}}
                  {size <XX>{unit}, <YY>{unit}} {rotate | norotate}
\end{verbatim}
\postverbatim

デフォルトでは、それを埋め込む文書のフォントの設定を引き継ぎますが、代
わりに Courier (cmtt) か Roman (cmr) フォントのいずれかにするオプショ
ンが使えます。その際はフォントサイズも指定できます。
あなたの DVI ドライバが任意のサイズのフォントを作り出すことができない
場合 (例えば dvips)、標準的な 10, 11, 12 ポイントサイズでなんとかしの
いでください。

METAFONT ユーザへの警告: METAFONT は妙なサイズは好みません。

LaTeX に関する全てのドライバは文字列の配置の制御に特別な方法を提供しま
す: '\{' で始まる文字列は、'\}' で閉じる必要がありますが、その文字列全体
が水平方向にも垂直方向にもセンタリングされます。'[' で始まる文字列の場
合は、位置の指定をする文字列 (t,b,l,r のうち 2 つまで) が続き、次に
']\{'、文字列本体、で最後に '\}' としますが、この文字列は LaTeX が LR-box
として整形します。'$\backslash$rule\{\}\{\}' を使えばさらに良い位置合わせが可能でしょ
う。

数ある中で、点 (point) は、LaTeX のコマンド {\tt"}$\backslash$Diamond{\tt"} と {\tt"}$\backslash$Box{\tt"} を使
って描かれます。これらのコマンドは現在は LaTeX2e のコアには存在せず、
latexsym パッケージに含まれていますが、このパッケージ基本配布の一部で
あり、よって多くの LaTeX のシステムの一部になっています。このパッケー
ジを使うことを忘れないでください。
他の点種は、amssymb パッケージの記号を使用します。

デフォルトの描画サイズは 5 inch × 3 inch ですが、オプション {\bf size} で
これをユーザの希望するものに変更できます。また、デフォルトでは X と Y
のサイズの単位は inch ですが、他の単位を使うことも可能です (現在は cm
のみ)。

'rotate' を指定すると、文字列の回転、特に y 軸のラベルの回転が可能にな
ります (graphics か graphicx パッケージが必要)。その場合、y 軸ラベルを
'積み上げ型' にする仕組みは停止されます。

例:
見出しの位置合わせに関して:
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
\subsection{Linux}
\label{commands set terminal linux}
\label{set terminal linux}
\label{set term linux}
\label{terminal linux}
\label{term linux}
\label{linux}
\index{linux}
{\bf linux} ドライバには指定するオプションは何もありません。それはデフォル
トのモード用に環境変数 GSVGAMODE を参照します。もしそれが設定されてい
なければ 1024x768x256 をデフォルトとして使用しますが、それができなけれ
ば 640x480x16 (標準の VGA) とします。
\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' は、スクリプトそれ自身に、スクリ
プト用のオプションと選択に関する追加のヘルプを表示させます。

TikZ ドライバは、以下の追加オプションを提供しています:

書式:
\preverbatim
\begin{verbatim}
   set terminal lua tikz
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
    {help}
    {monochrome}
    {solid}
    {originreset}
    {gparrows}
    {gppoints}
    {nopicenvironment}
    {size <x>{unit},<y>{unit}}
    {scale <x>,<y>}
    {plotsize <x>{unit},<y>{unit}}
    {charsize <x>{unit},<y>{unit}}
    {font "<fontdesc>"}
    {createstyle}
    {fulldoc|standalone}
    {{preamble|header} "<preamble_string>"}
    {tikzplot <ltn>,...}
    {tikzarrows}
    {cmykimages}
    {nobitmap}
    {providevars <var name>,...}
\end{verbatim}
\postverbatim

引数として長さを必要とするオプションについては、単位が指定されていなけ
ればそのデフォルトは 'cm' となります。すべての長さには、以下の単位を使用できます: 'cm', 'mm', 'in' または 'inch', 'pt', 'pc', 'bp', 'dd','cc' (訳注: in はインチ (1in=2.54cm), pt はポイント (72.27pt=1in), pc
はパイカ (1pc=12pt), bp はビッグポイント (72bp=1in), dd は Didot ポイ
ント (26.6dd=1cm), cc は Cicero (1cc=12dd))。数値と単位の間に空白を入
れてはいけません。

'monochrome' は、線の色付けを無効にし、塗り潰しを灰色階調に切り替えま
す。

'solid' は、実線のみを使用します。

'originreset' は、TikZ 画の原点を、描画の左下角へ移動します。これはい
くつかの描画を一つの tikzpicture 環境内に整列するのに使用できます。こ
れは、multiplot、pm3d 描画では十分にはテストされていません。

'gparrows' は、TikZ が提供する矢 (arrow) の代わりに、gnuplot 内部の矢
(arrow) の描画関数を使用します。

'gppoints' は、TikZ が提供する描画記号の代わりに、gnuplot 内部の記号描
画関数を使用します。

'nopicenvironment' は、'tikzpicture' 環境の宣言を手動で行うようにする
ためにそれを省略します。これにより、描画の前後に、ある PGF/TikZ コード
を直接入れることができます。

オプション 'size' は、キャンバスサイズの 2 つの長さ $<$x$>$, $<$y$>$ を必要と
します。デフォルトのキャンバスサイズは 12.5cm x 8.75cm です。

オプション 'scale' は、オプション 'size' と同等の機能ですが、この $<$x$>$,
$<$y$>$ は長さではなく、拡大率になります。

オプション 'plotsize' は、キャンバスサイズの代わりに描画領域のサイズの
設定を行いますが、それが通常の gnuplot の挙動です。このオプションを使
用すると、わずかに非対称な刻み幅を作るかもしれません。'originreset' の
ように、このオプションを multiplot や pm3d 描画で使用すると、不都合な
結果を招く恐れがあります。

オプション 'charsize' は、使用するフォントの水平サイズと垂直サイズの平
均値を必要とします。あなたの TeX 文書内でこれをどのように使用するかに
ついては、サンプルとして生成されるスタイルファイルを見てください。

'createstyle' は、そのスクリプトから LaTeX スタイルファイルを導き出し、
それを 'gnuplot-lua-tikz.sty' というファイルに書き出します。

'fulldoc' または 'standalone' は、そのままコンパイルできるような完全な
LaTeX 文書を生成します。

'preamble' または 'header' は、standalone モードのドキュメントのプリア
ンブルに追加 LaTeX コードを出力するのに使います。

オプション 'tikzplot' では、コマンド '$\backslash$path' の代わりに '$\backslash$path plot'
を使用します。それに続く線種 (linetype) の数値のリスト ($<$ltn$>$,...) は
それに影響される描画線を定義します。すべての線種に対し、一つの描画スタ
イルが存在します。1 以上のすべての線種に対して、デフォルトの描画スタイルは 'smooth' です。

オプション 'tikzarrows' を使用すると、ユーザの定義した gnuplot の矢
(arrow) のスタイルを TikZ の矢のスタイルに割り当てます。これは、矢の定
義の角の値を '誤って使用する' ことでなされています。例えば、角 '7' に
よる矢のスタイルは TikZ スタイル 'gp arrow 7' に割り当てられ、他に与え
られた値はすべて無視されます。デフォルトでは、TikZ 出力形式はすべての
矢に対してステルス形の矢先を使用します。デフォルトの gnuplot のように
するには、オプション 'gparrows' を使用してください。

'cmykimages' では、画像データに対して RGB カラーモデルの代わりに CMYK
モデルを使用しますが、他のすべての色 (線の色など) は、それらが xcolors
パッケージで処理されるので、このオプションの影響を受けません。よって、
必要ならばそのカラーモデルも変更することを考えてください。

オプション 'nobitmap' は、ネイティブの PS, PDF 画像形式の代わりに、画
像を塗り潰された長方形としてレンダリングします。このオプションは、あな
たが他の出力形式を使用したい場合に有効としなければいけません。

オプション 'providevars' は、gnuplot の内部変数、ユーザ変数を、TeX ス
クリプト内でもコマンド '$\backslash$gpgetvar\{$<$var name$>$\}' を使用することで利用可
能にさせます。利用できる変数の一覧を見るには、'show variables all' コ
マンドを使用してください。

文字列 $<$fontdesc$>$ には、例えば '$\backslash$small' のような LaTeX で有効なフォン
トコマンドを入れることもでき、それは、{\tt"}font=$<$fontdesc$>${\tt"} の形式のノー
ドパラメータとして直接渡されます。これは、あるノードにコードを追加する
のに「わざと間違えて」使えます。例えば '$\backslash$small,yshift=1ex' も有効です
が、',yshift=1ex' も有効で、こちらは現在のフォント設定を変更しません。
しかしリストの第 2 引数は例外です。それが $<$数値$>$\{単位\} の形式の数値の
場合、それは他の出力形式でそうであるようにフォントサイズと解釈され、第
1 引数に追加されてしまいます。単位が省略された値は 'pt' 単位と解釈され
ます。例えば、'$\backslash$sffamily,12,fill=red' は、背景色が赤で 12pt の LaTeX
sans serif フォントを設定します。

文字列は単一、あるいは二重引用符内に入れる必要があります。二重引用符で
くくられた文字列には、改行の '$\backslash$n' などの特別な文字を入れることができ
ます。

\subsection{Macintosh}
\label{set terminal macintosh}
\label{set term macintosh}
\label{terminal macintosh}
\label{term macintosh}
\label{macintosh}
\index{macintosh}
書式:
\preverbatim
\begin{verbatim}
    set terminal macintosh {singlewin | multiwin} {vertical | novertical}
                           {size <width>, <height> | default}
\end{verbatim}
\postverbatim

'singlewin' は単一ウィンドウへの制限であり、アニメーション用に有用です。
'multiwin' は複数のウィンドウが使えるようになります。
'vertical' は gx オプションの元でのみ有効です。このオプションでは回転
した文字列を垂直方向に書きます。novertical はこのオプションを無効にし
ます。
size $<$width$>$, $<$height$>$ は preferences dialog で設定されたグラフサイズ
を書き換え、'set term mac size default' か 'set term mac default' が指
定されるまでその値は保持されます。

'set term mac size default' はウィンドウサイズの設定を preferences
dialog で設定したものにします。

'set term mac default' は全てのオプションをデフォルトの値に設定します。
デフォルト値は nogx, multiwin, novertical です。

multiwin オプションの元でグラフを作成し、その後 singlewin にスイッチし
た場合、次の plot コマンドでは更に一つウィンドウが作られ、この新しいウ
ィンドウでは singlewin が有効な間使用されます。そして multiwin に戻り、
いくつかのグラフを生成し、また再び singlewin にスイッチすると、もし元
の 'singlewin' ウィンドウがまだ開いていればそれが使われ、そうでなけれ
ば新しい 'singlewin' ウィンドウが作られます。'singlewin' ウィンドウは
番号付けはされません。
\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}
{\bf mf} ドライバは METAFONT プログラムへの入力ファイルを作ります。よって
その図は TeX の文書中では文字と同じように使うことができます。

文書中で図を使うには、{\bf gnuplot} の出力するファイルを入力として METAFONT
プログラムを実行する必要があります。よって、ユーザはフォントが作られる
プロセスと新しく作ったフォントをドキュメントに取り込むための基礎知識が
必要となります。しかし、使用するサイトで METAFONT プログラムが適切に設
定されていれば、経験のないユーザでもそう問題なく操作はできるでしょう。

グラフ中の文字は METAFONT の文字セットに基づいてサポートされます。現状
では Computer Modern Roman フォントセットが入力ですが、ユーザは必要な
フォントを何でも自由に選ぶことができます。ただしその選んだフォントの
METAFONT ソースファイルが使える状態になっている必要があります。個々の
文字は METAFONT の中で別々のピクチャー変数に保存され、文字が必要になっ
たときにこれらの変数が操作 (回転、伸縮等) されます。欠点は、METAFONT
プログラムが解釈に要する時間です。ある計算機 (つまり PC) では、ピクチ
ャー変数をたくさん使用しすぎることで、使えるメモリの量の限界が問題を起
こすこともあります。

{\bf mf} ドライバにはオプションはありません。
\subsubsection{METAFONT Instructions}
\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{Mgr}
\label{commands set terminal mgr}
\label{set terminal mgr}
\label{set term mgr}
\label{terminal mgr}
\label{term mgr}
\label{mgr}
\index{mgr}
{\bf mgr} ドライバは Mgr ウィンドウシステムをサポートします。オプションは
ありません。
\subsection{Mif}
\label{commands set terminal mif}
\label{set terminal mif}
\label{set term mif}
\label{terminal mif}
\label{term mif}
\label{mif}
\index{mif}
{\bf mif} ドライバは Frame Maker MIF フォーマット (version 3.00) の出力を
生成します。これは 15*10 cm のサイズの MIF フレームを出力し、同じペン
で書かれるグラフの基本要素は同じ MIF グループにグループ化されます。
{\bf gnuplot} の 1 ページにおけるグラフの基本要素は一つの MIF フレームに描
画され、いくつかの MIF フレームは一つの大きな MIF フレーム内に集められ
ます。文字列で使われる MIF フォントは {\tt"}Times{\tt"} です。

MIF 3.00 ドライバではいくつかのオプションが設定できます。

書式:
\preverbatim
\begin{verbatim}
     set terminal mif {color | colour | monochrome} {polyline | vectors}
                      {help | ?}
\end{verbatim}
\postverbatim

{\bf colour} は線種 (line type) $>$= 0 の線をカラー (MIF separation 2--7) で、
{\bf monochrome} は全ての線を黒 (MIF separation 0) で描画します。
{\bf polyline} は曲線を連続曲線として描画し、{\bf vectors} は曲線をベクトルの
集まりとして描画します。
{\bf help} と {\bf ?} はオンラインヘルプを標準エラー出力に表示します。両者はそ
の使用法の短い説明を出力し、{\bf help} は更にオプションも表示します。

例:
\preverbatim
\begin{verbatim}
     set term mif colour polylines    # デフォルト
     set term mif                     # デフォルト
     set term mif vectors
     set term mif help
\end{verbatim}
\postverbatim
\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}

{\bf mp} ドライバは Metapost プログラムへ入力することを意図した出力を生成
し、そのファイルに対して Metapost を実行するとグラフを含む EPS ファイ
ルが作られます。デフォルトでは Metapost は全ての文字列を TeX に通しま
す。これはタイトルや見出しに任意の TeX の記号を本質的に使うことができ
る、という利点を持つことを意味します。

書式:
\preverbatim
\begin{verbatim}
  set term mp {color | colour | monochrome}
              {solid | dashed}
              {notex | tex | latex}
              {magnification <magsize>}
              {psnfss | psnfss-version7 | nopsnfss}
              {prologues <value>}
              {a4paper}
              {amstex}
              {"<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 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 の本がそれを指導してくれるでしょう。

見出しを二重引用符で囲む場合、TeX コードのバックスラッシュはエスケープ
する (2 つ書く) 必要があります。単一引用符を使えばそれを避けることはで
きますが、今度は改行として {\bf $\backslash$n} を使えなくなります。これを書いている現
在、gnuplot 3.7 は {\bf plot} コマンドで与えられたタイトルは、別な場所で与
えられた場合とは異なる処理をしますし、引用符のスタイルにかかわらず TeX
コマンドのバックスラッシュは二重化した方が良さそうです。

Metapost の画像は TeX の文書内で一般に使われています。Metapost はフォ
ントを TeX が行なうのと全く同じ方法で扱い、それは他の大抵の文書整形プ
ログラムとは異なっています。グラフが LaTeX の文書に graphics パッケー
ジで取り込まれ、あるいは epsf.tex を使って plainTeX に取り込まれ、そし
て dvips (または他の dvi から ps への変換ソフト) で PostScript に変換
される場合、そのグラフ内の文字は大抵は正しく扱われているでしょう。しか
し、Metapost 出力をそのまま PostScript インタプリタに送っても、グラフ
内の文字は出力されないでしょう。

\subsubsection{Metapost Instructions}
\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 mono "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 のような名前になります。
よって、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 vebatimtex...etex} を編集することで、ラベル文字フォントに対する
大域的な変更が行なえます。特に、もし望むなら LaTeX のプリアンブルを追
加することもでき、その場合 LaTeX の持つサイズ変更コマンドを使えるので
最大の柔軟性を発揮できるでしょう。ただし、Metapost に plainTeX でなく
LaTeX を実行させるよう、適切な MP 設定変数を設定することを忘れないでく
ださい。
\subsection{Next}
\label{commands set terminal next}
\label{set terminal next}
\label{set term next}
\label{terminal next}
\label{term next}
\label{next}
\index{next}
\label{NeXT}
\index{NeXT}
{\bf next} ドライバには設定のためのいくつかのオプションがあります。

書式:
\preverbatim
\begin{verbatim}
     set terminal next {<mode>} {<type> } {<color>} {<dashed>}
                {"<fontname>"} {<fontsize>} title {"<newtitle>"}
\end{verbatim}
\postverbatim

$<$mode$>$ は {\bf default} のみ指定でき、その場合全てのオプションがデフォルト
になります。$<$type$>$ は {\bf new} か {\bf old} で、{\bf old} は古い単一ウィンドウを
要求します。$<$color$>$ は {\bf color} (カラー) か {\bf monochrome} (白黒)、
$<$dashed$>$ は {\bf solid} (実線のみ) か {\bf dashed} (点線が有効)、{\tt"}$<$fontname$>${\tt"}
は有効な PostScript フォントの名前を、$<$fontsize$>$ は PostScript ポイン
ト単位でのフォントのサイズを、$<$title$>$ は GnuTerm ウィンドウのタイトル
をそれぞれ設定します。デフォルトは {\bf new}, {\bf monochrome}, {\bf dashed},
{\tt"}Helvetica{\tt"}, 14pt です。

例:
\preverbatim
\begin{verbatim}
     set term next default
     set term next 22
     set term next color "Times-Roman" 14
     set term next color "Helvetica" 12 title "MyPlot"
     set term next old
\end{verbatim}
\postverbatim

点の大きさは {\bf set linestyle} で変更できます。
\subsection{Openstep (next)}
\label{commands set terminal openstep}
\label{set terminal openstep}
\label{set term openstep}
\label{terminal openstep}
\label{term openstep}
\label{openstep}
\index{openstep}
\label{OpenStep}
\index{OpenStep}
\label{Openstep}
\index{Openstep}
openstep (next) ドライバには設定のためのいくつかのオプションがあります。

書式:
\preverbatim
\begin{verbatim}
     set terminal openstep {<mode>} {<type> } {<color>} {<dashed>}
                {"<fontname>"} {<fontsize>} title {"<newtitle>"}
\end{verbatim}
\postverbatim

$<$mode$>$ は {\bf default} のみ指定でき、その場合全てのオプションがデフォルト
になります。$<$type$>$ は {\bf new} か {\bf old} で、{\bf old} は古い単一ウィンドウを
要求します。$<$color$>$ は {\bf color} (カラー) か {\bf monochrome} (白黒)、
$<$dashed$>$ は {\bf solid} (実線のみ) か {\bf dashed} (点線が有効)、{\tt"}$<$fontname$>${\tt"}
は有効な PostScript フォントの名前を、$<$fontsize$>$ は PostScript ポイン
ト単位でのフォントのサイズを、$<$title$>$ は GnuTerm ウィンドウのタイトル
をそれぞれ設定します。デフォルトは {\bf new}, {\bf monochrome}, {\bf dashed},
{\tt"}Helvetica{\tt"}, 14pt です。

例:
\preverbatim
\begin{verbatim}
     set term openstep default
     set term openstep 22
     set term openstep color "Times-Roman" 14
     set term openstep color "Helvetica" 12 title "MyPlot"
     set term openstep old
\end{verbatim}
\postverbatim

点の大きさは {\bf set linestyle} で変更できます。
\subsection{Pbm}
\label{commands set terminal pbm}
\label{set terminal pbm}
\label{set term pbm}
\label{terminal pbm}
\label{term pbm}
\label{pbm}
\index{pbm}
書式:
\preverbatim
\begin{verbatim}
     set terminal pbm {<fontsize>} {<mode>} {size <x>,<y>}
\end{verbatim}
\postverbatim

$<$fontsize$>$ は {\bf small} か {\bf medium} か {\bf large} で、$<$mode$>$ は {\bf monochrome}
か {\bf gray} か {\bf color} です。デフォルトの描画サイズは 640 ピクセルの幅で
480 ピクセルの高さです。出力サイズは、x と y の両方を 8 ピクセル倍した
ものに最も近くなるように空白が追加されます。必要であれば、この空白部分
は後で取り除くことができます。

{\bf pbm} ドライバの出力は $<$mode$>$ によります: {\bf monochrome} は portable
bitmap (PBM; 1 ピクセル 1 ビット) を、{\bf gray} は portable graymap (PGM;
1 ピクセル 3 bit) を、{\bf color} は portable pixmap (PPM; 1 ピクセル 4 ビ
ット) を出力します。

このドライバの出力は、NETPBM によって提供される様々な画像変換、画像処
理ツールで使うことができます。 Jef Poskanzer の PBMPLUS パッケージに基
づく NETPBM は、上記の PBM 形式から GIF, TIFF, MacPaint, Macintosh
PICT, PCX, X11 ビットマップ、その他多くの形式に変換するプログラムを提
供します。完全な情報は http://netpbm.sourceforge.net/ にあります。

例:
\preverbatim
\begin{verbatim}
     set terminal pbm small monochrome                # デフォルト
     set terminal pbm color medium size 800,600
     set output '| pnmrotate 45 | pnmtopng > tilted.png'  # NETPBM を利用
\end{verbatim}
\postverbatim
\subsection{Pdf}
\label{commands set terminal pdf}
\label{set terminal pdf}
\label{set term pdf}
\label{terminal pdf}
\label{term pdf}
\label{pdf}
\index{pdf}
このドライバは Adobe PDF (Portable Document Format) 出力を生成し、それ
は Acrobat Reader のようなツールで表示、印刷ができます。

書式:
\preverbatim
\begin{verbatim}
     set terminal pdf {monochrome|color|colour}
                      {{no}enhanced}
                      {fname "<font>"} {fsize <fontsize>}
                      {font "<fontname>{,<fontsize>}"}
                      {linewidth <lw>} {rounded|butt}
                      {solid|dashed} {dl <dashlength>}}
                      {size <XX>{unit},<YY>{unit}}
\end{verbatim}
\postverbatim

デフォルトでは、個々の線種に対して異なる色を用います。{\bf monochrome} を選
択すると全ての線種を黒で描きますので、線種を区別するために {\bf dashed} を
使うと良いでしょう。モノクロモードでも塗りつぶし領域やラインスタイルで
は明示的に色を使用することができます。

$<$font$>$ はデフォルトで使われるフォント名 (デフォルトでは Helvetica) で
$<$fontsize$>$ はポイント単位でのフォントサイズ (デフォルトでは 12) です。
どのようなフォントが使えて、新しいフォントをインストールするには、とい
ったことに関しては、ローカルにインストールされている pdflib のドキュメ
ントを参照してください。

オプション {\bf enhanced} は、拡張文字列処理機能 (下付き文字、上付き文字、
および複数のフォントの利用) を有効にします。以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。

描画における全ての線の幅は {\bf linewidth} で指定する因子 $<$n$>$ で増加するこ
とができます。同様に、{\bf dashlength} はデフォルトの点線の空白部分に対する
積因子です。

{\bf rounded} は、線の端や接合部を丸くし、デフォルトの {\bf butt} は尖った端と
角張った接合部を使用します。

PDF 出力のデフォルトのサイズは、5inch x 3inch です。オプション {\bf size} 
は、これをユーザの指定するものへ変更します。デフォルトの X, Y サイズの
単位はインチですが、他の単位も使用可能です (現在は cm のみ)。

\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} {solid|dashed}
                    {font <font>}
                    {linewidth <lw>} {rounded|butt} {dashlength <dl>}
                    {size <XX>{unit},<YY>{unit}}
\end{verbatim}
\postverbatim

この出力形式は、拡張文字列処理モード (enhanced text mode) をサポートし
ていて、フォントや書式コマンド (上付、下付など) をラベルや他の文字列に
埋め込むことができます。拡張文字列処理モードの書式は他の gnuplot の出
力形式と共通です。詳細は、以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。

描画における全ての線の幅は、{\bf linewidth} で指定する因子 $<$lw$>$ で変更でき
ます。デフォルトの線幅は 0.25 ポイントです。(1 {\tt"}PostScript{\tt"} ポイント
= 1/72 インチ = 0.353 mm)

{\bf rounded} は、線の端や接合部を丸くし、デフォルトの {\bf butt} は尖った端と
角張った接合部を使用します。

PDF 出力のデフォルトのサイズは、5inch x 3inch です。オプション {\bf size}
は、これをユーザの指定するものへ変更します。デフォルトの X, Y サイズの
単位はインチですが、他の単位も使用可能です (現在は cm のみ)。{\bf size} オ
プションで指定されたことによる描画の端から端までの領域は、常にスクリー
ン座標の 0.0 から 1.0 に対応します。

$<$font$>$ は、{\tt"}FontFace,FontSize{\tt"} の書式、つまりフォント名とサイズをカ
ンマで区切った一つの文字列として表記します。FontFace は、'Arial' の
ような通常のフォント名です。フォント名を与えない場合、pdfcairo 出力形
式では'Sans' が使用されます。FontSize はポイント単位でのフォントサイ
ズです。指定しない場合は、pdfcairo 出力形式では 6 ポイントのサイズが使
用されます。
\preverbatim
\begin{verbatim}
  例 :
     set term pdfcairo font "Arial,12"
     set term pdfcairo font "Arial" # フォント名のみ変更
     set term pdfcairo font ",12" # フォントサイズのみ変更
     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{Pm}
\label{commands set terminal pm}
\label{set terminal pm}
\label{set term pm}
\label{terminal pm}
\label{term pm}
\label{pm}
\index{pm}
{\bf pm} ドライバは、グラフが描画される OS/2 プレゼンテーションマネージャ
ウィンドウを提供します。そのウィンドウは最初のグラフが描画されたときに
開かれます。このウィンドウは印刷、クリップボードへのコピー、いくつかの
線種や色の調整のための機能、そしてそれ自身のオンラインヘルプを持ってい
ます。{\bf multiplot} オプションもサポートされています。

書式:
\preverbatim
\begin{verbatim}
     set terminal pm {server {n}} {persist} {widelines} {enhanced} {"title"}
\end{verbatim}
\postverbatim

{\bf persist} を指定すると、各グラフはそれぞれ自身のウィンドウを持ち、その
すべてのウィンドウは {\bf gnuplot} が終了した後も開いたままになります。
{\bf server} を指定すると、全てのグラフは同じウィンドウ内に現われ、それは
{\bf gnuplot} 終了後も開いたままになります。このオプションは、さらに追加の
数引数を取り、その数字はサーバプロセスのインスタンスになります。よって
同時に複数のサーバウィンドウを使うことができます。

{\bf widelines} を指定すると、全てのグラフは幅の広い線で描かれます。
{\bf enhanced} を指定すると、上付き文字や下付き文字、複数のフォントを使う
ことができます (詳細は、以下参照: {\bf enhanced text (p.~\pageref{enhanced text})\index{text}})。コア PostScript フ
ォントのフォント名は 1 文字に省略できます
(T/H/C/S はそれぞれ Times/Helvetica/Courier/Symbol を意味します)。

{\bf title} を指定すると、それは描画ウィンドウのタイトルとして使われます。
それはサーバインスタンス名としても使われ、それは追加の数引数を上書きし
ます。

線の幅は {\bf set linestyle} で変更できます。
\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}transparent} {{no}interlace}
            {{no}truecolor} {rounded|butt}
            {linewidth <lw>} {dashlength <dl>}
            {tiny | small | medium | large | giant}
            {font "<face> {,<pointsize>}"} {{no}enhanced}
            {size <x>,<y>} {{no}crop}
            {<background_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 画像は 256 個に番号付けられた色を使用し
ます。代わりにオプション {\bf truecolor} を使えば、24 ビット/ピクセルの色
情報を持つ TrueColor 画像が生成されます。透明化塗りつぶし (transparent
fill) を使用するときは、このオプション {\bf truecolor} が必要になります。
以下参照: {\bf fillstyle (p.~\pageref{fillstyle})\index{fillstyle}}。背景の透明化は、番号付け画像か TrueColor 画像で
可能です。

{\bf butt} は線分の描画で、その端の点でのはみだしを起こさない描画メソッド
を使うようドライバに指示します。この設定は、線幅が 1 より大きい場合に
のみ有効です。この設定は、水平線、垂直線の描画の場合に有用でしょう。
デフォルトは {\bf rounded} (丸め) です。

フォントの選択の詳細は、やや複雑です。
以下に同じ意味を持つ簡単な例を示します:
\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} です。

背景色は 'xrrggbb' の形式で指定します。ここで、x はそのまま文字 'x' を
意味し、'rrggbb' は赤、緑、青の 16 進数での成分です。例えば 'x00ff00'
は緑を表します。背景色以外の追加の色指定は非推奨です。

\subsubsection{例}
\label{set term png examples}
\preverbatim
\begin{verbatim}
     set terminal png medium size 640,480 xffffff
\end{verbatim}
\postverbatim

この例は medium サイズの、大きさ変更不能で回転できない組み込みフォント
を使用し、透明化されない背景色として白 (xffffff) を使用します。

\preverbatim
\begin{verbatim}
     set terminal png font arial 14 size 800,600
\end{verbatim}
\postverbatim

これは、'arial' というフェース名のスケーラブルフォントを検索し、フォン
トサイズを 14pt に設定します。フォントの検索がどのように行われるかにつ
いては以下参照: {\bf fonts (p.~\pageref{fonts})\index{fonts}}。

\preverbatim
\begin{verbatim}
     set terminal png transparent truecolor enhanced
\end{verbatim}
\postverbatim

これは、24 ビット/ピクセルの色情報を使用し、背景を透明化します。そして
表示される文字列の配置制御として {\bf enhanced text} モードを使用します。

\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} {solid|dashed}
                    {{no}transparent} {{no}crop} {font <font>}
                    {linewidth <lw>} {rounded|butt} {dashlength <dl>}
                    {size <XX>{unit},<YY>{unit}}
\end{verbatim}
\postverbatim

この出力形式は、拡張文字列処理モード (enhanced text mode) をサポートし
ていて、フォントや書式コマンド (上付、下付など) をラベルや他の文字列に
埋め込むことができます。拡張文字列処理モードの書式は他の gnuplot の出
力形式と共通です。詳細は、以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。

描画における全ての線の幅は、{\bf linewidth} で指定する因子 $<$lw$>$ で変更でき
ます。デフォルトの線幅は 0.25 ポイントです。(1 {\tt"}PostScript{\tt"} ポイント
= 1/72 インチ = 0.353 mm)

{\bf rounded} は、線の端や接合部を丸くし、デフォルトの {\bf butt} は尖った端と
角張った接合部を使用します。

PDF 出力のデフォルトのサイズは、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 出力形式では 6 ポイントのサイズが使
用されます。
\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 フォントを削除しないといけないかもしれません。{\tt"}windings{\tt"} のよ
うな他の非標準のフォントでも動作することが報告されています。

描画のレンダリングは、今のところ変更できません。出力をより良くするため
にこのレンダリングは、アンチエイリアス、オーバーサンプリングの 2 つの
機構を持っています。
アンチエイリアスは、水平や垂直でない線を滑らかに表示します。
オーバーサンプリングは、アンチエイリアスと組でピクセルよりも小さいサイ
ズでの精度を提供し、gnuplot が非整数座標の直線を書けるようになります。
これは、対角方向の直線 (例えば 'plot x') が左右に揺れるのを避けます。

\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}
                             {color | colour | monochrome}
                             {solid | dashed}
                             {dashlength | dl <DL>}
                             {linewidth | lw <LW>}
                             {rounded | butt}
                             {clip | noclip}
                             {palfuncparam <samples>{,<maxdeviation>}}
                             {size <XX>{unit},<YY>{unit}}
                             {blacktext | colortext | colourtext}
                             {{font} "fontname{,fontsize}" {<fontsize>}}
\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 フォント以外に、数式を表現するのに便利な obliqueSymbol フォント ({\tt"}Symbol-Oblique{\tt"}) が定義されています。

{\bf default} は全てのオプションを以下のデフォルトの値に設定します:{\bf landscape}, {\bf monochrome}, {\bf dashed}, {\bf dl 1.0}, {\bf lw 1.0}, {\bf defaultplex},{\bf noenhanced}, {\tt"}Helvetica{\tt"}, 14pt。PostScript のグラフのデフォルトの大き
さは、10 インチの幅で 7 インチの高さです。
オプション {\bf color} はカラーを有効にし、{\bf monochrome} は各要素を黒と白
描画します。さらに、{\bf monochrome} は灰色の {\bf palette} も使用しますが、
これは、明示的に {\bf colorspec} で指定された部品の色を変更しません。

{\bf solid} は全てのグラフの点線のパターンを実線で上書きします。
{\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 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 これは、以前は、出力形式での設定よりも、コマンド set size で設定した方がいい、と言っていたことの変更を意味します}。以前の方法では BoundingBox は変更されずに残ってしまい、スクリーン座標が実際の描画の限界に対応していませんでした。

{\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} は埋め込みフォントのリストをクリアします。

例:
\preverbatim
\begin{verbatim}
     set terminal postscript default       # 以前の postscript
     set terminal postscript enhanced      # 以前の enhpost
     set terminal postscript landscape 22  # 以前の psbig
     set terminal postscript eps 14        # 以前の epsf1
     set terminal postscript eps 22        # 以前の epsf2
     set size 0.7,1.4; set term post portrait color "Times-Roman" 14
     set term post "VAGRoundedBT_Regular" 14 fontfile "bvrr8a.pfa"
\end{verbatim}
\postverbatim

線の幅と点の大きさは {\bf set style line} で変更できます。

{\bf postscript} ドライバは約 70 種類の異なる点種をサポートしていて、これ
は {\bf plot} や {\bf set style line} の {\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{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}
\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}
オプション {\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} オプションはちょうど一つのフォントファイル名に
対応しますので、複数のフォントファイルを埋め込むためにはこのオプション
を複数回使って下さい。

フォントファイルは、作業ディレクトリ、そして {\bf set fontpath} で与えられ
るフォントパス一覧の全てのディレクトリが検索されます。さらに、環境変数
GNUPLOT\_FONTPATH でフォントパスを設定することもできます。それが設定さ
れていない場合はデフォルトの検索リストが使われますが、これはシステムに
依存します。詳細は、以下参照: {\bf set fontpath (p.~\pageref{set fontpath})\index{fontpath}}。

埋め込まれたフォントファイルを使うには、フォント名 (通常ファイル名と同
じではありません) を指定する必要があります。対話モードで {\bf fontfile} オ
プションを使ってフォントを埋め込んだ場合、フォント名はスクリーンに表示
されます。例:
\preverbatim
\begin{verbatim}
  Font file 'p052004l.pfb' contains the font 'URWPalladioL-Bold'. Location:
  /usr/lib/X11/fonts/URW/p052004l.pfb
\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 サーバに置いて
あります。例えば
\par\hskip2.7em\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
フォーマットに変換できます。これは以下にあります:
\par\hskip2.7em\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 サーバに置かれ
ています。
\par\hskip2.7em\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 フォントは
今でも数式を書くのに必要ですが、それは以下にあります:
\par\hskip2.7em\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}
\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\_PS\_DIR を定義するか
または gnuplot コマンドの {\bf set loadpath} を使うことで制御できます。詳
細は、以下参照: {\bf set loadpath (p.~\pageref{set loadpath})\index{loadpath}}。
\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}
\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}
                             {oldstyle | newstyle}
                             {auxfile | noauxfile}
                             {level1 | leveldefault}
                             {color | colour | monochrome}
                             {solid | dashed}
                             {dashlength | dl <DL>}
                             {linewidth | lw <LW>}
                             {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 solid} は全てのグラフの点線のパターンを実線で上書きします。
{\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 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 これは、以前は、出力形式での設定よりも、コマンド set size で設定した方がいい、と言っていたことの変更を意味します}。以前の方法では BoundingBox は変更されずに残ってしまい、スクリーン座標が実際の描画の限界に対応していませんでした。

{\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} モード以外では、次の描画を行なう前にその出力ファイルをクローズするのを忘れないでください。

version 4.2 より前の gnuplot は ps(la)tex 出力形式では 5 x 3 インチの
出力でしたが、現在では 5 x 3.5 インチになっています。これは postscript
eps 出力形式に合わせた変更です。加えて、文字幅は、以前の epslatex 出力形式はフォントサイズの 50\% と見なしましたが、現在は 60\% と評価しています。従来の形式に戻すには、オプション {\bf oldstyle} を指定してください。

pslatex ドライバは文字列の配置の制御に特別な方法を提供します:
(a) '\{' で始まる文字列は、'\}' で閉じる必要がありますが、その文字列全体
が LaTeX によって水平方向にも垂直方向にもセンタリングされます。
(b) '[' で始まる文字列の場合は、位置の指定をする文字列 (t,b,l,r のうち
2 つまで) が続き、次に ']\{'、文字列本体、で最後に '\}' としますが、この
文字列は LaTeX が LR-box として整形します。$\backslash$rule\{\}\{\} を使えばさらに良
い位置合わせが可能でしょう。

ここに記述されていないオプションは {\bf Postscript terminal} のものと同一で
すので、それらが何を行なうのかを知りたければそちらを参照してください。

例:
\preverbatim
\begin{verbatim}
     set term pslatex monochrome dashed 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}
\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} ドライバは LaTeX の {\tt"}pstricks.sty{\tt"} マクロパッケージと共に使
われることを意図しています。これは {\bf eepic} や {\bf latex} ドライバに代わる
選択肢の一つです。{\tt"}pstricks.sty{\tt"} は必要ですが、もちろん PostScript を
解釈するプリンタ、または Ghostscript のような変換ソフトも必要です。

PSTricks は anonymous ftp で Princeton.EDU の /pub ディレクトリから取
得できます。このドライバは、PSTricks パッケージの全ての能力を使おうと
などとは全く考えてはいません。

書式:
\preverbatim
\begin{verbatim}
     set terminal pstricks {hacktext | nohacktext} {unit | nounit}
\end{verbatim}
\postverbatim

最初のオプションは、あまり綺麗ではない方法で数字のより良い出力を生成す
るもので、2 つ目のオプションはグラフを伸縮する際には必要です。デフォル
トでは {\bf hacktext} と {\bf nounit} です。
\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{Regis}
\label{commands set terminal regis}
\label{set terminal regis}
\label{set term regis}
\label{terminal regis}
\label{term regis}
\label{regis}
\index{regis}
{\bf regis} ドライバは REGIS グラフィック言語での出力を生成します。このド
ライバには色を 4 色使うか (デフォルト) 16 色使うかのオプションがありま
す。

書式:
\preverbatim
\begin{verbatim}
     set terminal regis {4 | 16}
\end{verbatim}
\postverbatim
\subsection{Rgip}
\label{commands set terminal rgip}
\label{set terminal rgip}
\label{set term rgip}
\label{terminal rgip}
\label{term rgip}
\label{rgip}
\index{rgip}
\label{commands set terminal uniplex}
\label{set terminal uniplex}
\label{set term uniplex}
\label{terminal uniplex}
\label{term uniplex}
\label{uniplex}
\index{uniplex}
{\bf rgip} と {\bf uniplex} ドライバは RGIP メタファイルをサポートします。それ
らはいくつかのグラフを一つのページの中に入れることができますが、一つの
出力ファイル内には 1 つのページしか許されません。

書式:
\preverbatim
\begin{verbatim}
     set terminal rgip | uniplex {portrait | landscape}
                                 {[<horiz>,<vert>]} {<fontsize>}
\end{verbatim}
\postverbatim

フォントサイズは 1--8 間での値が許されていて、デフォルトでは 1 です。
デフォルトの方向 (layout) は横置き (landscape) です。グラフはそのペー
ジに {\bf horiz}x{\bf vert} 個が格子状に配置されます。デフォルトは [1,1] です。

例:
\preverbatim
\begin{verbatim}
     set terminal uniplex portrait [2,3]
\end{verbatim}
\postverbatim

これは 1 ページ 6 つのグラフを横に 2 つ縦に 3 つ並べ、縦置き (portrait)
に出力します。
\subsection{Sun}
\label{commands set terminal sun}
\label{set terminal sun}
\label{set term sun}
\label{terminal sun}
\label{term sun}
\label{sun}
\index{sun}
{\bf sun} ドライバは SunView ウィンドウシステムをサポートしています。オプ
ションはありません。
\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}}
                      {{no}enhanced}
                      {fname "<font>"} {fsize <fontsize>}
                      {font "<fontname>{,<fontsize>}"}
                      {fontfile <filename>}
                      {rounded|butt} {solid|dashed} {linewidth <lw>}
\end{verbatim}
\postverbatim

ここで $<$x$>$ と $<$y$>$ は生成される SVG グラフのサイズですが、{\bf dynamic} は
svg ビューワに描画のリサイズを許し、{\bf fixed} は絶対サイズを要求します
(デフォルト)。

{\bf linewidth $<$w$>$} は図の中で使用される全ての線の幅を因子 $<$w$>$ だけ増加さ
せます。

$<$font$>$ はデフォルトとして使われるフォント名 (デフォルトでは Arial)、
$<$fontsize$>$ はポイント単位でのフォントサイズ (デフォルトは 12) です。
svg ビューワソフトは、そのファイルの表示の際には別の代用フォントを使う
ことになるでしょう。

svg 出力形式は拡張文字列処理機能 (enhanced) をサポートしています。これ
は、フォント指定や他の書式命令をラベルや他の文字列内に埋め込むことを可
能にします。拡張文字列処理モードの書式指定は他の出力形式の場合と同じで
す。詳細は、以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。

SVG では、SVG 文書中にフォントを直接埋め込むこともできますし、好きなフ
ォントへのハイパーリンクを与えることもできます。{\bf fontfile} オプション
には、結果として出力される SVG ファイルの $<$defs$>$ セクションの中にコピ
ーされるローカルファイル名を指定します。このファイルは、それ自身がフォ
ントを含んでいるか、または期待するフォントを参照するハイパーリンクを生
成するための行を含むもののどちらかです。gnuplot は、環境変数
GNUPLOT\_FONTPATH のディレクトリリストから要求されたファイルを探します。
注: TrueType や PostScript フォントではない svg フォントを埋め込む必要
があります。
\subsection{Svga}
\label{commands set terminal svga}
\label{set terminal svga}
\label{set term svga}
\label{terminal svga}
\label{term svga}
\label{svga}
\index{svga}
{\bf svga} ドライバは SVGA グラフィックの PC をサポートします。これは
DJGPP でコンパイルされた場合のみ使うことができます。オプションはフォン
トに関するもののみです。

書式:
\preverbatim
\begin{verbatim}
     set terminal svga {"<fontname>"}
\end{verbatim}
\postverbatim
\subsection{Tek40}
\label{commands set terminal tek40xx}
\label{set terminal tek40xx}
\label{set term tek40xx}
\label{terminal tek40xx}
\label{term tek40xx}
\label{tek40}
\index{tek40}
\label{commands set terminal vttek}
\label{set terminal vttek}
\label{set term vttek}
\label{terminal vttek}
\label{term vttek}
\label{vttek}
\index{vttek}
\label{commands set terminal xterm}
\label{set terminal xterm}
\label{set term xterm}
\label{terminal xterm}
\label{term xterm}
\label{xterm}
\index{xterm}
このドライバ群は VT-ライクな端末のいくつかをサポートします。{\bf tek40xx}
は Tektronix 4010 とその他ほとんどの TEK エミュレータをサポートします。
{\bf vttek} は VT-ライクな tek40xx 端末エミュレータをサポートします。
以下のものは、gnuplot のコンパイル時に選択されたもののみが利用できます:{\bf kc-tek40xx} はカラーの MS-DOS Kermit Tek4010 ターミナルエミュレータを、{\bf km-tek40xx} はその白黒版をサポートします。
{\bf selanar} は Selanar グラフィック端末をサポートします。
{\bf bitgraph} は BBN Bitgraph 端末をサポートします。
いずれもオプションはありません。
\subsection{Tek410x}
\label{commands set terminal tek410x}
\label{set terminal tek410x}
\label{set term tek410x}
\label{terminal tek410x}
\label{term tek410x}
\label{tek410x}
\index{tek410x}
{\bf tek410x} ドライバは Tektronix 410x, 420x ファミリーをサポートしていま
す。オプションはありません。
\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} ドライバは LaTeX texdraw 環境をサポートします。それは texdraw
パッケージの {\tt"}texdraw.sty{\tt"} と {\tt"}texdraw.tex{\tt"} と共に使用されることを仮定
しています。

数ある中で、点 (point) は、LaTeX のコマンド {\tt"}$\backslash$Diamond{\tt"}, {\tt"}$\backslash$Box{\tt"} などを
使って描かれます。これらのコマンドは現在は LaTeX2e のコアには存在せず
latexsym パッケージに含まれていますが、このパッケージ基本配布の一部で
あり、よって多くの LaTeX のシステムの一部になっています。このパッケー
ジを使うことを忘れないでください。

オプションはありません。
\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}
Tgif は X11 ベースのドローツールです  ---  ただし、これは GIF に関して何
かするわけではありません。

{\bf tgif} ドライバは複数の点の大きさ ({\bf set pointsize} で)、複数の見出し用
のフォント、フォントサイズ (例えば {\bf set label {\tt"}Hallo{\tt"} at x,y font
{\tt"}Helvetica,34{\tt"}})、そして 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{\tt"}}, {\bf 18} です。

{\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}
\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 (p.~\pageref{term lua})\index{lua}}。出力形式のオプションを表示させるには、{\bf set term tikz help}
を使用してください。
\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}
このドライバは Tcl/Tk ベース (デフォルト)、または Perl ベースの Tk
canvas widget コマンドを生成します。これを使うには、{\tt"}term.h{\tt"} のこのド
ライバに対応する行のコメント記号を外すか適当な行を書き加えて {\bf gnuplot}
を make し直して、以下のように実行します。

\preverbatim
\begin{verbatim}
gnuplot> set term tkcanvas {perltk} {interactive}
gnuplot> set output 'plot.file'
\end{verbatim}
\postverbatim

そして {\tt"}wish{\tt"} を起動した後で、以下の Tcl/Tk コマンド列を実行してください:

\preverbatim
\begin{verbatim}
% source plot.file
% canvas .c
% pack .c
% gnuplot .c
\end{verbatim}
\postverbatim

Perl/Tk の場合は以下のようにしてこのプログラムを使います:

\preverbatim
\begin{verbatim}
use Tk;
my $top = MainWindow->new;
my $c = $top->Canvas->pack;
my $gnuplot = do "plot.pl";
$gnuplot->($c);
MainLoop;
\end{verbatim}
\postverbatim

{\bf gnuplot} によって生成されたコードは {\tt"}gnuplot{\tt"} と呼ばれる手続きを作り、
それはその引数を canvas の名前とします。その手続きが呼ばれると、それは
canvas をクリアし、canvas のサイズを見つけ、その中に丁度収まるようにグ
ラフを書きます。

2 次元の描画 ({\bf plot}) では 2 つの手続きが追加されて定義されます:
{\tt"}gnuplot\_plotarea{\tt"} は描画範囲の境界を含むリスト {\tt"}xleft, xright, ytop,
ybot{\tt"} を canvas スクリーン座標で返し、2 つの対の軸の描画座標での範囲
{\tt"}x1min, x1max, y1min, y1max, x2min, x2max, y2min, y2max{\tt"} は手続き
{\tt"}gnuplot\_axisranges{\tt"} を呼べば得られます。{\tt"}interactive{\tt"} オプションを指
定すると、canvas の線分上でマウスをクリックするとその線分の中点の座標
が標準出力に出力されるようになります。さらに、{\tt"}user\_gnuplot\_coordinates{\tt"}
という手続きを定義することで、それに代わる新たな動作を起こすことも可能
です。その手続きには以下の引数が渡されます: {\tt"}win id x1s y1s x2s y2sx1e y1e x2e y2e x1m y1m x2m y2m{\tt"}、これらは、canvas の名前、線分の id、2 つの座標系でのその線分の開始点の座標、終了点の座標、そして中点の座標です。中点の座標は対数軸に対してのみ与えられます。

{\bf tkcanvas} の現在の版では {\bf multiplot} も {\bf replot} もサポートしていませ
ん。
\subsection{Tpic}
\label{commands set terminal tpic}
\label{set terminal tpic}
\label{set term tpic}
\label{terminal tpic}
\label{term tpic}
\label{tpic}
\index{tpic}
{\bf tpic} ドライバは tpic $\backslash$special での LaTeX picture 環境の描画をサポー
トします。 これは {\bf latex} や {\bf eepic} ドライバに代わる別な選択肢です。
点の大きさ (pointsize)、線の幅 (linewidth)、点線の点の間隔 (interval)
に関するオプションがあります。

書式:
\preverbatim
\begin{verbatim}
     set terminal tpic <pointsize> <linewidth> <interval>
\end{verbatim}
\postverbatim

{\bf pointsize} と {\bf linewidth} は整数でミリインチ単位、{\bf interval} は実数で
単位はインチです。正でない値を指定するとデフォルトの値が使われます。デ
フォルトでは pointsize = 40, linewidth = 6, interval = 0.1 です。

LaTeX に関する全てのドライバは文字列の配置の制御に特別な方法を提供しま
す: '\{' で始まる文字列は、'\}' で閉じる必要がありますが、その文字列全体
が LaTeX によって水平方向にも垂直方向にもセンタリングされます。'[' で
始まる文字列の場合は、位置の指定をする文字列 (t,b,l,r のうち 2 つまで)
が続き、次に ']\{'、文字列本体、で最後に '\}' としますが、この文字列は
LaTeX が LR-box として整形します。$\backslash$rule\{\}\{\} を使えばさらに良い位置合わ
せが可能でしょう。

例:
見出しの位置合わせに関して:
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
\subsection{Unixpc}
\label{commands set terminal unixpc}
\label{set terminal unixpc}
\label{set term unixpc}
\label{terminal unixpc}
\label{term unixpc}
\label{unixpc}
\index{unixpc}
{\bf unixpc} ドライバは AT\&T 3b1 と AT\&T 7300 Unix PC をサポートします。オ
プションはありません。
\subsection{Unixplot}
\label{commands set terminal unixplot}
\label{set terminal unixplot}
\label{set term unixplot}
\label{terminal unixplot}
\label{term unixplot}
\label{unixplot}
\index{unixplot}
{\bf unixplot} ドライバは Unix の {\tt"}plot{\tt"} グラフィック言語の出力を生成しま
す。オプションはありません。

このドライバは、GNU 版の plot を使っている環境ではコンパイルされません。
その場合は代わりに {\bf gnugraph} ドライバ (terminal) を利用してください。
\subsection{Vgagl}
\label{commands set terminal vgagl}
\label{set terminal vgagl}
\label{set term vgagl}
\label{terminal vgagl}
\label{term vgagl}
\label{vgagl}
\index{vgagl}
ドライバ {\bf vgagl} はマウスと pm3d を完全にサポートした、linux の高速な
コンソールドライバです。デフォルトモードの設定には 環境変数
SVGALIB\_DEFAULT\_MODE を参照しますが、設定されていない場合は 256 色モー
ドで有効な解像度のうち最も高いものを選択します。

書式:
\preverbatim
\begin{verbatim}
  set terminal vgagl \
               background [red] [[green] [blue]] \
               [uniform | interpolate] \
               [mode]
\end{verbatim}
\postverbatim

カラーモードは mode オプションで与えることもできます。G1024x768x256 の
ような記号的名称や整数で与えることができます。オプション {\bf background}
は [0, 255] の範囲の整数 1 つ、または 3 つの組を取ります。整数 1 つの
場合はそれは背景の灰色の値と見なされ、3 つの組の場合はそれに対応した色
が背景に取られます。
相互に排他的なオプション {\bf interpolate} と {\bf uniform} は、三角形の塗りつ
ぶしの際に色の補間が行うかどうか (デフォルトでは ON) を制御します。

高解像度モードを得るには、多分 libvga の設定ファイル (通常
/etc/vga/libvga.conf) を修正する必要があるでしょう。VESA fb を使うのは
良い選択ですが、それはカーネルのコンパイルが必要です。

vgagl ドライバは、以下のリストのうちの *有効な* vga モードの最初のものを使用します。
\preverbatim
\begin{verbatim}
- vgagl の設定時に与えられるモード、例えば `set term vgagl G1024x768x256`
  は最初に G1024x768x256 モードが有効かどうかチェックします。
- 環境変数 SVGALIB_DEFAULT_MODE
- G1024x768x256
- G800x600x256
- G640x480x256
- G320x200x256
- G1280x1024x256
- G1152x864x256
- G1360x768x256
- G1600x1200x256
\end{verbatim}
\postverbatim

\subsection{VWS}
\label{commands set terminal VWS}
\label{set terminal VWS}
\label{set term VWS}
\label{terminal VWS}
\label{term VWS}
\label{VWS}
\index{VWS}
{\bf VWS} ドライバは VAX ウィンドウシステムをサポートします。オプションは
ありません。このドライバはディスプレイの状態 (白黒か、グレイスケールか
カラーか) を自動検知します。全ての線種は実線で描画されます。
\subsection{Vx384}
\label{commands set terminal vx384}
\label{set terminal vx384}
\label{set term vx384}
\label{terminal vx384}
\label{term vx384}
\label{vx384}
\index{vx384}
{\bf vx384} ドライバは Vectrix 384 と Tandy カラープリンタをサポートしま
す。オプションはありません。
\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} ドライバでは 3 つのオプションを設定することができます。

書式:
\preverbatim
\begin{verbatim}
     set terminal windows {color | monochrome}
                          {enhanced | noenhanced}
                          {{font} "fontname{,fontsize}" {<fontsize>}}
                          {title "Plot Window Title"}
                          {size <width>,<height>}
                          {position <x>,<y>}
                          {close}
\end{verbatim}
\postverbatim

{\bf color}, {\bf monochrome} は、カラー出力か白黒出力かの選択で、
{\bf enhanced} は拡張文字列処理 (enhanced text mode) の機能 (上付文字、下
付文字やフォントの混在) を有効にします。詳細は、以下参照: {\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}。
{\bf {\tt"}$<$fontname$>${\tt"}} は有効な Windows のフォント名で、{\bf $<$fontsize$>$} はポイ
ント単位でのフォントの大きさです。
{\bf size} はウィンドウのピクセル単位での幅と高さを、{\bf position} はウィンド
ウの原点、すなわち左上角のスクリーン上のピクセル単位での位置を定義しま
す。これらのオプションは、WGNUPLOT.INI ファイル (以下に記述) によるデ
フォルトの設定を上書きします。

他のオプションもグラフメニューか初期化ファイルで設定できます。

Windows 版は、非対話型モードでは通常、コマンドラインから与えたファイル
の最後に達すると直ちに終了しますが、コマンドラインの最後に {\bf -} を指定
した場合は別です。また、このモードではテキストウィンドウは表示せず、グ
ラフのみの表示となりますが、オプションとして {\bf -persist} (x11 版の
gnuplot と同じオプション; 従来の Windows のみのオプション {\bf /noend} や
{\bf -noend} を使うこともできます) を指定すると gnuplot は終了しなくなりま
す。この場合他の OS での gnuplot の挙動とは異なり、-persist オプション
後も gnuplot の対話型コマンドラインを受け付けます。

gnuplot 出力形式を他のものに変更しても、描画ウィンドウはそのまま残りま
すが、{\bf set term windows close} で描画ウィンドウを閉じることができます。
\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 Bring to Top} チェックを入れるとグラフウィンドウを他の全ての描画ウィン
ドウの手前に表示

{\bf Color} チェックを入れるとカラーの線種が有効、チェック無しでは白黒

{\bf Copy to Clipboard} クリップボードにビットマップや EMF 画像をコピー

{\bf Save as EMF...} 現在のグラフウィンドウを EMF ファイルとして保存

{\bf Background...} ウィンドウ背景色の設定

{\bf Choose Font...} グラフィックウィンドウで使うフォントの選択

{\bf Line Styles...} 線の色や種類のカスタマイズ

{\bf Print...} グラフィックウィンドウを Windows プリンタドライバでプリント
アウト。プリンタと拡大率の選択が可能ですが、この {\bf Print} オプションに
よる印刷結果は {\bf gnuplot} の持つプリンタドライバによるもの程良くはあり
ません。

{\bf Update wgnuplot.ini} 現在のウィンドウの位置、ウィンドウの大きさ、テキ
ストウィンドウのフォントとそのフォントサイズ、グラフウィンドウのフォン
トとそのフォントサイズ、背景色、線種を初期化ファイル {\bf WGNUPLOT.INI} に
保存
\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}
好みにより、グラフは以下のような方法で印刷できます。

{\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}
\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 Update wgnuplot.ini} 現在のテキストウィンドウの位置、テキストウィンド
ウの大きさ、テキストウィンドウのフォントとそのフォントサイズを初期化フ
ァイル {\bf WGNUPLOT.INI} に保存

{\bf MENU BAR}

メニューファイル {\bf WGNUPLOT.MNU} が WGNUPLOT.EXE と同じディレクトリにあ
る場合、{\bf WGNUPLOT.MNU} に書かれているメニューが読み込まれます。メニュ
ーコマンドは以下の通りです:

[Menu] 次の行の名前で新しいメニューを開始

[EndMenu] 現在のメニューを終了

[--] 水平なメニューの仕切りを入れる

[$|$] 垂直なメニューの仕切りを入れる

[Button] メニューにプッシュボタンを入れ、それに次のマクロを当てはめる

マクロは 2 行で書き、最初の行はマクロ名 (メニューの見出し)、2 行目がマ
クロ本体です。先頭の空白列は無視されます。マクロコマンドは以下の通りです:

[INPUT]  ---  [EOS] か \{ENTER\} までをプロンプトとして出力し文字列を入力

[EOS]  ---  文字列の終り (End Of String)。何も出力しない

[OPEN]  ---  開くファイル名をリストボックスから取得。[EOS] までがリスト
ボックスのタイトル、その後から次の [EOS] か \{ENTER\} までがデフォルトの
ファイル名。

[SAVE]  ---  セーブファイル名を取得 ([OPEN] 同様)

マクロ文字の置き換えは以下の通りです:

\{ENTER\}  ---  復帰 '$\backslash$r'

\{TAB\}  ---  タブ '$\backslash$011'

\{ESC\}  ---  エスケープ '$\backslash$033'

\{\verb+^+A\}  ---  '$\backslash$001'

...

\{\verb+^+\_\}  ---  '$\backslash$031'

マクロは展開後の文字数が最大 256 文字に制限されています。
\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 gnuplot} は、ユーザの \%APPDATA\% ディレクトリにある
{\bf WGNUPLOT.INI} の {\bf [WGNUPLOT]} セクションからいくつかのオプションを
読み込みます。{\bf WGNUPLOT.INI} ファイルの例です:

\preverbatim
\begin{verbatim}
     [WGNUPLOT]
     TextOrigin=0 0
     TextSize=640 150
     TextFont=Terminal,9
     GraphOrigin=0 150
     GraphSize=640 330
     GraphFont=Arial,10
     GraphColor=1
     GraphToTop=1
     GraphBackground=255 255 255
     Border=0 0 0 0 0
     Axis=192 192 192 2 2
     Line1=0 0 255 0 0
     Line2=0 255 0 0 1
     Line3=255 0 0 0 2
     Line4=255 0 255 0 3
     Line5=0 0 128 0 4
\end{verbatim}
\postverbatim

{\bf GraphFont} の項にはフォント名とポイント単位のフォントサイズを指定しま
す。{\bf Border}, {\bf Axis}, {\bf Line} には、赤の強度 (0--255)、緑の強度、青の強
度、カラーの線種、白黒の線種の 5 つの数字を指定します。この線種
({\bf linestyle}) は、0=実線、1=鎖線、2=点線、3=一点鎖線、4=二点鎖線、とな
っています。上の例の {\bf WGNUPLOT.INI} では、Line 2 はカラーモードでは緑の
実線で、白黒モードでは鎖線になります。デフォルトの線幅は 1 ピクセルです。
線種が負の値の場合、その絶対値がピクセル単位での線幅である実線を意味し
ます。Line1 と {\bf points} スタイルで使われる線種は 1 ピクセル幅の実線でな
ければなりません。
\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>}
                    {{no}enhanced}
                    {font <font>}
                    {title "title"}
                    {dashed|solid} {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} コマンドを入力すると、その新しい描画では完全にそのウィン
ドウに合わせられますが、フォントサイズや線幅はそれぞれのデフォルトにリ
セットされます。

現在の描画ウィンドウ ({\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) は、設定ダイアログ上
のやりとりでも設定し、記憶させることができます。
\subsection{X11}
\label{commands set terminal x11}
\label{set terminal x11}
\label{set term x11}
\label{terminal x11}
\label{term x11}
\label{x11}
\index{x11}
\label{X11}
\index{X11}
{\bf gnuplot} は X サーバを利用する {\bf x11} 出力ドライバを提供します。この出
力形式は、環境変数 {\bf DISPLAY} がセットされているか、環境変数 {\bf TERM} が
{\bf xterm} にセットされているか、またはコマンドラインオプションとして
{\bf -display} が使われていれば起動時に自動的に選択されます。

書式:
\preverbatim
\begin{verbatim}
  set terminal x11 {<n> | window "<string>"}
                   {title "<string>"}
                   {{no}enhanced} {font <fontspec>}
                   {linewidth LW} {solid|dashed}
                   {{no}persist} {{no}raise} {{no}ctrlq}
                   {close}
                   {size XX,YY} {position XX,YY}
  set terminal x11 {reset}
\end{verbatim}
\postverbatim

複数のグラフ描画ウィンドウをサポートしています。{\bf set terminal x11 $<$n$>$}
は番号 n の描画ウィンドウに出力します。n が 0 でなければ、タイトルが明
示的に指定されていなければその番号がウィンドウタイトルとしてつけられ、
アイコンには {\bf Gnuplot $<$n$>$} とラベル付けされます。現在有効なウィンドウ
はカーソル記号の変化で区別できます (デフォルトカーソルから十字カーソル
へ)。

{\bf x11} 出力形式は、外部のアプリケーションによって生成されている X のウィ
ンドウの X ID (16 進表記) をオプション {\bf window} の後に文字列として指定
することで、そのウィンドウと接続できます。X は複数のクライアントにイベ
ント ButtonPress の選択を認めないため、gnuplot その外部ウィンドウをコン
テナとして使用します。この方法により、gnuplot のマウス機能はとりこまれ
た描画ウィンドウ内でも作動します。

\preverbatim
\begin{verbatim}
  set term x11 window "220001e"
\end{verbatim}
\postverbatim

x11 出力形式は、利用可能なフォントの元で拡張文字列処理モード (以下参照:{\bf enhanced (p.~\pageref{enhanced})\index{enhanced}}) をサポートしています。文字列に埋め込まれ、様々な効果を与え
るフォントサイズ命令のために、デフォルトの x11 フォントがスケーラブル
フォントである必要があります。よって、以下の最初の例はうまくいくでしょうが、2 番目のものはそうではないでしょう。

\preverbatim
\begin{verbatim}
  set term x11 enhanced font "arial,15" 
  set title '{/=20 Big} Medium {/=5 Small}' 
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
  set term x11 enhanced font "terminal-14" 
  set title '{/=20 Big} Medium {/=5 Small}' 
\end{verbatim}
\postverbatim

{\bf gnuplot} ドライバが別な出力ドライバに変更されても、描画ウィンドウは開
いたままになります。描画ウィンドウは、そのウィンドウにカーソルを置いて
文字 q を押すか、ウィンドウマネージャのメニューの {\bf close} を選択すれば
閉じることができます。{\bf reset} を実行すれば全てのウィンドウを一度に閉じ
れます。それは実際にウィンドウを管理している子プロセスを終了します (も
し {\bf -persist} が指定されていなければ)。コマンド {\bf close} は、個々の描画
ウィンドウを番号を指定して閉じるのに使うことができます。しかし、persist
のために残っているような描画ウィンドウは {\bf close} コマンドでは閉じること
はできません。番号を省略して {\bf close} した場合には現在有効な描画ウィンド
ウを閉じます。

gnuplot の外にあるドライバ gnuplot\_x11 は、プログラムのコンパイル時に
選択されたデフォルトの場所が検索されます。これは環境変数
GNUPLOT\_DRIVER\_DIR を異なる場所と定義することで変更できます。

描画ウィンドウは {\bf -persisit} オプションが与えられていなければ、対話の
終了時に自動的に閉じられます。

オプション {\bf persist} と {\bf raise} はデフォルトでは設定されていませんが、
それは、デフォルトの値 (persist == no で raise == yes) か、コマンドラ
インオプション -persist / -raise の指定か、または X のリソース値が使わ
れる、ということを意味します。[no]persist か [no]raise が指定されると
それはコマンドラインオプションや X リソースの設定よりも優先されます。
これらのオプションの設定は直ちに効力を持ちますので、既に起動しているド
ライバの挙動は変更されます。ウィンドウを前面に出せない場合は、以下参照:{\bf raise (p.~\pageref{raise})\index{raise}}。

オプション {\bf title {\tt"}$<$title name$>${\tt"}} は現在の描画ウィンドウに、または番号
を指定すればその番号の描画ウィンドウに対するウィンドウタイトル名をつけ
ます。そのタイトルが表示される場所、または表示されるかどうかは、使って
いる X のウィンドウマネージャに依存します。

オプション size は、描画ウィンドウのサイズを設定するのに使用できます。
このオプションは、その後に生成するウィンドウのみに適用されます。

オプション position は、描画ウィンドウの位置を設定するのに使えます。
このオプションは、その後に生成するウィンドウのみに適用されます。

描画サイズとアスペクト比は、{\bf gnuplot} のウィンドウをリサイズすることで
も変更できます。

線の幅と点のサイズは {\bf gnuplot} の {\bf set linestyle} で変更可能です。

出力ドライバ {\bf x11} に関しては、{\bf gnuplot} は (起動時に)、コマンドライン、
または設定ファイルから、geometry や font, name などの通常の X Toolkit
オプションやリソースの指定を受け付けます。それらのオプションについては
X(1) マニュアルページ (やそれと同等のもの) を参照してください。

\index{X resources}
他にも {\bf x11} 出力形式用の多くの {\bf gnuplot} のオプションがあります。これ
らは {\bf gnuplot} を呼ぶときにコマンドラインオプションとして指定するか、
または設定ファイル {\tt"}.Xdefaults{\tt"} のリソースとして指定できます。これら
は起動時に設定されるので、{\bf gnuplot} 実行時には変更できません
({\bf persist} と {\bf raise} 以外は)。
\subsubsection{X11\_fonts}
\label{commands set terminal x11 x11_fonts}
\label{set terminal x11 x11_fonts}
\label{set term x11 x11_fonts}
\label{x11 x11_fonts}
\label{x11_fonts}
\index{x11 fonts}
\index{fonts}
初期起動時は、システムの設定か、ユーザの .Xdefaults ファイルの設定か、
コマンドライン指定か、のいずれかによる X11 リソースによってデフォルト
のフォントが選択されます。

例:
\preverbatim
\begin{verbatim}
     gnuplot*font: lucidasans-bold-12
\end{verbatim}
\postverbatim
新しいデフォルトのフォントを、gnuplot 内部から x11 ドライバに以下のようにして指示することもできます:
\preverbatim
\begin{verbatim}
    `set term x11 font "<fontspec>"`
\end{verbatim}
\postverbatim
まず x11 ドライバは、与えられたフォントの正式名を X サーバに尋ねます。
この問い合わせが失敗した場合、$<$fontspec$>$ を
{\tt"}$<$font$>$,$<$size$>$,$<$slant$>$,$<$weight$>${\tt"} と解釈し、以下の形の完全な X11 フォント名を生成しようとします:
\preverbatim
\begin{verbatim}
     -*-<font>-<weight>-<s>-*-*-<size>-*-*-*-*-*-<encoding>
\end{verbatim}
\postverbatim

\preverbatim
\begin{verbatim}
<font> はフォントの基本名 (base name) (例: Times, Symbol)
<size> はポイントサイズ (指定がなければデフォルトは 12)
<s> は <slant>=="italic" なら `i`, <slant>=="oblique" なら `o`, その他は `r`
<weight> は明示的に指定されれば `medium` か `bold`、その他は `*`
<encoding> は現在の文字集合に基づいて設定 (以下参照: `set encoding`)
\end{verbatim}
\postverbatim
よって {\bf set term x11 font {\tt"}arial,15,italic{\tt"}} は (デフォルトの encoding
だとすれば) -*-arial-*-i-*-*-15-*-*-*-*-*-iso8859-1 に変換されます。
$<$size$>$, $<$slant$>$, $<$weight$>$ 指定はいずれも必須ではありません。$<$slant$>$ や
$<$weight$>$ を指定しなかった場合は、フォントサーバが最初に見つけた、変種
のフォントを取得するかもしれません。
デフォルトのエンコーディングは、対応する X11 リソースを使って設定するこ
ともできます。例:
\preverbatim
\begin{verbatim}
     gnuplot*encoding: iso8859-15
\end{verbatim}
\postverbatim
x11 ドライバは、一般的な PostScript フォント名も認識し、それと同等で有
効な X11 フォントか TrueType フォントに置き換えます。
これと同じ手順が、{\bf set label} の要求によるフォントの生成でも使われてい
ます。

あなたの gnuplot が configure の --enable-x11-mbfonts オプションをつけ
てインストールされたものなら、フォント名の前に {\tt"}mbfont:{\tt"} をつけるこ
とでマルチバイトフォントを指定することができます。フォント名を複数指定
する個ともできますが、その場合はセミコロンで区切ります。マルチバイトフ
ォントのエンコーディングは locale の設定に従いますので、環境変数
LC\_CTYPE を適切な値 (例えば ja\_JP.eucJP, ko\_KR.EUC, zh\_CN.EUC など) に
に設定する必要があります。

例:
\preverbatim
\begin{verbatim}
     set term x11 font 'mbfont:kana14;k14'
           # 'kana14' と 'k14' は日本語の X11 font エイリアス名、';'
           # はフォント名の区切りです。
     set term x11 font 'mbfont:fixed,16,r,medium'
           # <font>,<size>,<slant>,<weight> 形式も使用できます。
     set title '(mb strings)' font 'mbfont:*-fixed-medium-r-normal--14-*'
\end{verbatim}
\postverbatim

同じ書式は X のリソースでのデフォルトフォントの設定でも有効です。例:
\preverbatim
\begin{verbatim}
     gnuplot*font: \
         mbfont:-misc-fixed-medium-r-normal--14-*-*-*-c-*-jisx0208.1983-0
\end{verbatim}
\postverbatim

gnuplot が --enable-x11-mbfonts でインストールされた場合、{\tt"}mbfont:{\tt"}
をつけなくても 2 つの特別な PostScript フォント名 'Ryumin-Light-*',
'GothicBBB-Medium-*' (標準的な日本語 PS フォント) を使うこともできます。

\subsubsection{Command-line\_options}
\label{commands set terminal x11 command-line-options}
\label{set terminal x11 command-line-options}
\label{set term x11 command-line-options}
\label{x11 command-line-options}
\label{command-line-options}
\index{command line options}
X Toolkit オプションに加え、以下のオプションが gnuplot の立ち上げ時のコマンドラインで、またはユーザのファイル {\tt"}.Xdefaults{\tt"} 内のリソースとして指定できます ({\bf raise} と {\bf persist} は {\bf set term x11 [no]raise [no]persist}によって上書きされることに注意してください):

\begin{center}
\begin{tabular}{|cl|} \hline
`-mono`     & カラーディスプレイ上で強制的に白黒描画\\
`-gray`     & グレイスケールまたはカラーディスプレイ上でのグレイスケール描画\\
            & (デフォルトではグレイスケールディスプレイは白黒描画を受け付ける)\\
`-clear`    & 新しい描画を表示する前に (瞬間的に) 画面を消去\\
`-tvtwm`    & geometry オプションによる位置の指定を、仮想ルートウィンドウ中の\\
                 & 現在の表示部分に対する相対的な位置にする\\
`-raise`    & 各描画後に描画ウィンドウを最前面へ出す\\
`-noraise`  & 各描画後に描画ウィンドウを最前面へ出すことはしない\\
`-noevents` & マウス、キーの入力を処理しない\\
`-persist`  & gnuplot プログラム終了後も描画ウィンドウを残す\\
\hline
\end{tabular}
\end{center}
\index{X resources}
上記のオプションはコマンドライン上での指定書式で、{\tt"}.Xdefaults{\tt"} にリ
ソースとして指定するときは異なる書式を使います。

例:
\preverbatim
\begin{verbatim}
     gnuplot*gray:  on
     gnuplot*ctrlq: on
\end{verbatim}
\postverbatim

{\bf gnuplot} は描画スタイル {\bf points} で描画する点のサイズの制御にも、コマンド
ラインオプション ({\bf -pointsize $<$v$>$}) とリソース ({\bf gnuplot*pointsize: $<$v$>$})
を提供しています。値 {\bf v} は点のサイズの拡大率として使われる実数値
(0 $<$ v $<$= 10) で、例えば {\bf -pointsize 2} はデフォルトのサイズの 2 倍、
{\bf -pointsize 0.5} は普通のサイズの半分の点が使われます。

{\bf -noevents} はマウス、キーの全ての入力の処理を無効にします ({\bf q} と
{\bf $<$space$>$} によるウィンドウの終了を除いて)。これは、gnuplot のメインプ
ログラムとは独立した形で x11 ドライバを利用するプログラムに有用です。

{\bf -ctrlq} スィッチは、描画ウィンドウを閉じるホットキーを {\bf q} から
{\bf $<$ctrl$>$q} に変更します。これは、{\bf pause mouse keystroke} によるキースト
ロークの保存機能を使っている場合には、他のアルファベット文字と同様に
{\bf q} を保存できるようになるので有用でしょう。同じ理由で、{\bf -ctrlq} スィ
ッチは $<$space$>$ ホットキーも $<$ctrl$>$$<$space$>$ に置き換えます。

\subsubsection{Monochrome\_options}
\label{commands set terminal x11 monochrome_options}
\label{set terminal x11 monochrome_options}
\label{set term x11 monochrome_options}
\label{x11 monochrome_options}
\label{monochrome_options}
\index{monochrome options}
\index{X resources}
白黒ディスプレイに対しては {\bf gnuplot} は描画色 (foreground) も背景色
(background) も与えません。デフォルトでは背景は白、描画は黒です。{\bf -rv}
や {\bf gnuplot*reverseVideo: on} の場合には背景が黒で描画は白になります。

\subsubsection{Color\_resources}
\label{commands set terminal x11 color_resources}
\label{set terminal x11 color_resources}
\label{set term x11 color_resources}
\label{x11 color_resources}
\label{color_resources}
\index{color resources}
\index{X resources}
x11 出力形式は以下のリソース (ここではそのデフォルトの値を示します)、
または白黒階調 (greyscale) のリソースを参照します。リソースの値はシス
テム上の X11 rgb.txt ファイルに書かれている色名、または 16 進の色指定
(X11 のマニュアルを参照) か、色名と強度 (0 から 1 の間の値) をコンマで
区切った値を使用できます。例えば {\bf blue, 0.5} は半分の強度の青、を意味
します。

\begin{center}
\begin{tabular}{|cl|} \hline
&gnuplot*background: white\\
&gnuplot*textColor: black\\
&gnuplot*borderColor: black\\
&gnuplot*axisColor: black\\
&gnuplot*line1Color: red\\
&gnuplot*line2Color: green\\
&gnuplot*line3Color: blue\\
&gnuplot*line4Color: magenta\\
&gnuplot*line5Color: cyan\\
&gnuplot*line6Color: sienna\\
&gnuplot*line7Color: orange\\
&gnuplot*line8Color: coral\\
\hline
\end{tabular}
\end{center}

これらに関するコマンドラインの書式は、背景 (bacground) に関しては単純で
通常の X11 toolkit オプションの {\tt"}-bg{\tt"} に直接対応します。他のものも、
全て一般的なリソースの上書きオプション {\tt"}-xrm{\tt"} を使うことで設定できま
す。

例:

背景色を変更するには
\preverbatim
\begin{verbatim}
     gnuplot -background coral
\end{verbatim}
\postverbatim

線種 1 番目の色を書き換えるには
\preverbatim
\begin{verbatim}
     gnuplot -xrm 'gnuplot*line1Color:blue'
\end{verbatim}
\postverbatim

\subsubsection{Grayscale\_resources}
\label{commands set terminal x11 grayscale_resources}
\label{set terminal x11 grayscale_resources}
\label{set term x11 grayscale_resources}
\label{x11 grayscale_resources}
\label{grayscale_resources}
\index{grayscale resources}
\index{X resources}
{\bf -gray} を選択すると、{\bf gnuplot} は、グレイスケールまたはカラーディスプ
レイに対して、以下のリソースを参照します (ここではそのデフォルトの値を示します)。デフォルトの背景色は黒であることに注意してください。

\begin{center}
\begin{tabular}{|cl|} \hline
&gnuplot*background: black\\
&gnuplot*textGray: white\\
&gnuplot*borderGray: gray50\\
&gnuplot*axisGray: gray50\\
&gnuplot*line1Gray: gray100\\
&gnuplot*line2Gray: gray60\\
&gnuplot*line3Gray: gray80\\
&gnuplot*line4Gray: gray40\\
&gnuplot*line5Gray: gray90\\
&gnuplot*line6Gray: gray50\\
&gnuplot*line7Gray: gray70\\
&gnuplot*line8Gray: gray30\\
\hline
\end{tabular}
\end{center}

\subsubsection{Line\_resources}
\label{commands set terminal x11 line_resources}
\label{set terminal x11 line_resources}
\label{set term x11 line_resources}
\label{x11 line_resources}
\label{line_resources}
\index{line resources}
\index{X resources}
{\bf gnuplot} は描画の線の幅 (ピクセル単位) の設定のために以下のリソースを参照します (ここではそのデフォルトの値を示します)。0 または 1 は最小の
線幅の 1 ピクセル幅を意味します。2 または 3 の値によってグラフの外観を
改善できる場合もあるでしょう。

\begin{center}
\begin{tabular}{|cl|} \hline
&gnuplot*borderWidth: 2\\
&gnuplot*axisWidth: 0\\
&gnuplot*line1Width: 0\\
&gnuplot*line2Width: 0\\
&gnuplot*line3Width: 0\\
&gnuplot*line4Width: 0\\
&gnuplot*line5Width: 0\\
&gnuplot*line6Width: 0\\
&gnuplot*line7Width: 0\\
&gnuplot*line8Width: 0\\
\hline
\end{tabular}
\end{center}

{\bf gnuplot} は線描画で使用する点線の形式の設定用に以下のリソースを参照します。0 は実線を意味します。2 桁の 10 進数 {\bf jk} ({\bf j} と {\bf k} は 1 から
9 までの値) は、{\bf j} 個のピクセルの描画に {\bf k} 個の空白のピクセルが続く
パターンの繰り返しからなる点線を意味します。例えば '16' は 1 個のピク
セルの後に 6 つの空白が続くパターンの点線になります。さらに、4 桁の 10
進数でより詳細なピクセルと空白の列のパターンを指定できます。例えば、
'4441' は 4 つのピクセル、4 つの空白、4 つのピクセル、1 つの空白のパタ
ーンを意味します。以下のデフォルトのリソース値は、白黒ディスプレイ、あるいはカラーや白黒階調 (grayscale) ディスプレイ上の白黒描画における値
です。
カラーディスプレイでは dashed:off がデフォルトになっています。

\begin{center}
\begin{tabular}{|cl|} \hline
&gnuplot*dashed: off\\
&gnuplot*borderDashes: 0\\
&gnuplot*axisDashes: 16\\
&gnuplot*line1Dashes: 0\\
&gnuplot*line2Dashes: 42\\
&gnuplot*line3Dashes: 13\\
&gnuplot*line4Dashes: 44\\
&gnuplot*line5Dashes: 15\\
&gnuplot*line6Dashes: 4441\\
&gnuplot*line7Dashes: 42\\
&gnuplot*line8Dashes: 13\\
\hline
\end{tabular}
\end{center}

\subsubsection{X11 pm3d\_resources}
\label{commands set terminal x11 pm3d_resources}
\label{set terminal x11 pm3d_resources}
\label{set term x11 pm3d_resources}
\label{x11 pm3d_resources}
\label{pm3d_resources}
\index{pm3d resources}
\label{x11 pm3d}
\index{X resources}
適切な visual クラスと色数を選択するのは、X11 アプリケーションにとって
苦しく、ちょっと厄介なことです。それは X11 が異なる深度 (depth) の 6
つの visual 型をサポートしているからです。

デフォルトでは {\bf gnuplot} はそのスクリーンのデフォルトの visual を使用
します。割り当てることのできる色数は選択された visual クラスによって変
わります。12bit を超える深度を持つ visual クラス上では、gnuplot は最大
色数である 0x200 (=512) 色で起動します。8bit を超える (12bit 以下で)
深度の visual クラスでは最大色数は 0x100 (=256) 色、8bit 以下のディスプレイでは最大色は 240 (16 色は曲線の色用に取られる) になります。

gnuplot は最初に、上に述べたような最大色を割り当てようと起動します。こ
れに失敗するとその色数は、gnuplot がその全部を割り付けることができるま
で、1/2 ずつ減らされます。{\bf maxcolors} を繰り返し 2 で割った結果、
{\bf mincolors} よりも小さい数字になった場合、{\bf gnuplot} は private カラー
マップを使おうとします。この場合、ウィンドウマネージャは、ポインタが
X11 ドライバのウィンドウに入るか出るかでカラーマップを退避 (swapping)
させる責任を持つことになります。

{\bf mincolors} のデフォルトの値は maxcolors / (num\_colormaps $>$ 1 ? 2 : 8)
で、num\_colormaps は gnuplot が現在使用しているカラーマップの数で、こ
れは、x11 のウィンドウが 1 つだけ開いているような通常の場合は 1 です。

複数の (異なる) visual クラスを、一つのスクリーン上でサポートするよう
なシステムもあります。このようなシステムでは、gnuplot に指定した
visual クラスを強制的に使わせる必要があります。例えば、デフォルトの
visual が 8bit PseudoColor だけれどもスクリーンは 24bit TrueColor を
サポートしていてむしろこちらの方を選択すべきであるような場合です。

X サーバの能力に関する情報はプログラム {\bf xdpyinfo} で取得できます。
visual 名は次のうちの一つが選択できます: StaticGray, GrayScale,
StaticColor, PseudoColor, TrueColor, DirectColor。その X サーバが要求
された visual 型の異なる複数の深度をサポートしている場合、{\bf gnuplot} は
最も大きい (最深の) 深度の visual クラスを選択します。要求された
visual クラスがデフォルトの visual とあっていて、その型の複数のクラス
がサポートされている場合は、デフォルトの visual が選択されます。

例: 8bit PseudoColor の visual 上では、{\bf gnuplot*maxcolors: 240}、及び
{\bf gnuplot*mincolors: 240} と指定することで強制的に private カラーマップ
を使うようにできます。


\begin{center}
\begin{tabular}{|cl|} \hline
&gnuplot*maxcolors:  整数\\
&gnuplot*mincolors:  整数\\
&gnuplot*visual:     visual 名\\
\hline
\end{tabular}
\end{center}

\subsubsection{X11 other\_resources}
\label{commands set terminal x11 other_resources}
\label{set terminal x11 other_resources}
\label{set term x11 other_resources}
\label{x11 other_resources}
\index{X resources}
デフォルトでは、現在の描画ウィンドウの内容は、ウィンドウの X イベント
に従って X11 クリップボードに送られます。'gnuplot*exportselection' の
リソースの値を 'off' か 'false' と設定することによりこれを無効にできま
す。

デフォルトでは、文字の回転は速くそれを行なう方法が使われますが、背景色
によってはその付近が汚れることがあります。これが起こる場合は、リソース
'gnuplot.fastrotate' を 'off' にしてみてください。


\begin{center}
\begin{tabular}{|cl|} \hline
&gnuplot*exportselection:  off\\
&gnuplot*fastrotate:  on\\
&gnuplot*ctrlq:  off\\
\hline
\end{tabular}
\end{center}
\subsection{Xlib}
\label{commands set terminal xlib}
\label{set terminal xlib}
\label{set term xlib}
\label{terminal xlib}
\label{term xlib}
\label{xlib}
\index{xlib}
{\bf xlib} ドライバは X11 Windows System をサポートしています。このドライ
バは gnuplot\_x11 への命令を生成しますが、{\bf set output '$<$filename$>$'} を
指定するとそれらをファイルに書き出します。{\bf set term x11} は、
{\bf set output {\tt"}$|$gnuplot\_x11 -noevents{\tt"}; set term xlib} と同値です。
{\bf xlib} には {\bf x11} と同じオプションの組を与えることができます。
\part{グラフィカルユーザインターフェース (Graphical User Interfaces)}
\label{graphical user interfaces}
\label{gui's}
\index{gui's}
{\bf gnuplot} のために色々なグラフィカルユーザインターフェースが書かれてき
ました。その win32 用の物はこの配布版に含まれています。

Bruce Ravel (ravel@phys.washington.edu) は、Gershon Elber による
gnuplot.el を元に、GNU emacs, XEmacs 用の gnuplot-mode を書きました。
gnuplot の CVS リポジトリにはそのコピーが含まれていますが、このパッケ
ージの最新版は以下にもあります。
\par\hskip2.7em\href{http://feff.phys.washington.edu/\~ravel/software/gnuplot-mode/}{\tt           http://feff.phys.washington.edu/\~{\ }ravel/software/gnuplot-mode/
}

Python, Tk/Tcl, および他のフロントエンドに関しては、以下のページのリンクをチェックしてみてください。
\par\hskip2.7em\href{http://gnuplot.sourceforge.net/links.html}{\tt          http://gnuplot.sourceforge.net/links.html
}


\part{バグ (Bugs)}
\label{bugs}
\index{bugs}
以前のものと現在のリリースに関して報告されたバグは SourceForge 上の公式配布サイトに置かれています。

バグリポートは e-mail で gnuplot-bugs メーリングリストへ送って下さい。
または、SourceForge の gnuplot ウェブサイトにその報告を投稿してくださ
い。その際、あなたが使用している gnuplot のバージョンの完全な情報、そ
して可能ならばそのバグを実証するテストスクリプトを送ってください。以下参照: {\bf seeking-assistance (p.~\pageref{seeking-assistance})\index{seeking-assistance}}。

以下のセクションは、gnuplot 4.4 のリリース時現在に知られている問題の一覧を示しています。これらには外部のサポートライブラリのバグも含まれてい
るので、gnuplot の修正とは関係なく改良されるかもしれません。

\section{Gnuplot の制限 (limitations)}
\label{bugs gnuplot}
\index{gamma}
\index{bessel}
\index{timefmt}
\index{nohidden3d}
\index{floating point exceptions}
浮動小数計算例外 (浮動小数値が大きすぎる (または小さすぎる) 場合、0 で
割算した場合など) は、ユーザ定義関数において時折発生します。特に、いく
つかのデモで、浮動小数の範囲を越える数値を生成することが起こるようです。
システムがそのような例外を無視する ({\bf gnuplot} はそのような点を定義でき
ないもの、と見なします) か、または {\bf gnuplot} の実行を中止するかは、コ
ンパイル時 (あるいは実行時) の環境によります。

ガンマ関数とベッセル関数、erf 関数は複素数引数に対しては動作しません。

すべての x11 描画ウィンドウに対して、一度に 1 つのカラーパレットのみが
有効です。これは、異なるパレットを使用する描画を含んだ multiplot では
x11 上では正しく表示されない、ということを意味します。

{\tt"}時刻{\tt"} として指定された座標は 24 時で折り返し、精度の最小単位は 1 秒で
す。これは、特に地理上の座標に基づく時刻を使っている場合には制限になり
ます。

誤差指示線 (errorbars) は、極座標/球面座標描画モードでは使えません。

{\bf nohidden3d} は、全体的な設定である {\bf set hidden3d} を、個々の描画に対
して免除するためのオプションですが、これは媒介変数の曲線 (parametric)
に対しては機能しません。

\section{外部ライブラリ (External libraries)}
\label{bugs external_libraries}
\index{libgd}
\index{svgalib}
\index{locale}
\index{internationalization}
\index{pdf}
外部ライブラリ GD (PNG/JPEG/GIF ドライバで使用):
バージョン 2.0.33 までの libgd には、Adobe の Symbol フォントの文字の
マッピングに関するいくつかのバグがあります。また、アンチエイリアスされ
た線分がキャンバスの上の角と交わる場合に、ライブラリがセグメンテーショ
ンフォルトを引き起すこともあります。

外部ライブラリ PDFlib (PDF ドライバで使用):
gnuplot は libpdf のバージョン 4, 5, 6 のいずれかをリンクできます。し
かし、これらはバージョンによってパイプされた入出力の処理が違っています
ので、パイプを使って PDF を出力する gnuplot スクリプトは、PDFlib のあ
るバージョンでだけしかちゃんと動かないかもしれません。

外部ライブラリ svgalib (linux, vgadl ドライバで使用):
これは gnuplot が root に setuid (嫌!) されることを要求しますし、ビデ
オカードや X11 で使用されるグラフィックドライバに特有の多くのバグがあ
ります。

国際化 (ロケールの設定):
gnuplot は、入出力の数、時刻、日付文字列のロケールに依存した書式の制御
を、C ランタイムライブラリに含まれる setlocale() を用いて行うので、ロ
ケールの有効性や、ロケール機能のサポートのレベル (例えば数字の 3 桁毎
の区切り文字など) などは、あなたのコンピュータが提供する国際化のサポー
トの度合いに依存します。
\part{Index}
\printindex
\end{document}
