\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename gnuplot.info
@settitle Gnuplot: An Interactive Plotting Program
@setchapternewpage odd
@documentencoding UTF-8
@c %**end of header
@c define the command and options indices
@defindex cm
@defindex op
@defindex tm
@dircategory Math
@direntry
* GNUPLOT: (gnuplot). An Interactive Plotting Program
@end direntry
@ifnottex
@node Top, Gnuplot, (dir), (dir)
@top Master Menu
@end ifnottex
@example
GNUPLOT
An Interactive Plotting Program
Thomas Williams & Colin Kelley
Version 5.0 organized by
Ethan A Merritt with help from many others
Copyright (C) 1986 - 1993, 1998, 2004 Thomas Williams, Colin Kelley
Copyright (C) 2004 - 2012 various authors
Mailing list for comments: gnuplot-info@@lists.sourceforge.net
Mailing list for bug reports: gnuplot-bugs@@lists.sourceforge.net
This manual was originally prepared by Dick Crawford
Version 5.0 - March 2014
Major contributors (alphabetic order):
@end example
@menu
* Gnuplot::
* 描画スタイル_(Plotting_styles)::
* コマンド_(Commands)::
* 出力形式_(Terminal)::
* Concept_Index::
* Command_Index::
* Options_Index::
* Function_Index::
* Terminal_Index::
@end menu
@node Gnuplot, 描画スタイル_(Plotting_styles), Top, Top
@chapter Gnuplot
@cindex gnuplot
@c ^
An Interactive Plotting Program
@c ^
Thomas Williams & Colin Kelley
@c ^
Version 6 organized by Ethan A Merritt
@c ^
Major contributors (alphabetic order):
@c ^
@c ^ Hans-Bernhard Broeker, John Campbell,
@c ^ Robert Cunningham, David Denholm,
@c ^ Gershon Elber, Roger Fearick,
@c ^ Carsten Grammes, Lucas Hart, Lars Hecking,
@c ^ Péter Juhász, Thomas Koenig, David Kotz,
@c ^ Ed Kubaitis, Russell Lang, Timothée Lecomte,
@c ^ Alexander Lehmann, Alexander Mai, Bastian Märkisch,
@c ^ Tatsuro Matsuoka, Ethan A Merritt, Petr Mikulík,
@c ^ Hiroki Motoyoshi, Carsten Steger, Shigeharu Takeno,
@c ^ Tom Tkacik, Jos Van der Woude,
@c ^ James R. Van Zandt, Alex Woo, Johannes Zellner
@c ^
@c ^
Copyright (C) 1986 - 1993, 1998 - 2004 Thomas Williams, Colin Kelley
@c ^ Copyright (C) 2004 - 2023 various authors
@c ^
Mailing list for comments: gnuplot-info@@lists.sourceforge.net
@c ^ Gnuplot home page
@c ^ Issue trackers:
@uref{https://sourceforge.net/p/gnuplot/bugs,bugs }
@uref{https://sourceforge.net/p/gnuplot/feature-requests,feature requests }
@c ^
This manual was originally prepared by Dick Crawford
@c ^
@menu
* 著作権_(Copyright)::
* はじめに_(Introduction)::
* 探し出す手助け/バグ_(Seeking-assistance_/_Bugs)::
* バージョン_6_での新しい機能_(New_features_in_version_6)::
* バージョン_5_と_6_との違い_(2_Differences_between_versions_5_and_6)::
* デモ、ネット上のサンプル_(Demos_and_Online_Examples)::
* バッチ/対話型操作_(Batch/Interactive)::
* キャンバスサイズ_(Canvas_size)::
* コマンドライン編集_(Command-line-editing)::
* コメント_(Comments)::
* 座標系_(Coordinates)::
* 文字列データ_(Datastrings)::
* 拡張文字列処理モード_(Enhanced_text_mode)::
* 環境変数_(Environment)::
* 式_(Expressions)::
* フォント::
* ヘルプの用語解説_(Glossary)::
* インラインデータとデータブロック_(inline_data_and_datablocks)::
* 繰り返し_(iteration)::
* 線種、色、スタイル_(linetypes)::
* レイヤー_(layers)::
* マウス入力_(mouse_input)::
* 残留_(Persist)::
* 描画_(Plotting)::
* プラグイン_(Plugins)::
* Scope_of_variables::
* 初期化_(Startup_(initialization))::
* 文字列定数、文字列変数、文字列関数_(Strings)::
* 置換とコマンドラインマクロ_(Substitution)::
* 区切りやカッコの使い方_(Syntax)::
* 時間/日付データ_(Time/Date)::
* ウォッチポイント_(Watchpoints)_::
@end menu
@node 著作権_(Copyright), はじめに_(Introduction), Gnuplot, Gnuplot
@section 著作権 (Copyright)
@cindex copyright
@cindex license
@example
Copyright (C) 1986 - 1993, 1998, 2004, 2007 Thomas Williams, Colin Kelley
Copyright (C) 2004-2023 various authors
@end example
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
@example
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 example
Permission to distribute the released version of the source code along
with corresponding source modifications in the form of a patch file is
granted with same provisions 2 through 4 for binary distributions.
This software is provided "as is" without express or implied warranty
to the extent permitted by applicable law.
@example
AUTHORS
Original Software:
Thomas Williams, Colin Kelley.
Gnuplot 2.0 additions:
Russell Lang, Dave Kotz, John Campbell.
Gnuplot 3.0 additions:
Gershon Elber and many others.
Gnuplot 4.0 and subsequent releases:
See list of contributors at head of this document.
@end example
(以下おおまかな訳; 訳は正しくないかも知れませんので詳しくは上記の原文
を当たってください。訳者は責任を持ちません。)
@example
Copyright (C) 1986 - 1993, 1998, 2004, 2007 Thomas Williams, Colin Kelley
Copyright (C) 2004-2023 多くの著者
@end example
このソフトウェアとその付属文書の使用、複製、配布の許可は、上記の著作権
(copyright) 表示が、全ての複製物に書かれていること、および著作権表示と
この許諾文の両方がその支援文書に書かれていることを条件とした上で、この
文書により保証されます。
このソフトウェアの修正も認められています。しかし、修正を含む全ソースコ
ードの配布の権利は認められません。修正はリリース版に対するパッチの形で
配布しなければなりません。修正されたソースをコンパイルして作られたバイ
ナリの配布は、以下の条件の元で認められます:
@example
1. リリース版からのソースの修正部分を、パッチの形でバイナリと共に配
布すること
2. ベースとなるリリース版と区別するために、そのバージョン番号に特別
なバージョン指定子を付加すること
3. その修正版のサポート用に、あなたの名前とアクセス可能なアドレスと
を提供すること
4. ベースとなるソフトウェアの使用に関しては、我々の連絡情報を保持し
続けること
@end example
リリース版のソースコードを、パッチの形でのソースの修正と一緒に配布する
ことは、バイナリ配布に関する条項 2 から 4 までの条件の元で許されます。
このソフトウェアは "あるがまま" 提供され、適用可能な法律で許められる範
囲の保証を表明あるいは暗示していはいません。
@example
著者
オリジナルソフトウェア:
Thomas Williams, Colin Kelley.
Gnuplot 2.0 追加:
Russell Lang, Dave Kotz, John Campbell.
Gnuplot 3.0 追加:
Gershon Elber とその他の人々。
Gnuplot 4.0 およびそれ以降のリリース:
この文書の先頭の寄与者 (contributors) の一覧参照。
@end example
@node はじめに_(Introduction), 探し出す手助け/バグ_(Seeking-assistance_/_Bugs), 著作権_(Copyright), Gnuplot
@section はじめに (Introduction)
@cindex introduction
@c ?
`gnuplot` は、ポータブルなコマンド入力方式のグラフユーティリティで、
Linux, OS/2, MS Windows, macOS, VMS, その他多くのプラットホーム上で動
作します。ソースコードには著作権がありますが、無料で配布されています
(すなわち、それに対価を支払う必要はありません)。元は、科学者や学生が数
学関数やデータなどを対話的に表示できるよう作られたのですが、現在までに
例えば Web スクリプトなど、多くの非対話型の利用もサポートするように成
長しています。これは、例えば Octave のようにサードパーティのアプリケー
ションの描画エンジンとしても使われています。gnuplot は、1986 よりサポ
ートと活発な開発が行われています。
gnuplot は、2 次元、または 3 次元の多くの種類のグラフを生成できます。
います: 折線グラフ、点グラフ、棒グラフ、等高線、ベクトル場描画、画像の
取り込み、曲面、そしてそれらに関連するさまざまな文字列等。そしてさらに
いくつかの特別なグラフ、例えば温度分布図 (heatmap)、蜘蛛の巣グラフ (レ
ーダーチャート, spiderplot)、極射影 (polar projection)、ヒストグラム
(histograms)、箱ひげ図 (boxplot)、ビースウォームグラフ (bee swarm)、
非線形軸などもサポートしています。
gnuplot は多くの異なる出力をサポートしています: 対話型スクリーン出力形
式 (マウスやホットキー入力も可能)、ペンプロッタや現在のプリンタへの直
接出力、または多くのファイル形式への出力 (eps, emf, fig, jpeg, LaTeX,
pdf, png, postscript, ...)。gnuplot は、容易に新しい出力形式を追加する
よう拡張することができます。最近では例えば webp アニメーションがサポー
トされました。svg や HTML5 canvas 出力形式を利用すれば、グラフを Web
ページ内にマウス利用可能な形で埋め込んだ出力を生成することもできます。
`gnuplot` のコマンド言語は大文字小文字を区別します。すなわち、小文字で
書かれたコマンドや関数名は、それらを大文字で書いたものとは同じではあり
ません。いずれのコマンドも、あいまいさの無い限りにおいて省略することが
できます。1 行中にはセミコロン (;) で区切って複数のコマンドを書くこと
ができます。文字列は単一引用符、あるいは二重引用符のどちらかで書き始め
ますが、両者には微妙な違いがあります (詳細は、以下参照: `syntax`)。例:
@example
set title "My First Plot"; plot 'data'; print "all done!"
@end example
コマンドは、複数行にまたがることができます。その場合は、最終行以外の
全ての行の行末にバックスラッシュ (\) を書く必要があります。バックスラ
ッシュは必ず各行 *最後* の文字でなくてはなりません。その結果としてバッ
クスラッシュと、それに続く改行文字が存在しなかったかのように扱われます。
つまり、改行文字がスペースの役をすることもありませんし、改行によってコ
メントが終了することもありません。ですから複数行にまたがる行の先頭をコ
メントアウトすると、そのコマンド全体がコメントアウトされることになりま
す (以下参照: `comments`)。なお注意しますが、もし、複数行のコマンドの
どこかでエラーが起きたとき、パーサはその場所を正確には指示することがで
きませんし、また、正しい行に指示する必要もないでしょう。
このドキュメントにおいて、中括弧 (@{@}) は省略可能な引数を表すものとし、
縦棒 (|) は、互いに排他的な引数を区切るものとします。`gnuplot` のキー
ワードや @ref{help} における項目名は、逆引用符 (`)、または可能な場合には
`boldface` (太字) で表します。角括弧 (<>) は、それに対応するものに置き
換えられるべきものを表します。多くの場合、オプションの引数には、それが
省略されるとデフォルトの値が使用されます。しかし、これらの場合、必ずし
も角括弧が中括弧で囲まれて書かれているわけではありません。
ある項目についてのヘルプが必要なときには、@ref{help} に続けてその項目名を
入力して下さい。または単に `help ?` でもヘルプの項目のメニューが現われ
ます。
大量のグラフサンプルが、以下の Web ページにあります。
@uref{http://www.gnuplot.info/demo/,http://www.gnuplot.info/demo/
}
コマンドラインから起動するときは、以下の書式が使えます。
@example
gnuplot @{OPTIONS@} file1 file2 ...
@end example
ここで file1, file2 等は、@ref{local} コマンドで取り込むのと同等の入力ファ
イル (スクリプトファイル) です。
gnuplot に与えるオプションは、コマンド行のどこに置いても構いません。フ
ァイルは指定した順に実行され、同様に -e オプションで任意のコマンドを与
えることもできます。例:
@example
gnuplot file1.in -e "reset" file2.in
@end example
特別なファイル名 "-" は、標準入力から読ませるのに使います。`gnuplot`
は最後のファイルを処理し終わると終了します。読み込ませるファイルを一つ
も指定しない場合は、`gnuplot` は標準入力からの対話入力を取ります。詳細
は、以下参照: `batch/interactive`。
コマンドラインオプションの詳細は以下参照: `command-line-options`。また
は以下を実行してください。
@example
gnuplot --help
@end example
対話型描画ウィンドウでの作業中は、'h' を打つとホットキー (`hotkeys`)
とマウス機能 (`mousing`) に関するヘルプを見ることができます。
@node 探し出す手助け/バグ_(Seeking-assistance_/_Bugs), バージョン_6_での新しい機能_(New_features_in_version_6), はじめに_(Introduction), Gnuplot
@section 探し出す手助け/バグ (Seeking-assistance / Bugs)
@cindex help-desk
@cindex faq
@cindex FAQ
@cindex bugs
@cindex seeking-assistance
公式の gnuplot ホームページは以下にあります。
@uref{http://www.gnuplot.info,http://www.gnuplot.info
}
助けを求める前に、ファイル FAQ.pdf か、または上の Web サイトの
@uref{http://www.gnuplot.info/faq/,FAQ (度々聞かれる質問; Frequently Asked Questions) の一覧
}
をチェックしてください。
他に、(バグ以外の) 特定のグラフ描画の問題に関する助言は以下でも得られ
ます。
@example
https://stackoverflow.com/questions/tagged/gnuplot
@end example
バグの報告と、機能のリクエストは、以下のトラッキングシステムにあげてく
ださい。
@example
https://sourceforge.net/p/gnuplot/_list/tickets
@end example
ただし、あなたが報告しようとしているバグが、より新しい版で既に修正され
ていないか、以前の報告をチェックしてください。
バグの報告や質問を投稿するときは、あなたが使用している gnuplot のバー
ジョン、出力形式 (terminal)、オペレーティングシステム、といった情報を
すべて入れてください。問題を再現する自己完結型の短いスクリプトを提示す
るとなお良いでしょう。
gnuplot メーリングリストへの投稿の方法に関しては、gnuplot の開発 Web
サイト
@uref{http://sourceforge.net/projects/gnuplot,http://sourceforge.net/projects/gnuplot
}
を参照してください。
gnuplot メーリングリストにメールを書く前に、最初にそのメーリングリスト
に参加する必要があることに注意してください。これは、スパムの量を減らす
ために必要です。
メーリングリストメンバーへのメールアドレス:
@example
gnuplot-info@@lists.sourceforge.net
@end example
開発版に関するメーリングリスト:
@example
gnuplot-beta@@lists.sourceforge.net
@end example
@node バージョン_6_での新しい機能_(New_features_in_version_6), バージョン_5_と_6_との違い_(2_Differences_between_versions_5_and_6), 探し出す手助け/バグ_(Seeking-assistance_/_Bugs), Gnuplot
@section バージョン 6 での新しい機能 (New features in version 6)
@c ?new version_6
@cindex new
@cindex version
@opindex version
バージョン 6 は、遡ること 1986 年からの gnuplot 開発での最新メジャーリ
リースです。それは、メジャーバージョン 5 (2015)、そしてその後のマイナ
ーリリース 5.2 (2017), 5.4 (2020) に続くものです。開発は、SouceForge
上の git リポジトリプロジェクト内の、正式版とは別なブランチで続けられ
ています。
このドキュメントに記述されている機能の中には、gnuplot をソースからコン
パイルする際にそれを選択して設定している場合だけ使えるものがあります。
あなたが実行している特定の gnuplot が、コンパイル時にどのようなオプシ
ョンを設定して作られたかを知るには、`show version long` とタイプしてく
ださい。
@menu
* 関数ブロックと局所変数_(Function_blocks_and_scoped_variables)::
* 特殊関数と複素数値関数_(Special_and_complex-valued_functions)::
* 新しい描画スタイル_(New_plot_styles)::
* 凸包とマスクと平滑化_(Hulls::
* 名前付きパレット_(Named_palettes)::
* 新しいデータ形式_(New_data_formats)::
* 新しい組み込み関数と配列操作_(New_built-in_functions_and_array_operations)::
* プログラムの流れの制御_(Program_control_flow)::
* 多重描画モード_(Multiplots)::
* 新しい出力形式とオプション_(New_terminals_and_terminal_options)::
* ウォッチポイント_(Watchpoints)::
* 週曜日のサポート_(Week-date_time_support)::
* その他の新しい機能::
* バージョン_5_で導入された機能の要約_(3_Brief_summary_of_features_introduced_in_version_5)::
@end menu
@node 関数ブロックと局所変数_(Function_blocks_and_scoped_variables), 特殊関数と複素数値関数_(Special_and_complex-valued_functions), バージョン_6_での新しい機能_(New_features_in_version_6), バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection 関数ブロックと局所変数 (Function blocks and scoped variables)
@c ?new function blocks
この版の gnuplot では、標準的な gnuplot コマンドのブロックを呼び出して
関数として使える機能を導入しています。関数ブロックは、0 から 9 個の引
数を使えて、一つの値を返します。関数ブロックは、計算した新しい値を変数
に割り当てたり、異なる関数や演算子を結合したり、与えられたデータに対す
る繰り返しの作業を行ったりするのに使うことができます。
この仕組みには、3 つの要素があります。
以下参照: @ref{local}, `scope`, `function blocks`, @ref{return}。
@itemize @bullet
@item
修飾子 @ref{local} は、変数や配列のオプション宣言で、そのスコープは、そ
れが書かれているプログラム単位の実行中のみに制限されます。単位とは、
現在は、@ref{load} や @ref{call} 文の実行単位、関数ブロック評価、そして @ref{if},
`else`, `do for`, `while` に続く中かっこで囲まれたコードブロック単位
です。局所 (local) 変数の名前が大域 (global) 変数の名前とぶつかる場
合は、その局所スコープから抜けるまでは大域変数は隠されます。
@item
コマンド `function` は、gnuplot コマンドからなる名前付き関数ブロック
(実際はある文字列の配列) を宣言します。関数ブロックを呼び出すと、そ
のコマンドが、ブロックの最後になるか、または @ref{return} コマンドに当た
るまで、順次実行されます。
@item
コマンド `return ` は、関数ブロックの実行を終了します。
式 の評価の結果が、その関数の値として返されます。関数ブ
ロックの外では、どこでも @ref{return} は @ref{exit} と同様に動作します。
@end itemize
この仕組みを使って、単純な一行の関数定義 `f(x) = ...` よりもっと複雑で
自明ではない関数を定義し、描画する例については、
@uref{http://www.gnuplot.info/demo_6.0/function_block.html,`function_block.dem`
}
を参照してください。
@node 特殊関数と複素数値関数_(Special_and_complex-valued_functions), 新しい描画スタイル_(New_plot_styles), 関数ブロックと局所変数_(Function_blocks_and_scoped_variables), バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection 特殊関数と複素数値関数 (Special and complex-valued functions)
@c ?new math
gnuplot バージョン 6 は、膨大な複素数値関数群と、以前のバージョンにあ
った関数の改良版をいくつか提供します。
@itemize @bullet
@item
新規: 複素変数、複素数値のリーマンゼータ (ζ) 関数。以下参照: @ref{zeta}。
@item
(正規化) 下方不完全ガンマ関数の定義域と精度の改良。複素引数が可能に。
以下参照: `igamma`。
@item
上方不完全ガンマ関数を新規追加 (実引数のみ)。
以下参照: @ref{uigamma}。
@item
(正規化) 不完全ベータ関数の定義域と精度の改良。
以下参照: `ibeta`。
@item
逆 (正規化) 不完全ガンマ関数を新しく追加。
以下参照: `invigamma`。
@item
逆 (正規化) 不完全ベータ関数を新しく追加。
以下参照: `invibeta`。
@item
多価関数 W_k(z) の第 k 分岐を返す複素関数 LambertW(z,k) を新しく追加。
@c ^
古い lambertw(x) は real(LambertW( real(z), 0 )) であることに注意。
以下参照: @ref{LambertW}。
@item
複素関数 lnGamma(z) を新しく追加。
既にある lgamma(x) は real(lnGamma(real(z)) であることに注意。
以下参照: @ref{lnGamma}。
@item
z の複素共役を返す複素関数 conj(z)
@item
(第 1) シンクロトロン関数 F(x)。以下参照: `SynchrotronF`。
@item
acosh(z) の定義域を負の実数軸を覆うように拡張。
@item
asin(z) asinh(z) の複素数引数に対する精度の改良。
@item
便利なように I = sqrt(-1) = @{0,1@} を定義済み変数に。
@c ^
gnuplot は @{a,b@} を正しい複素数定数と見なしてくれませんが、しかし
(a + b*I) なら正しい複素数数式として受けつけてくれるので有用です。
@end itemize
ビルド時に適切な外部ライブラリがあれば、さらにいくつかの特殊関数をサポ
ートします。以下参照: `special_functions`。
@itemize @bullet
@item
ν 次 (実数) の、引数 z に対する複素ベッセル関数 Iν(z), Jν(z),
Kν(z), Yν(z)。以下参照: `BesselK`。
@item
ν 次 (実数) の、引数 z に対する複素ハンケル関数 H1ν(z), H2ν(z)。
以下参照: `BesselH1`。
@item
複素エアリー関数 Ai(z), Bi(z)。
@item
n 次の複素指数積分。以下参照: `expint`。
@item
フレネル積分 C(x), S(x)。以下参照: `FresnelC`。
@item
Voigt プロファイルの半値全幅を返す関数 `VP_fwhm(sigma,gamma)`。以下
参照: `VP`, `VP_fwhm`。
@end itemize
@node 新しい描画スタイル_(New_plot_styles), 凸包とマスクと平滑化_(Hulls, 特殊関数と複素数値関数_(Special_and_complex-valued_functions), バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection 新しい描画スタイル (New plot styles)
@c ?new styles
@itemize @bullet
@item
描画スタイル @ref{surface} は、2 次元極座標で動作し、平面を色塗りし
た格子表現のグラフを生成します 色は入力点の任意の集合のからの寄与に
よる重み付きよって色付けされます。これは、3 次元格子曲面を作る
`dgrid3d`とスタイル `with pm3d` の類似品です。
以下参照: `set polar grid`, `polar heatmap`。
@item
新しい 2 次元描画スタイル `with sectors` は、完全な極座標格子面を生
成する別の仕組みです。これは概念上の極座標格子内に、各入力データ点毎
に丸い扇片をひとつ生成します。極座標モードでの @ref{surface} とは違
い、これは極座標グラフでも直交座標グラフでも使用できます。
@item
描画スタイル `with lines` には、現在フィルタオプション `sharpen` が
あります。このフィルタは関数グラフでスパイクを検出しますが、そのピー
クは関数から標本として取った 2 つの x 座標の間にあるため、出力では不
完全に切り取られてしまいます。このフィルタは、そのようなピーク点の場
所に新しい標本点を追加します。以下参照: `filters`。
@item
これは厳密には新しい描画スタイルではありませんが、フィルタ concave
hull と領域塗り潰しのパスに沿った平滑化を組み合わせることで、「膨ら
んだ領域」グラフの作成が可能になります。これは例えば複数のデータのか
たまりが重なっているものの広さを示します。以下参照: `concavehull`。
@item
3 次元描画スタイル `with pm3d` でオプション修飾子 `zclip [zmin:zmax]`
が使えて、これは曲面全体のひとつの断面のみを選択します。クリッピング
の境界値を増加させて連続描画を行うことで、3 次元では断面切り出しアニ
メーションを見るのに使えますし、間を塗り潰した等高線図を作成するのに
使えます。これは、新しい描画スタイル @ref{contourfill} で自動化でき、
それは 2 次元射影で特に有用です。以下参照: @ref{contourfill}。
@end itemize
D polargrid 4
DB
D windrose 1
D sectors 4
DB
D sharpen 1
D iris 2
DB
D contourfill 4
@node 凸包とマスクと平滑化_(Hulls, 名前付きパレット_(Named_palettes), 新しい描画スタイル_(New_plot_styles), バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection 凸包とマスクと平滑化 (Hulls, masks, and smoothing)
@c ?new hulls
@itemize @bullet
@item
2 次元の点の集合を、その境界の多角形で置き換える新しいフィルタ
`convexhull`。その境界の曲線を滑らかにするには、
"convexhull smooth path with filledcurves" を使って塗り潰し領域とし
て描画することでできます。以下参照: `convexhull`。
@item
フィルタ `concavehull` は、凸とは限らない、凹の度合を制御する特性長
パラメータで決定されるχ-形状の、多角形のデータ境界を生成します。こ
れはデータ点の回りの本質的なしみを描画します。以下参照:
`concavehull`。
@item
pm3d 曲面や image 描画の選択した一部分のみを表示するようマスクするの
に、凸包 (convex hull) や他の多角形 (polygon) を使用できます。新しい
描画スタイル `with mask` (マスクを定義) や、キーワード `mask` (その
後の描画要素にマスクを適用する) を参照してください。
@item
閉曲線や x に関して単調ではない 2 次元曲線向きの、パスに沿った 3 次
元スプライン平滑化。以下参照: `smooth path`。これは、凸包やマスクの
平滑化も可能にします。
@item
3 次元曲線の 3 次スプライン平滑化。以下参照: `splot smooth csplines`。
@item
平滑化オプションは `with filledcurves @{above|below|between@}` での描
画にも適用します。
@item
周期的データの平滑化用の新しいキーワード `period`。以下参照:
`smooth kdensity`。
@end itemize
D convex_hull 2
D mask_pm3d 3
D smooth_path 2
@node 名前付きパレット_(Named_palettes), 新しいデータ形式_(New_data_formats), 凸包とマスクと平滑化_(Hulls, バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection 名前付きパレット (Named palettes)
@c ?new colormaps
@itemize @bullet
@item
現在のパレットをその後の利用のため名前付きカラーマップに保存できます。
以下参照: @ref{colormap}。
@item
pm3d と image plot で以前保存したパレットを名前で指定できます。
これにより、一つの plot コマンドで複数のパレットを使用できます。
以下参照: `colorspec palette`。
@item
名前付きパレットカラーマップは、32-bit ARGB 色値の配列として操作でき
ます。これにより、アルファチャネル値を追加したり、コマンド
`set palette` では簡単に指定できない他の修正を可能にします。
@item
定義済みの新しい色機構 @ref{viridis}。
@item
ファイルやデータブロックから読み込んだパレット (`set palette file`)
は、実数の色成分か、24bit 形式の RGB 値のいずれかで指定できます。
@end itemize
D named_palettes 4
D viridis 1
@node 新しいデータ形式_(New_data_formats), 新しい組み込み関数と配列操作_(New_built-in_functions_and_array_operations), 名前付きパレット_(Named_palettes), バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection 新しいデータ形式 (New data formats)
@c ?new data_formats
@itemize @bullet
@item
オプション `sparse matrix=(cols,rows)` は、`plot` と `splot` に、個
々のピクセル値を任意の順番で読みだすことができるような一様なピクセル
格子を生成させます。これは、不完全なデータから温度分布図 (heatmap)
を描画するような場合に有用です。以下参照: `sparse`。
@item
非一様な matrix データの入力中、現在は column(0) はその matrix 要素
の線形順序を返します。すなわち、MxN matrix の A の要素 A[i,j] に対し
ては、column(0)/M が行番号 i に、column(0)%M が列番号 j になります。
@end itemize
@node 新しい組み込み関数と配列操作_(New_built-in_functions_and_array_operations), プログラムの流れの制御_(Program_control_flow), 新しいデータ形式_(New_data_formats), バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection 新しい組み込み関数と配列操作 (New built-in functions and array operations)
@c ?new built-in functions
@itemize @bullet
@item
cbrange 内の z に割当てる現在の RGB パレット色を返す関数 `palette(z)`
@item
色名からその色の 32bit ARGB 値を返す関数 `rgbcolor("name")`
@item
要素 Array[i] が element に等しい最初の添字 `i` を返す関数
`index( Array, element )`。以下参照: `arrays`。
@item
配列を引数とするユーザ定義関数の許可。
@c ^
例: dot(A,B) = sum [i=1:|A|] A[i]*B[i]
@item
配列名に範囲を指定することで部分配列を実現。
Array[n] は単一の要素、Array[n:n+5] は元の配列の 6 要素を持つ部分配
列。以下参照: `arrays`, `slice`。
@item
`split("string", "separator")` は、文字列 string に含まれるフィール
ド要素を、文字列の配列に詰めて返します。以下参照: @ref{split}。
@item
`join(array, "separator")` は、@ref{split} の逆で、文字列配列の要素を、
フィールド区切り文字 separator を間に挟んで結合して一つの文字列にし
たものを返します。以下参照: @ref{join}。
@item
`stats ` はテスト可能な値を出力。以下参照:
@ref{test}。
@item
`stats $vgrid` で格子内のボクセルの最小/最大/平均/標準偏差を調査
@end itemize
@node プログラムの流れの制御_(Program_control_flow), 多重描画モード_(Multiplots), 新しい組み込み関数と配列操作_(New_built-in_functions_and_array_operations), バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection プログラムの流れの制御 (Program control flow)
@c ?control flow
@itemize @bullet
@item
新しい構文 `if ... else if ... else ...`
@item
gnuplot の設定選択で、XDG ベースのディレクトリ配置をサポートしていま
す。gnuplot は、$XDG_CONFIG_HOME/gnuplot/gnuplotrc から初期コマンド
を読み込みます。対話コマンド履歴は、$XDG_STATE_HOME/gnuplot_history
に保存します。これらのファイルがない場合は、gnuplot の以前のバージョ
ンと同様、$HOME/.gnuplot と $HOME/.gnuplot_history をそれぞれ使用し
ます。
@item
@ref{warnings} は、stderr への警告メッセージ出力を抑制します。
@item
`warn "message"` は、ファイル名、行番号と "message" を stderr に出力
します。
@item
コマンド "fit" に対する例外処理。fit エラーが起きた場合でも、制御を
常に入力の次の行に返します。エラーが起きた場合は、返ったときに
FIT_ERROR がゼロでない値になります。これは、良くないフィッティングか
ら復帰するスクリプトを可能にします。以下参照: `fit error_recovery`。
@end itemize
@node 多重描画モード_(Multiplots), 新しい出力形式とオプション_(New_terminals_and_terminal_options), プログラムの流れの制御_(Program_control_flow), バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection 多重描画モード (Multiplots)
@c ?new multiplots
現在は、多重描画グラフ (multiplot) の最初の生成時に実行したコマンドを、
データブロック $GPVAL_LAST_MULTIPLOT に保存します。そしてこれは、
新しいコマンド @ref{remultiplot} で再実行できます。保存したコマンドのうち
再実行に問題があるコマンドは、再実行はされません。再生成した多重描画グ
ラフは、その間にグラフの設定 (軸の範囲や対数軸設定等) が変更されていれ
ば、元のものと完全に一致するとは限りません。
以下のコマンド列は、元のグラフの状態と multiplot コマンドの両方をスク
リプトファイルに保存し、後で再読み込みできるようにします。
@example
save "my_multiplot.gp"
set multiplot
... (グラフ要素を生成するいくつかのコマンドが並ぶ) ...
unset multiplot
set print "my_multiplot.gp" append
print $GPVAL_LAST_MULTIPLOT
unset print
@end example
@itemize @bullet
@item
コマンド @ref{replot} は、直近の plot コマンドが完了済みの multiplot の
一部分であるかどうかをチェックします。もしそうなら、単一の plot コマ
ンドを実行する代わりに @ref{remultiplot} を実行します。
@item
試験段階: 表示されている multiplot グラフ上でのウィンドウイベント、
マウスイベント、またはホットキーが生成する replot の要求は、適切な場
合は @ref{remultiplot} を呼び出します。これは、現在はスクリーン上に表示
中の multiplot グラフを、例えばリサイズ可能であることを意味します。
しかし、マウス座標の読み出し、拡大/視点移動の操作は、以前の gnuplot
の版でそうだったように、最後の plot 要素に対する軸設定にのみ基づいて
行われます。$GPVAL_LAST_MULTIPLOT に保存されるコマンドが、各 plot 要
素に対する適切なグラフ設定を再生成するには不十分である可能性があるた
め、multiplot でのマウス操作は、あなたが望むようなものにはならないか
もしれません。これは今後改善されるでしょう。
@end itemize
@node 新しい出力形式とオプション_(New_terminals_and_terminal_options), ウォッチポイント_(Watchpoints), 多重描画モード_(Multiplots), バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection 新しい出力形式とオプション (New terminals and terminal options)
@c ?new terminals
@itemize @bullet
@item
新しい出力形式 `kittygd` と `kittycairo` は、kitty プロトコルをサポ
ートする端末エミュレータで、端末ウィンドウ上でのグラフィックを提供し
ます。kitty は、sixel グラフィックとは別の選択肢で、24 ビット RGB フ
ルカラーを提供します。以下参照: `kittycairo`。
@item
新しい出力形式 `block` は、疑似グラフィックのテキストモード用のもの
で、`dumb` や `caca` 出力形式に対して改良された解像度を提供するため
に Unicode ブロック、あるいは点字 (Braille 文字) を使用します。
@item
新しい出力形式 `webp` は、webp エンコーディングを用いて、単一フレー
ムか、アニメーション列を生成します。各フレームは pngcairo で生成し、
その後 libwebp と libwebpmux による WebPAnimEncoder API を通してエン
コードを行います。
@item
`dumb`, `sixel`, `kitty`, `block` 出力形式のように、文字列出力とグラ
フィック表示を同じウィンドウで行う出力形式では、現在はコマンド
`pause mouse` の間はキーボード入力に反応します。その間、それらの出力
形式では、マウス操作が可能な出力形式が行うのと同じ方法でキー入力を解
釈します。以下参照: `pseudo-mousing`。
例えば、左/右/上/下矢印キーは、3 次元グラフでは視方向を変え、2 次元
グラフでは視点移動/拡大の増分ステップを実行します。
@end itemize
@node ウォッチポイント_(Watchpoints), 週曜日のサポート_(Week-date_time_support), 新しい出力形式とオプション_(New_terminals_and_terminal_options), バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection ウォッチポイント (Watchpoints)
@c ?new watchpoints
ウォッチポイントは、グラフ内の個々の曲線に関連する対象値です。曲線が描
画されるとき、各線分要素が、その両端点の間にウォッチポイント座標 (x, y
か z) か関数 f(x,y) の対象値を含んでいるかを確認します。それが見つかっ
た場合、そのマッチする点の座標 [x,y] を後で使用するために保存します。
以下参照: @ref{watchpoints}。
@itemize @bullet
@item
2 つの曲線の交点を見つけること
@item
関数のゼロ点を見つけること
@item
従属変数 (y か z) か、関数 f(x,y) が指定値と一致する場所を見つけ表示
すること
@item
マウスを使って複数のグラフに沿った値を同時に追跡すること
@end itemize
D watchpoints 2
@node 週曜日のサポート_(Week-date_time_support), その他の新しい機能, ウォッチポイント_(Watchpoints), バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection 週曜日のサポート (Week-date time support)
@c ?new week-date time
2020 年に始まった新型コロナウィルス (Covid-19) の騒動では、疫学的デー
タのグラフ化の関心が高まりましたが、そこでは報告の慣習として、よく「週
曜日」を使った表が示されていました。この慣習に対する gnuplot のサポー
トの不足は改善し、週曜日もサポートするように拡張してあります。
@itemize @bullet
@item
日時書式 %W は、ISO 8601 の週曜日規則に従うようになりました。
@item
日時書式 %U は、CDC/MMWR の週曜日規則に従うようになりました。
@item
新しい関数 `tm_week(time, std)` は、ISO か CDC 規則でのその年の週番
号を返します。
@item
新しい関数 `weekdate_iso(year, week, day)` は、ISO 規則での週曜日を
カレンダー時刻に変換します。
@item
新しい関数 `weekdate_cdc(year, week, day)` は、CDC 規則での週曜日を
カレンダー時刻に変換します。
@end itemize
D epi_data 1
@node その他の新しい機能, バージョン_5_で導入された機能の要約_(3_Brief_summary_of_features_introduced_in_version_5), 週曜日のサポート_(Week-date_time_support), バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection その他の新しい機能
@c ?new other_features
@itemize @bullet
@item
`時間軸の主目盛りと副目盛り用の時間単位`
時間軸の主目盛りと副目盛りは、minutes/hours/days/weeks/months/years
を単位とする目盛り間隔指定を受け付けます。
以下参照: `set xtics`, `set mxtics time`。
@item
`using` 指定内での文字列 $# は、現在の入力データ行にある全列数と評価
します。例えば、`plot FOO using 0:(column($# - 1))` は、各行の最後か
ら一つ手前の列を描画します。
@item
bin (箱) 用の、合計でなく平均を描画するキーワード `binvalue=avg`
@item
`set colorbox bottom` は、垂直なカラーボックスを右に配置する代わりに
水平なカラーボックスをグラフの下に配置します。
@item
交差する pm3d 曲面のレンダリングの改良 - 重なる曲面のタイルを、交差
曲線に沿って 2 つの部分に分割し、一方の曲面のタイルが他方の曲面を通
って不正に突き出てしまうことがないようにします。
@item
pm3d 光源モデルに、ユーザ制御型のスポットライトを追加。以下参照:
`set pm3d spotlight`。
@item
key の全体の幅と列数を固定する新規オプション。以下参照: `key layout`。
@item
`set pm3d border retrace` は、各 pm3d 四辺形の周りに、塗り潰し領域と
同じ色で境界を描きます。これは、原理的に視覚効果はありませんが、あま
りよくない pdf や postscript ビューワのようなディスプレイモードで、
エイリアスによる副産物が導入されないようにします。
@item
@ref{isotropic} は、2 次元グラフと 3 次元グラフの両方で、x, y, z 軸
のすべてのスケールが同じになるようにスケールを合わせます。
@item
変更: 文字の回転角が整数という制限はなくなりました。
@item
特別な (非数値の) 線種 (linetype) `lt nodraw`, `lt black`, `lt bgnd`
以下参照: `special_linetypes`。
@item
データ駆動型の histogram グラフの色割り当て。以下参照:
`histograms colors`。
@item
凡例 (key) の箱の位置は、gnuplot が他に行う仕組みによるどんな位置決
めに対しても、オフセットを与えることで手動で調整できます。以下参照:
`set key offset`。
@item
描画スタイルなしで keyentry に文字列を指定することで、凡例 (key) の
中にその幅全体に渡る第 2 タイトルを生成することができます。例:
@example
`plot A, keyentry "left-justified text" left, B`
@end example
これは、文字列とタイトルの両方を与えることで、2 列の文字列からなる凡
例を生成するのにも使えます。以下参照: `keyentry`。
@end itemize
@node バージョン_5_で導入された機能の要約_(3_Brief_summary_of_features_introduced_in_version_5), , その他の新しい機能, バージョン_6_での新しい機能_(New_features_in_version_6)
@subsection バージョン 5 で導入された機能の要約 (3 Brief summary of features introduced in version 5)
@c ?new version_5
@cindex version_5
@menu
* 5.4_で導入された機能_(Features_introduced_in_5.4)::
* 5.2_で導入された機能_(Features_introduced_in_5.2)::
* 5.0_で導入された機能_(Features_introduced_in_5.0)::
@end menu
@node 5.4_で導入された機能_(Features_introduced_in_5.4), 5.2_で導入された機能_(Features_introduced_in_5.2), バージョン_5_で導入された機能の要約_(3_Brief_summary_of_features_introduced_in_version_5), バージョン_5_で導入された機能の要約_(3_Brief_summary_of_features_introduced_in_version_5)
@subsubsection 5.4 で導入された機能 (Features introduced in 5.4)
@c ?new version_5 version_5.4
@c ?version_5 version_5.4
@itemize @bullet
@item
数式と関数は 64 ビット整数演算を使用。以下参照: `integer`。
@item
2 次元描画スタイル @ref{polygons}, @ref{spiderplot}, `arrows`
@item
3 次元描画スタイル @ref{boxes}, @ref{circles}, @ref{polygons}, `isosurface`, そ
してその他ボクセル格子データの表現
@item
データ前処理フィルタ `zsort`
@item
カスタマイズした凡例 (key) を作成する `keyentry`
@item
新しい LaTeX 系出力形式 pict2e は、古い出力形式 `latex`, `emtex`,
`eepic`, `tpic` の代わりです。古い出力形式はもはやデフォルトではビル
ドしません。
@item
@ref{pixmap} は、png/jpeg/gif 画像をピクスマップ画像として取り込み、
グラフやページの任意の位置に配置しスケール変換も可能
@item
拡張文字列モードで \U+xxxx (xxxx は 16 進値の 4 または 5 文字) で
Unicode コードポイントが指定できるように。それは出力時に対応する
UTF-8 バイト文字列に変換します。
@item
@ref{parallelaxes} の書式の改変により、描画スタイル `histogram` や
@ref{spiderplot} と同様な plot コマンド内部での便利な繰り返しが可能に
@end itemize
@node 5.2_で導入された機能_(Features_introduced_in_5.2), 5.0_で導入された機能_(Features_introduced_in_5.0), 5.4_で導入された機能_(Features_introduced_in_5.4), バージョン_5_で導入された機能の要約_(3_Brief_summary_of_features_introduced_in_version_5)
@subsubsection 5.2 で導入された機能 (Features introduced in 5.2)
@c ?new version_5 version_5.2
@c ?version_5 version_5.2
@itemize @bullet
@item
非線形座標系 (以下参照: @ref{nonlinear})
@item
データの階級幅割り当ての自動化 (以下参照: `bins`)
@item
2 次元ビースウォームグラフ。以下参照: @ref{jitter}。
@item
3 次元描画スタイル `zerrorfill`
@item
3 次元光源モデルで陰影と反射光ハイライトを提供 (以下参照: `lighting`)
@item
配列データ型と関連するコマンドや演算子。以下参照: `arrays`。
@item
新しい出力形式 `sixelgd`, `domterm`
@item
相対時間 (間隔長) を処理する新しい書式指定子 tH tM tS。
以下参照: `time_specifiers`。
@end itemize
@node 5.0_で導入された機能_(Features_introduced_in_5.0), , 5.2_で導入された機能_(Features_introduced_in_5.2), バージョン_5_で導入された機能の要約_(3_Brief_summary_of_features_introduced_in_version_5)
@subsubsection 5.0 で導入された機能 (Features introduced in 5.0)
@c ?new version_5 version_5.0
@c ?version_5 version_5.0
@itemize @bullet
@item
出力形式に依存しない点線/破線型。
@item
ひとつの plot での引き続く描画要素に使用するデフォルトの色の列は、色
弱者により容易に区別できるものに。
@item
新しい描画スタイル @ref{parallelaxes}, `with table`。
@item
マウスがその上にあるときに有効になるハイパーテキストラベル。
@item
2 次元、3 次元関数描画や疑似ファイル '+', '++' での描画における明示
的なサンプリング範囲。
@item
新しいコマンド @ref{import} によるプラグインのサポート。外部の共有オブジ
ェクトが提供する関数にユーザ定義関数名を割り当てます。
@end itemize
@node バージョン_5_と_6_との違い_(2_Differences_between_versions_5_and_6), デモ、ネット上のサンプル_(Demos_and_Online_Examples), バージョン_6_での新しい機能_(New_features_in_version_6), Gnuplot
@section バージョン 5 と 6 との違い (2 Differences between versions 5 and 6)
バージョン 5 で導入したいくつかの変更は、gnuplot の以前のバージョン用
のスクリプトを失敗させる、または異なる振舞いをさせることがありました。
バージョン 6 で導入した変更では、そういうことはとても少ないです。
@menu
* 描画スタイルの詳細_(Plot_style_details)::
* 非推奨な書式_(Deprecated_syntax)::
@end menu
@node 描画スタイルの詳細_(Plot_style_details), 非推奨な書式_(Deprecated_syntax), バージョン_5_と_6_との違い_(2_Differences_between_versions_5_and_6), バージョン_5_と_6_との違い_(2_Differences_between_versions_5_and_6)
@subsection 描画スタイルの詳細 (Plot style details)
@cindex v6_changes
完全に新しい描画スタイルの追加とは別に、バージョン 6 では幾つか既存の
描画スタイルへの微調整も行われています。
@itemize @bullet
@item
いくつかの出力形式 (png/jpeg/sixel/kitty) は、"dot" のサイズを現在の
線幅 (line width) で伸縮します。その他のいくつかの出力形式では、既に
そうなっています。
@item
誤差棒 (errorbar) を描く描画スタイルは、データ点の位置に空白を置きま
す。その空白サイズは、`set pointintervalbox` で制御できます。
@item
多重描画モードでは、現在は再描画、スケール変更できます (以下参照:
`multiplots`)。そのため、疑似ファイル '-' からのインラインデータの読
み込みはもはやできないので、代わりにデータブロックを利用してください。
@end itemize
@node 非推奨な書式_(Deprecated_syntax), , 描画スタイルの詳細_(Plot_style_details), バージョン_5_と_6_との違い_(2_Differences_between_versions_5_and_6)
@subsection 非推奨な書式 (Deprecated syntax)
@c ?deprecated syntax
バージョン 5.4 では非推奨、6.0 では削除:
@example
# 繰り返しを行うために @ref{reread} を含むファイルを使用
N = 0; load "file-containing-reread";
file content:
N = N+1
plot func(N,x)
pause -1
if (N<5) reread
@end example
現在の同等の機能:
@example
do for [N=1:5] @{
plot func(N, x)
pause -1
@}
@end example
バージョン 5.4 では非推奨、6.0 では削除
@example
set dgrid3d ,,foo # foo が意味する指示のキーワードがない
@end example
現在は以下と同等
@example
set dgrid3d qnorm foo # (例のみ、qnorm は単独のオプションでない)
@end example
バージョン 5.0 では非推奨、6.0 では削除
@example
set style increment user
@end example
現在は以下と同等
@example
必要な範囲の線種を "set linetype" を使用して再定義
@end example
バージョン 5.0 では非推奨、6.0 では削除
@example
set clabel
@end example
現在は以下と同等
@example
`set clabel "format"` は `set cntrlabel format "format"` で置き
換え、@ref{clabel} は `set cntrlabel onecolor` で置き換え。
@end example
バージョン 5.0 では非推奨、6.0 では削除
@example
show palette fit2rgbformulae
@end example
@node デモ、ネット上のサンプル_(Demos_and_Online_Examples), バッチ/対話型操作_(Batch/Interactive), バージョン_5_と_6_との違い_(2_Differences_between_versions_5_and_6), Gnuplot
@section デモ、ネット上のサンプル (Demos and Online Examples)
@cindex demos
@c ?online examples
@cindex examples
`gnuplot` の配布物の `demo` ディレクトリ内には、多くのサンプルが収めら
れています。これらのサンプルの png, svg, canvas 出力形式による出力を、
以下のネット上で見ることもできます:
@uref{http://gnuplot.info/demos/,http://gnuplot.info/demos
}
そこでは、各デモを作成するコマンドがグラフの隣りに表示されますし、その
gnuplot スクリプトをダウンロードすることもできますので、それを保存し同
様のグラフを作成することができます。
@node バッチ/対話型操作_(Batch/Interactive), キャンバスサイズ_(Canvas_size), デモ、ネット上のサンプル_(Demos_and_Online_Examples), Gnuplot
@section バッチ/対話型操作 (Batch/Interactive)
@cindex batch/interactive
`gnuplot` は、バッチ処理形式、あるいは対話型のどちらの形式でも実行でき、
それらを組み合わせることも可能です。
コマンドライン引数は、プログラムへのオプションか、`gnuplot` コマンドを
含むファイルの名前であると解釈します。
各ファイルとコマンド文字列は、指定した順に実行します。
特別なファイル名 "-" は、コマンドを標準入力から読込むことを意味します。
最後のファイルを実行した後に `gnuplot` は終了します。読み込ませるファ
イル、およびコマンド文字列を指定しなかった場合は、`gnuplot` は標準入力
からの対話型の入力を受け付けます。
@menu
* コマンドラインオプション_(command_line_options)::
* 例_(Examples)::
@end menu
@node コマンドラインオプション_(command_line_options), 例_(Examples), バッチ/対話型操作_(Batch/Interactive), バッチ/対話型操作_(Batch/Interactive)
@subsection コマンドラインオプション (command line options)
@cindex command-line-options
@c ?batch/interactive command-line-options
gnuplot は、コマンドラインで以下のオプションを受けつけます:
@example
-V, --version
-h, --help
-p, --persist
-d, --default-settings
-s, --slow
-e "command1; command2; ..."
-c scriptfile ARG1 ARG2 ...
@end example
-p は、プログラムの終了時に、残っている対話型グラフウィンドウを一切閉
じないよう gnuplot に指示します。
-d は、各ユーザ用、およびシステム用の初期化 (以下参照: `initialization`)
を一切行わないよう gnuplot に指示します。
-s は、起動時のフォントの初期化をゆっくり待つように指示します。そうで
ないと、エラーを表示し、不正なフォントサイズ情報で動作を継続します。
-e "command" は、次に進む前に指定した単一のコマンドを実行するよう
gnuplot に指示します。
-c は、-e "call scriptfile ARG1 ARG2 ..." と同等です。以下参照: @ref{call}。
@node 例_(Examples), , コマンドラインオプション_(command_line_options), バッチ/対話型操作_(Batch/Interactive)
@subsection 例 (Examples)
@c ?batch/interactive examples
対話を開始する:
@example
gnuplot
@end example
バッチモードで 2 つのコマンドファイル "input1", "input2" を実行:
@example
gnuplot input1 input2
@end example
初期化ファイル "header" の後、対話型モードを起動し、その後別のコマンド
ファイル "tailer" を実行する:
@example
gnuplot header - trailer
@end example
コマンドラインから `gnuplot` コマンドを直接与え、終了後にスクリーン上
にグラフが残るようにオプション "-persist" を使う:
@example
gnuplot -persist -e "set title 'Sine curve'; plot sin(x)"
@end example
ファイルのコマンドを実行する前に、ユーザ定義変数 a と s をセットする:
@example
gnuplot -e "a=2; s='file.png'" input.gpl
@end example
@node キャンバスサイズ_(Canvas_size), コマンドライン編集_(Command-line-editing), バッチ/対話型操作_(Batch/Interactive), Gnuplot
@section キャンバスサイズ (Canvas size)
@c ?canvas size
@cindex canvas
@c ?set term size
ここの文書で使用する "canvas" という用語は、グラフやそれに関連するラベ
ルやタイトル、凡例などを配置するのに利用可能な描画領域全体を意味します。
注意: HTML5 canvas 出力形式に関する情報を知りたい場合は、以下参照:
`set term canvas`。
`set term size , ` は、出力ファイルのサイズ、
または "キャンバス" のサイズを制御します。デフォルトでは、グラフはその
キャンバス全体に描画されます。
`set size , ` は、描画自体をキャンバスのサイズに対して相対的に
伸縮させます。1 より小さい伸縮値を指定すると、グラフはキャンバス全体を
埋めず、1 より大きい伸縮値を指定すると、グラフの一部分のみがキャンバス
全体に合うように描画されます。1 より大きい伸縮値を指定すると、問題が起
こるかもしれないことに注意してください。
例:
@example
set size 0.5, 0.5
set term png size 600, 400
set output "figure.png"
plot "data" with lines
@end example
このコマンドは、幅 600 ピクセル、高さ 400 ピクセルの出力ファイル
"figure.png" を生成します。グラフはキャンバスの中の左下に置かれます。
注意: gnuplot の以前のバージョンでは、`set size` を出力キャンバスのサ
イズ自体を制御するのに使用する出力形式がありましたが、それはバージョン
4 で非推奨となっています。
@node コマンドライン編集_(Command-line-editing), コメント_(Comments), キャンバスサイズ_(Canvas_size), Gnuplot
@section コマンドライン編集 (Command-line-editing)
@cindex line-editing
@cindex editing
@cindex command-line-editing
コマンドラインでの編集機能とコマンドヒストリの機能は、外部の GNU
readline ライブラリか外部の BSD libedit ライブラリ、または組み込まれて
いる同等のもののいずれかを使ってサポートしています。この選択は、
gnuplot のコンパイル時の configure のオプションで行います。
組み込みの readline 版の場合の編集コマンドは以下の通りですが、DEL キー
に関する動作はシステムに依存することに注意してください。GNU readline
ライブラリと BSD libedit ライブラリに関しては、それ自身のドキュメント
を参照してください。
@example
`行編集`:
@end example
@example
^B 1 文字前へ戻す
^F 1 文字先へ進める
^A 行の先頭に移動
^E 行の最後に移動
^H 直前の文字を削除
DEL 現在の文字を削除
^D 現在位置の文字を削除、空行なら EOF を送信
^K 現在位置から行末まで削除
^L 壊れた表示の行を再表示
^U 行全体の削除
^W 直前の単語を削除
^V この次のキーを編集コマンドと見なさない
TAB ファイル名補完動作
@end example
@example
`履歴`:
@end example
@example
^P 前の履歴へ移動
^N 次の履歴へ移動
^R 後方検索を開始
@end example
@c ^
@c ^
@c ^
@c ^
@c ^
@c ^
@c ^
文字
機能
@c ^
@c ^
@c ^
行編集
@c ^
^B
1 文字前へ戻す
@c ^
^F
1 文字先へ進める
@c ^
^A
行の先頭へ移動
@c ^
^E
行の最後へ移動
@c ^
^H
直前の文字を削除
@c ^
DEL
現在の文字を削除
@c ^
^D
現在位置の文字を削除、空行なら EOF
@c ^
^K
現在位置から行末まで削除
@c ^
^L
壊れた表示の行を再表示
@c ^
^U
行全体の削除
@c ^
^W
直前の単語を削除
@c ^
^V
この次のキーを編集コマンドと見なさない
@c ^
TAB
ファイル名補完動作
@c ^
@c ^
@c ^
履歴
@c ^
^P
前の履歴へ移動
@c ^
^N
次の履歴へ移動
@c ^
^R
後方検索を開始
@c ^
@c ^
@node コメント_(Comments), 座標系_(Coordinates), コマンドライン編集_(Command-line-editing), Gnuplot
@section コメント (Comments)
@cindex comments
コメント記号 `#` は、コマンド行中のほとんどどこにでも書くことができま
す。このとき `gnuplot` は、その行の残りの部分を無視します。ただし、記
号 `#` は引用符内ではこの効果がありません。コメント行が '\' で終わって
いる場合、次の行もコメントの一部として扱われることに注意してください。
データファイルに対するコメント文字の指定については、以下参照:
`set datafile commentschars`。
@node 座標系_(Coordinates), 文字列データ_(Datastrings), コメント_(Comments), Gnuplot
@section 座標系 (Coordinates)
@cindex coordinates
@cindex axes
コマンド `set arrow`, `set key`, `set label`, `set object` はグラフ上
の任意の位置が指定できます。その位置は以下の書式で指定します:
@example
@{@} , @{@} @{,@{@} @}
@end example
各座標系指定 には、`first`, `second`, `polar`, `graph`,
`screen`, `character` のいずれかが入ります。
`first` は左と下の軸で定義される x,y (3D の場合は z も) の座標系を使用
します。`second` は x2, y2 軸 (上と右の軸) を使用します。`graph` はグ
ラフ描画領域内の相対的位置を指定し、左下が 0,0 で 右上が 1,1 (splot の
場合はグラフ描画領域内の左下が 0,0,0 で、土台の位置は負の z の値を使用
します。以下参照: `set xyplane`) となります。`screen` は表示範囲内 (範
囲全体であり、`set size` で選択される一部分ではありません) を指定し、
左下が 0,0 で 右上が 1,1 となります。`character` 座標は主にずれを指定
するのに使用し、絶対的な位置を示すものではありません。`character` の水
平、垂直サイズは、現在使用しているフォントに依存します。
`polar` は、最初の 2 つの値を、x, y ではなく、角 theta と半径 r である
と解釈します。これは、例えば 2 次元の極座標、あるいは 3 次元円柱座標で
のグラフにラベルを配置するのに役に立つでしょう。
x の座標系が指定されていない場合は `first` が使われます。y の座標系が
指定されていない場合は x に対する座標系が使用されます。
与える座標が絶対的な位置ではなくて相対的な値である場合もあります (例え
ば `set arrow` ... `rto` の 2 番目の数値)。そのほとんどが、与えられた
数値を最初の位置に対する差として使います。与えられた座標が対数軸内にあ
る場合は、その相対的な値は倍率として解釈されます。例えば
@example
set logscale x
set arrow 100,5 rto 10,2
@end example
は、x 軸が対数軸で y 軸が線形の軸なので、100,5 の位置から 1000,7 の位
置への矢印を書くことになります。
一つ (あるいはそれ以上) の軸が時間軸である場合、`timefmt` の書式文字列
に従って、引用符で囲まれた時間文字列で適切な座標を指定する必要がありま
す。以下参照: `set xdata`, `set timefmt`。また、`gnuplot` は整数表記も
認めていて、その場合その整数は 1970 年 1 月 1 日からの秒数と解釈されま
す。
@node 文字列データ_(Datastrings), 拡張文字列処理モード_(Enhanced_text_mode), 座標系_(Coordinates), Gnuplot
@section 文字列データ (Datastrings)
@cindex datastrings
データファイルには、ホワイトスペース (空白やタブ) を含まない任意の印字
可能な文字列、あるいは 2 重引用符で囲まれた任意の文字列 (ホワイトスペ
ースが含まれても良い)、のいずれかの形からなる文字列データを持たせるこ
とも可能です。データファイルに次のような行が含まれている場合、それは 4
つの列を含み、3 列目がテキスト部分であると見なされます:
@example
1.000 2.000 "Third column is all of this text" 4.00
@end example
テキスト部分は 2 次元や 3 次元描画内で例えば以下のように使用されます:
@example
plot 'datafile' using 1:2:4 with labels
splot 'datafile' using 1:2:3:4 with labels
@end example
テキスト部分の列データは 1 つ、または複数の描画軸の目盛りのラベルとし
て使用できます。次の例は、入力データの 3 列目と 4 列目を (X,Y) 座標と
して取り出し、それらの点の列を結ぶ線分を描画します。しかしこの場合
gnuplot は、x 軸に沿って標準的に間の空いた数字ラベルのついた目盛り刻み
をつけるのではなく、入力データファイルの 1 行目の X 座標の位置に、目盛
り刻みと文字列を x 軸に沿ってつけて行きます。
@example
set xtics
plot 'datafile' using 3:4:xticlabels(1) with linespoints
@end example
@cindex columnheader
入力データの列の最初のエントリ (すなわち列の見出し) をテキスト部分と解
釈するもう一つのオプションがあり、それはテキスト部分を、その描画した列
のデータの凡例 (key) のタイトル部分として使用します。次の例は、先頭の
行の 2 列目の部分を凡例ボックス内のタイトルを生成するのに使用し、その
後の列の 2,4 列目は要求された曲線を描画するのに処理されます:
@example
plot 'datafile' using 1:(f($2)/$4) with lines title columnhead(2)
@end example
別の例:
@example
plot for [i=2:6] 'datafile' using i title "Results for ".columnhead(i)
@end example
この列の先頭を使用する方法は、@ref{columnheaders} か
`set key autotitle columnhead` で自動化できます。以下参照: @ref{labels},
`using xticlabels`, @ref{title}, `using`, `key autotitle`。
@node 拡張文字列処理モード_(Enhanced_text_mode), 環境変数_(Environment), 文字列データ_(Datastrings), Gnuplot
@section 拡張文字列処理モード (Enhanced text mode)
@c ?enhanced text
@cindex enhanced
@cindex text_markup
@cindex markup
@cindex bold
@cindex italic
多くの出力形式が、拡張文字列処理モード (enhanced text mode) をサポート
しています。これは、文字列に追加の書式情報を埋めこみます。例えば "x^2"
は x の自乗を、通常我々が見る上付きの 2 がついた形で書き出します。この
モードは、出力形式の設定時にデフォルトとして選択されますが、その後で
`set termoption [no]enhanced` を使ってその機能を有効/無効にもできます
し、`set label "x_2" noenhanced` のように個別の文字列に対して無効にす
ることもできます。
注意: TeX ベースの出力形式 (例えば cairolatex, pict2e, pslatex, tikz)
の出力では、すべてのテキスト文字列には、これの代わりに TeX/LaTeX の書
式を使用すべきです。以下参照: `latex`。
@example
制御記号 例 説明
^ a^x 上付き文字
_ a_x 下付き文字
@@ @@x, a@@^b_@{cd@} 空ボックス (幅がない)
& &@{space@} 指定した長さのスペースを挿入
~ ~a@{.8-@} 'a' の上に '-' を、現在のフォントサ
イズの .8 倍持ち上げた位置に重ね書き
@{/Times abc@} Times フォント、今のサイズで abc を出力
@{/Times*2 abc@} Times フォント、今の倍のサイズで abc
@{/Times:Italic abc@} TImes フォント、イタリック体で abc
@{/Arial:Bold=20 abc@} Arial フォント、太字、サイズ 20 で abc
\U+ \U+221E Unicode コードポイント U+221E (無限大)
@end example
@c ^