GNUPLOT 3.5 マニュアル Thomas Williams, Colin Kelley --- 田丸 博晴, 升谷 保博 GNUPLOT は,コマンド入力方式の対話的な関数描画プログラムです. ______________________________________________________________________ 目次 1. 序文 2. gnuplot 3. copyright 4. introduction 5. cd 6. clear 7. command line-editing 8. comment 9. environment 10. exit 11. expressions 12. fit 12.1 functions 12.2 operators 12.2.1 binary 13. help 14. if 15. load 16. call 17. pause 18. plot 18.1 data-file 18.1.1 using 18.2 errorbars 18.3 parametric 18.4 ranges 18.5 index 18.6 style 18.7 title 19. print 20. pwd 21. quit 22. replot 23. reread 24. save 25. set-show 25.1 angles 25.2 arrow 25.3 autoscale 25.3.1 parametric mode 25.4 border 25.5 boxwidth 25.6 clabel 25.7 clip 25.8 cntrparam 25.9 contour 25.10 data style 25.11 dgrid3d 25.12 dummy 25.13 format 25.14 function style 25.15 functions 25.16 grid 25.17 hidden3d 25.18 isosamples 25.19 key 25.20 label 25.21 logscale 25.22 mapping 25.23 offsets 25.24 output 25.25 parametric 25.26 polar 25.27 rrange 25.28 samples 25.29 size 25.30 style 25.31 surface 25.32 terminal 25.32.1 aifm 25.32.2 atari ST 25.32.3 dumb 25.32.4 epson 25.32.5 gpic 25.32.6 hpljii 25.32.7 latex 25.32.8 iris4d 25.32.9 mf 25.32.10 Metafont Instructions 25.32.11 mif 25.32.12 nec-cp6 25.32.13 pbm 25.32.14 pcl5 25.32.15 postscript 25.32.16 enhanced postscript 25.32.17 table 25.32.18 windows 25.32.19 graph-menu 25.32.20 printing 25.32.21 text-menu 25.32.22 wgnuplot.ini 25.32.23 windows3.0 25.33 tics 25.34 time 25.35 title 25.36 trange 25.37 urange 25.38 variables 25.39 view 25.40 vrange 25.41 xlabel 25.42 xrange 25.43 xtics 25.44 xdtics 25.45 xmtics 25.46 xzeroaxis 25.47 ylabel 25.48 yrange 25.49 ytics 25.50 ydtics 25.51 ymtics 25.52 yzeroaxis 25.53 zero 25.54 zeroaxis 25.55 zlabel 25.56 zrange 25.57 ztics 25.58 zdtics 25.59 zmtics 26. shell 26.1 Binary Data 27. start-up 28. substitution 29. update 30. user-defined 31. bugs 32. 日本語訳について 32.1 日本語版関連情報 ______________________________________________________________________ 1. 序文 注意:これはgnuplotj.doc(バージョン3.5)を元にSGML化した文書です。しか し、gnuplotパッケージ(gnuplot/docsディレクトリ)ではマニュアルを様々な フォーマット(オンラインヘルプ、roff、TeX形式)に変換することができま す。バージョン3.6からHTMLファイルを生成することもできるようになってい ます。 gnuplotの日本語マニュアルについては、おおもとであ るgnuplot.docをもとにしてgnuplotパッケージからフォーマット変換するのが よいでしょう。このSGMLファイルは暫定的なものです。日本語訳については田 丸さん、升谷さんのgnuplotj.docを利用させていただきました。ここに感謝い たします。 2. gnuplot GNUPLOT は,コマンド入力方式の対話的な関数描画プログラムです. ある項目についてのヘルプが必要なときには,`help` に続けてその項目名を 入力して下さい. 初めて GNUPLOT を使う方は,`introduction` の項目(`help introduction`と 入力して下さい)と`plot` コマンドの説明(`help plot`と入力して下さい)か ら読みはじめると良いでしょう.さらに,USENETのニュースグルー プcomp.graphics.gnuplotからも助言を得ることができるでしょう. 3. copyright Copyright (C) 1986 - 1993 Thomas Williams, Colin Kelley Permission to use, copy, and distribute this software and its documentation for any purpose with or without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Permission to modify the software is granted, but not the right to distribute the modified code. Modifications are to be distributed as patches to released version. This software is provided "as is" without express or implied warranty. 作者 オリジナル: Thomas Williams, Colin Kelley. Gnuplot 2.0 追加: Russell Lang, Dave Kotz, John Campbell. Gnuplot 3.0 追加: Gershon Elber と多くの他の人達. gnuplot のユーザのためのメイリングリストが存在します.しかし,ニュース グループcomp.graphics.gnuplot は,そのメイリングリストと同一であること に注意して下さい(どちらも同じメッセージを載せています).我々は,貴方が メイリングリストに参加するより,ニュースグループからメッセージを読んで 欲しいと思っています (もし,貴方がそのニュースグループを読むことがで き,すでにメイリングリストに参加しているのならば,メイリングリストから 脱退するように依頼するメッセージを info-gnuplot-request@dartmouth.edu 宛に送って下さい). メイリングリストの参加者へのアドレスは, info-gnuplot@dartmouth.edu です.また,管理に関するリクエストのアドレスは, info-gnuplot-request@dartmouth.edu です.バグ報告のためのメイリングリストは, bug-gnuplot@dartmouth.edu です.ベータテスト版に興味のある人のメイリングリストは, info-gnuplot-beta@dartmouth.edu です. 4. introduction GNUPLOT は,コマンド入力方式の対話的な関数描画プログラムです.コマンド や関数名は大文字小文字を区別します.いずれのコマンドも,あいまいさの無 い限りにおいて省略することができます.1行中にはセミコロン(;)で区切って 複数のコマンドを書くことができます.文字列は引用符を使って表します.引 用符は,一重でも,二重でも構いません. 例: load "filename" cd 'dir' コマンドラインでの引数は GNUPLOT 用のコマンドの書かれたファイルの名前 であるものとします.但し標準の X11 の引数は例外で,まず最初に処理され ます.各ファイルはコマンドライン上で指定された順に `load` コマンドでロ ードされます.GNUPLOT は,最後に指定されたファイルを処理し終ると終了し ます.ファイルが1つも指定されていない場合は,GNUPLOT は対話モードにな ります. コマンドは,複数行にまたがることができます.その場合は,最終行以外の全 ての行の行末にバックスラッシュを(\)書く必要があります.バックスラッ シュは必ず各行 *最後* の文字でなくてはなりません.その結果としてバック スラッシュと,それに続く改行文字が存在しなかったかのように扱われます. つまり,改行文字がスペースの役をすることもありませんし,改行によってコ メントが終了することもありません.ですから複数行にまたがる行をコメント アウトすると,そのコマンド全体がコメントアウトされることになりま す(``comment'' 参照). このドキュメントにおいて,中括弧({})は省略可能な引数を表すものとしま す.縦棒(|)は,互いに排他的な引数を区切るものとします.GNUPLOT のキー ワードやヘルプにおける項目名は,バッククオートまたは可能な場合には `boldface` で表します.角括弧(<>)は,それに対応するものに置き換えられ るべきものを表します. ある項目についてのヘルプが必要なときには,`help` に続けてその項目名を 入力して下さい. 初めて GNUPLOT を使う方は,`plot` コマンドの説明から読みはじめると良い でしょう(`help plot`と入力して下さい). 5. cd `cd` コマンドはカレントディレクトリを変更します. 書式: cd "<ディレクトリ名>" ディレクトリ名は引用符に囲まれていなければなりません. 例: cd 'subdir' cd ".." 6. clear `clear` コマンドは,`set output` で選択された画面または出力装置をクリ アします.通常,ハードコピー装置に対しては改ページを行います.出力装置 を選択するには `set terminal` を使用して下さい. 7. command line-editing Unix, Atrai, VMS, MS-DOS または OS/2 版の GNUPLOT はコマンドライン編集 機能を持っています.さらに履歴機能によって過去のコマンドを呼び出し,編 集し,再実行することができます.コマンドラインの編集が終った後に改行ま たは復帰キーを押すと,そのときのカーソルの位置にかかわり無く行全体を入 力します. 編集用のコマンドは以下の通りです. 行編集(`Line-editing`): ^ B で1文字左へ移動. ^F で1文字右へ移動. ^A で行頭へ移動. ^E で行末へ移動. ^H か DEL でカーソルの左の文字を削除. ^D でカー ソル位置の文字を削除. ^K でカーソル位置以降の文字をすべて削除. ^L,^R で画面が乱れた場合などに行を再表示. ^U で行全体を削除. ^W でカーソルの左の1語を削除. 履歴(`History`): ^ P で履歴をさかのぼって検索. ^N で履歴をくだって検索. MS-DOS [原文: IBM PC] においては,DOSEDIT や CED といった TSR プログラ ムを利用したい場合があるでしょう.そのような場合,GNUPLOT を行編集機能 なしでコンパイルすることも可能です(makefile のデフォルトの設定).MS- DOSで GNUPLOT 自身の行編集機能を利用する場合は,makefile において READLINE をセットし,リンクファイルに readline.obj を追加して下さ い.readline を使うと MS-DOS または Atari 版において以下の矢印キーが利 用可能になります. 左矢印 - ^B と同じ. 右矢印 - ^F と同じ. Ctl + 左矢印 - ^A と同じ. Ctl + 右矢印 - ^E と同じ. 上矢印 - ^P と同じ. 下矢印 - ^N と同じ. readline の Atari 版ではさらにいくつかのキーエイリアスが定義されていま す. Undo - ^L と同じ. Home - ^A と同じ. Ctrl Home - ^E と同じ. ESC - ^U と同じ. Help - `help' とリターン. Ctrl Help - `help '. (gnuplot で使われている readline 関数は,GNU BASH や GNU EMACS で使わ れているものと同じではありません.しかしそれなりに互換性はあります.) 8. comment コメントは次のように実装されています: 文字 # は,行中のたいていの場所 に書くことができます.このとき GNUPLOT はその行の残りの部分を無視しま す.ただし,引用符の中,数(複素数を含む)の中,コマンド置換(command substitution)の中などではこの効果がありません.簡単に言うと,意味のあ るような使い方をしさえすれば,正しく動作すると言うことです. 9. environment GNUPLOTは 多くのシェル環境変数を認識します.必須のものはありませんが, 使えば便利になるかも知れません. GNUTERM が定義されている場合,それは使用される出力装置(terminal)の名前 として使われます.これは,GNUPLOT が起動時に見つけた出力装置に優先して 使用されますが,.gnuplot またはそれに相当するスタートアップファイル( ``start-up'' 参照)による指定やその後の明示的な変更の方がさ らに優先さ れます. Unix と AmigaDOS と AtariTOS と MS-DOS と OS/2 においては,GNUHELP に ヘルプファイル(gnuplot.gih)のパス名を定義しておくことができます. VMS においては,シンボル GNUPLOT$HELP を GNUPLOT 用のヘルプライブラリ の名前として定義します. Unix においては,カレントディレクトリに .gnuplot というファイルが無い 場合には,HOME に定義されたディレクトリを探します. AmigaDOS と AtariTOS と MS-DOS と OS/2 においては,GNUPLOT がその役割に使われま す.VMS では,SYS$LOGIN: です.`help startup` を参照して下さい. Unix においては,PAGER がヘルプメッセージの出力用フィルターとして使わ れます. Unix と AtariTOS と AmigaDOS においては,SHELL が `shell` コマンドの際 に使われます. MS-DOS と OS/2 においては,COMSPECが `shell` コマンドの 際に使われます. AmigaDOS においては,GNUFONT が画面用のフォントとして使われます.例: "setenv GNUFONT sapphire/14" MS-DOS において BGI インタフェイスが使われている場合には,`BGI` という 変数が BGI ドライバのディレクトリへのフルパスを指定するために使われま す.さらに,800x600 の解像度用 Super VGA BGI ドライバを指定するために SVGAが使われ,そのモードと共に '名前.モード' とセットします.例え ば,Super VGA ドライバが C:\TC\BGI\SVGADRV.BGI で,800x600 の解像度が モード 3 だったならば,'set BGI=C:\TC\BGI' と 'set SVGA=SVGADRV.3' と することになります. 10. exit `exit` と `quit` の両コマンドと END-OF-FILE 文字は,GNUPLOT を終了させ ます.これらのコマンドは,出力装置を `clear` コマンドと同様にクリアし てしてから終了させます. 11. expressions 基本的には,C, FORTRAN, Pascal または BASIC において利用可能な数学表現 を使用できます.演算子の優先順位は,C 言語の仕様に従います.数式中の空 白文字とタブ文字は無視されます. 複素数の定数は{<実部>,<虚部>}と表せます.ここで<実部>と<虚部>は数定数 でなくてはなりません.例えば {3,2} は 3 + 2i を表し, {0,1} は `i` 自 身を表します.これらの場合には,明示的に中括弧を書く必要があります. 12. fit このコマンドによって,Marquardt-Levenbergアルゴリズムによる非線形最小 二乗推定の機能が組み込まれます.これを使えば,任意のデータの組(x, y)の 集まりに対して,どのようなユーザ定義関数を推定することもできます. x,y と関数の返り値の型は実数である必要があります.関数の本体の中に現れる全 ての変数は推定パラメータとして使っても構いません(調整可能なパラメータ のないモデル関数には意味がありません).書式は: fit <関数> '<データファイル>' {using x:y{:dy}} '<パラメータファイル>' or fit <関数> '<データファイル>' {using x:y{:dy}} via <変数1>, <変数2>, ... と書きます.<関数>は,f(x)という形式のあらかじめユーザが定義した関数で す. <データファイル>はplotコマンドのように扱われます.デフォルトで は,xが第1列, yが第2列です.これらは,`using x:y` によって変更するこ とができます.オプションのdyは,各yの値に対する個別の不確定性を含む列 を指定します.これらは,推定の時に重みとして使われます.もし,これらが 与えられていなければ,全ての不確定性は均等に分布していると仮定されま す.開始パラメータはファイルのなかで指定することができます.そのファイ ル中,各行は 変数 = 値 という形式です('#'で分けられた注釈や空行も可能です). 変数 = 値 # FIXED という形式は,この変数を `固定パラメータ` ,つまり,初期化されるが変更 はされない,として扱うことを意味します.これを指定することは,必ずしも 必要ではありませんが,意味をはっきりさせるために時として役に立ちます. 開始値を指定する他の方法はGNUPLOTのセッション中の変数の現在の値を開始 パラメータとして使うことです.この場合は,`via` キーワードを含む形式が 使われます.そこでは調節可能な変数の名前だけを与える必要があります. 各繰り返しのステップの後で,推定の状態についての詳しい情報が,画面とロ グファイル "fit.log" の両方に与えられます.推定の履歴が失われないよう に,このファイルは決して消されずにいつも追加されます.各繰り返しのス テップの後でキーを押すことによって,推定処理に割り込むことができます. そして,推定を止める(パラメータの現在の値を採用する)か,推定を続ける か,環境変数FIT_SCRIPTで指定されたgnuplotのコマンド(例えば,plot コマ ンドやあるファイルの読み込みなどが便利でしょう)を実行するかの選択がで きます. 特別なGNUPLOTの変数: FIT_INDEX: 実行中は,この変数には常に1から始まる現在のデータ点の番号が入 ります.多岐推定を実装するために,これをモデルの関数の中で使 うことができます. FIT_SKIP: 推定の際にi個のデータ点をいつも読み飛ばすために,正の整数を指 定することができます.これによって,結果の厳密さを下げる代わ りに,実行速度が向上します. FIT_LIMIT: デフォルトのイプシロン限界(1e-5)の変更を指定することができま す.2回の繰り返しのステップの間で残差二乗和が,この数字の割合 より小さく変化した時に,推定'収束した' と見なします. 環境変数: FIT_LOG ログファイルのパスを'./fit.log' から変更する (書き込みの許可 が必要). FIT_SCRIPT ユーザ割り込みの後に実行するコマンドの指定. 例: f(x) = a*x**2 + b*x + c fit f(x) 'measured.dat' 'start.par' fit f(x) 'measured.dat' using 3:7 'start.par' fit f(x) './data/trash.dat' using 1:2:3 via a, b, c 参照: update 12.1. functions GNUPLOT で使える関数は,引数として,特に断らない限り,整数,実数,複素 数をとれることを除いては, Unix の数学ライブラリの対応する関数と同じも のです.BASIC で使われているような `sgn` 関数も利用可能です. abs 関数は引数の絶対値を返します.戻り値は引数と同じ型を持ちます.複 素数引数については,abs(x) は複素平面における x の長さと定義され ています.(つまり,sqrt(real(x)**2 + imag(x)**2) ) acos 関数は引数のアークコサイン(逆余弦)をラジアン単位で返します arg 関数は複素数の偏角をラジアン単位で返します. asin 関数は引数のアークサイン(逆正弦)をラジアン単位で返します. besj0 関数は引数のj0次ベッセル関数を返します.引数はラジアン単位で与え ます. besj1 関数は引数のy1次ベッセル関数を返します.引数はラジアン単位で与え ます. besy0 関数は引数のy0次ベッセル関数を返します.引数はラジアン単位で与え ます. besy1 関数は引数のy1次ベッセル関数を返します.引数はラジアン単位で与え ます. ceil 関数は引数よりも小さくない最小の整数を返します.複素数引数に対し ては,`ceil` は引数の実部よりも小さくない最小の整数を返します. cos 関数は引数の余弦を返します.引数はラジアン単位で与えます. cosh 関数は引数の双曲余弦を返します.引数はラジアン単位で与えます. erf 関数は引数の誤差関数の実部を返します.引数が複素数の場合は,虚部 は無視されます. erfc 関数は1から引数の誤差関数を引いたものを返します.引数が複素数の 場合は,虚部は無視されます. exp 関数は引数の指数関数(`e`の引数乗)を返します. floor 関数は引数よりも大きくない最大の整数を返します.複素数引数に対し ては,`floor` は引数の実部よりも大きくない最大の整数を返します. gamma 関数は引数の実部のガンマ関数を返します.整数 n については gamma(n+1) = n!です.引数が複素数の場合は,虚部は無視されます. ibeta 関数は引数の実部の不完全ベータ関数を返します.p, q > 0 かつ x は [0:1] をとります.引数が複素数の場合は,虚部は無視されます. inverf 関数は引数の実部の逆誤差関数を返します. igamma 関数は引数の実部の不完全ガンマ関数を返します.a > 0 かつ x >= 0.引数が複素数の場合は虚部は無視されます. imag 関数は引数の虚部を実数として返します. invnorm 関数は引数の実部の逆正規分布関数を返します. int 関数は引数を0に近くなるように丸めた整数を返します. lgamma 関数は引数の実部のガンマ関数の自然対数を返します. log 関数は引数の( e を底とする)自然対数を返します. log10 関数は引数の 10 を底とする対数を返します. norm 関数は引数の実部の正規分布(ガウス分布)関数を返します. rand 関数は,引数の実部を乱数種(seed)として,[0:1] 区間の疑似乱数を返 します.乱数種が負の場合(x < 0)は,系列は(再)初期化されます.引 数が複素数の場合,虚部は無視されます. real 関数は引数の実部を返します. sgn 関数は引数が正ならば1,負ならば-1,ゼロならば0を返します.引数が 複素数の場合には,虚部は無視されます. sin 関数は引数の正弦を返します.引数はラジアン単位で与えます. sinh 関数は引数の双曲正弦を返します.引数はラジアン単位で与えます. sqrt 関数は引数の平方根を返します. tan 関数は引数の正接を返します.引数はラジアン単位で与えます. tanh 関数は引数の双曲正接を返します.引数はラジアン単位で与えます. 12.2. operators GNUPLOTにおける演算子(operators)は対応するC言語の演算子と同じもので す.ただし,引数としては,特に断わらない限り,整数,実数,複素数のいず れも利用可能です.またFORTRANにある冪(べき)乗演算子**が利用可能です. 括弧を使うことによって演算の順序を変更できます. 12.2.1. binary 以下は利用可能な2項演算子とその使い方の一覧です. 記号 使用例 説明 ** a**b 冪(べき)乗 * a*b 積 / a/b 商 % a%b * 剰余 + a+b 和 - a-b 差 == a==b 等しい != a!=b 等しくない & a& b * ビット毎の AND ^ a^b * ビット毎の exclusive OR | a|b * ビット毎の inclusive OR & & a& & b * 論理的 AND || a||b * 論理的 OR ?: a?b:c * 3項演算 説明欄に星印(*)のついた演算子の引数は整数でなければなりません. 論理演算子 AND(&&) と OR(||) は,C 言語同様に必要最小限の評価しか行い ません.すなわち,&& の第2引数は第1引数が偽なら評価されませんし,|| の 第2引数は第1引数が真なら評価されません. 3項演算子はまず第1引数(a)を評価します.これが真(ゼロでない)ならば, 第2引数(b)を評価し,その結果を返します.それ以外の場合には第3引数 (c)を評価し,その結果を返します. 4 unary 以下は利用可能な単項演算子と その使い方の一覧です. 記号 使用例 説明 - -a 負符号 ~ ~a * 1の補数 ! !a * 論理的否定 ! a! * 階乗 説明欄に星印(*)のついた演算子の引数は整数でなければなりません. 階乗演算子(!)は大きな値を返せるように実数を返します. 13. help `help`コマンドは,オンラインヘルプを表示します.ある項についての説明を 指定したいときには,次の書式を使って下さい: help {<項目名>} もし<項目名>が指定されなかった場合は,GNUPLOT についての簡単な説明が表 示されます.指定した項目についての説明が表示された後,それに対する細目 名の入力を求められる場合があります.そして,その細目の説明が表示された 後に,さらなる細目名の入力を要求されることもあるでしょう.ここでリター ンキーのみを押すと1つ上の大項目へと戻ります.これを繰り返すとやが て,GNUPLOT のコマンドラインへと戻ります. 14. if `if` コマンドは,条件付でコマンドを実行させることができます. 書式: if (<条件>) <コマンド行> <条件>が評価され,もしそれが真(ゼロでない)ならば,<コマンド行>のコマン ドが実行されます.もし,<条件>が偽(ゼロ)ならば, <コマンド行>の全部が 無視されます.同じ行に複数のコマンド置くことをを可能にする';'を使え ば,条件付のコマンドが終らないことに注意して下さい. 例: pi=3 if (pi!=acos(-1)) pause 0 "?Fixing pi!";pi=acos(-1);show variables を実行すると, ?Fixing pi! Variables: pi = 3.14159 と表示されるます.また, if (1==2) pause 0 "Never see this";pause 0 "Or this either" ならば,何も表示されません. 15. load `load` コマンドは,指定された入力ファイルの各行を,それが対話的に入力 されたかのように実行します.`save` コマンドでつくられたファイルは, `load` することができます.有効なコマンドの書かれたテキストファイルを つくれば,それは,`load`コマンドによって,実行することができます. `load` 中のファイルの中にさらに `load` または `call` コマンドがあって も構いません.コマンド中のコメントについては,``comment'' を参照して下 さい. `load` コマンドは,1入力行の中の最後のコマンドでなければなりません. 書式: load "<入力ファイル名>" 入力ファイル名は引用符で囲まなければなりません. 例: load 'work.gnu' load "func.dat" GNUPLOT への引数として与えられたファイル名は,暗黙のうちに `load` コマ ンドによって実行されます.これらは,指定された順にロードされ,その 後GNUPLOT は終了します. 16. call `call` コマンドは,1つの機能以外は`load`コマンドと等価です.その機能 は,10個までのパラメータをコマンドに追加できることです (パラメータは標 準的な構文規則によって区切られます).これらのパラメータは,ファイルか ら読まれる行に代入することができます.`call` した入力ファイルから各行 が 読まれる時に,`$` (ドル記号)に続く数字(0-9)の並びを走査します.もし 見つかれば,その並びは `call` のコマンド行の対応するパラメータで置き換 えられます.`call` の行でそのパラメータが文字列として指定されているな らば,取り囲んでいる引用符が省かれて代入されます.数字以外の文字が後に 続く `$` はその文字になります (例えば,一つの `$` を得るには `$$` を使 います).`call` のコマンド行に10個より多いパラメータを与えるとエラーが 起こります.与えられなかったパラメータは,何も無しとして扱われま す.`call` 中のファイルの中にさらに `load` または `call` コマンドが あっても構いません. `call` コマンドは,1入力行の中の最後のコマンドでなければなりません. 書式: call "<入力ファイル>" <パラメータ0> <パ1> ... <パ9> 入力ファイル名は引用符で囲まなければなりません. 例: ファイル 'calltest.gp' は以下の行を含んでいるとすると: pause 0 "p0=$0 p1=$1 p2=$2 p3=$3 p4=$4 p5=$5 p6=$6 p7=x$7x" 次の行を入力すると: call 'calltest.gp' "abcd" 1.2 + "'quoted'" -- "$2" 以下のように表示されるでしょう: p0=abcd p1=1.2 p2=+ p3='quoted' p4=- p5=- p6=$2 p7=xx 17. pause `pause` コマンドは,コマンドに続く任意の文字列を表示した後,指定された 時間または,改行キーが押されるまで待ちます.`pause` コマンドは, `load` 用のファイルと共に使用すると,便利になるでしょう. 書式: pause <時間> {"<文字列>"} <時間>は,任意の整数の定数または式です.-1 を指定すると改行キーが押さ れるまで待ちます.0 を指定すると一切待たず,正整数を指定するとその秒数 だけ待ちます. 注意: `pause` コマンドは描画の一部ではないので,異なる出力装置では異な る動作をする可能性があります.(これは,テキストとグラフィックスが,ど のように混在するかによります.) 例: pause -1 # 改行キーが押されるまで待つ. pause 3 # 3秒待つ. pause -1 "Hit return to continue" pause 10 "Isn't this pretty? It's a cubic-spline." 18. plot `plot` と `splot` の両コマンドは,このプログラムの主要なコマンドです. これらは,関数やデータを実に多くの方法で表示します.`plot` は2次元的関 数やデータを表示するために使い,`splot` は3次元面やデータを表示するの に使います. 書式: plot {範囲(ranges)} {<関数(function)> | {"<データファイル(datafile)>" {using ...}}} {表題(title)} {スタイル(style)} {, <関数> {表題} {スタイル}...} splot {範囲} {<関数> | {"<データファイル>" {index i} {using ...}}} {表題} {スタイル} {, <関数> {表題} {スタイル}...} ここで,<関数>または,引用符に囲まれたデータファイル名を与えます.媒介 変数表示の場合には,関数は 2組(`plot`の場合) または 3組(`splot`の場 合)の数式です.ここでは,ユーザ定義関数や変数も利用可能です. `plot` や `splot` コマンドは, plot sin(x) や, splot x * y のような簡単な場合もあるでしょうし, plot [t=1:10] [-pi:pi*2] tan(t), "data.1" using 2:3 with lines, t**2 with points のように複雑にすることもできます. 18.1. data-file ファイルに書かれた離散的なデータは,そのデータファイル名を引用符に囲ん で `plot` や `splot` コマンド中に書くことによって,表示させることがで きます.データファイルには,1行に1つのデータ点が書かれていなければなり ません.# (VMSでは,!)で始まる行はコメントとして扱われ,無視されま す.`plot` に対しては,各データ点は (x,y) の組を表します. `splot` で は,(x,y,z)です.エラーバー付きの `plot` ( ``plot errorbars''`plot errorbars` 参照)では,各データ点は,(x,y,ydelta) または (x,y,ylow,yhigh) を表します.いずれの場合もデータファイル中の数字は, 空白文字で区切られていなければなりません.この空白文字によって,各行は 列に区切られます. `plot` コマンドについては,x の値を省略することができ,`splot` コマン ドについては,x, y の値を省略することができます. いずれのコマンドでも 省略された値には,現在の座標値が使われます.この座標値は 0 から始ま り,1つデータを読み込む毎に 1 づつふえまえす. それ以外の,入力書式を指定する場合については, ``datafile using''`plot datafile using` を参照して下さい. `plot` コマンドにおいて,データファイル中の空行は描画を中断させます. つまり,プロットスタイルが `lines` や `linespoints` だった場合に,空行 の前のデータと後のデータを結ぶ線は引かれません.( ``plot style''`plot style` 参照)なお,これはデータを異なる線でプロットするようにプロットの スタイル自身を変更するものではありません. 次の例は,population.dat というファイルのデータと,理論曲線とを比較す るというものです: pop(x) = 103*exp((1965-x)/10) plot [1960:1990] 'population.dat', pop(x) ここで,ファイル population.dat は,例えば次のようになっています: # Gnu population in Antarctica since 1965 1965 103 1970 55 1975 34 1980 24 1985 10 ファイル中のデータをプロットするときには,`samples` と `isosamples` は 無視されます.`plot` コマンドで描かれた曲線は,その曲線全体が収まるよ うに拡張されます.同様に,`splot` コマンドで描かれた格子状のデータも拡 張されます.この場合,各々の孤立した線(以後孤立線)は,空行 (CR/LF のみ の行)で分離されているものと仮定しています. 明示していませんが,3次元のデータファイルには2種類あります.もしも,全 ての孤立線が同じ長さを持つならば,それは格子状のデータであるとしていま す.つまりデータが格子状のトポロジーを持つということです.データが格子 状であるときには,各孤立線を結ぶ横断線(i 番目の横断線は孤立線の i 番目 の点を,孤立線を与えた順に全て結んだものになります.)も引かれるように なります.(等高線を描く機能は格子状データにのみ有効であることに留意し ておいて下さい.)全ての孤立線が同じ長さを持つのでなければ,横断線は引 かれず,また等高線を引くこともできません. splot では,データファイルは1つ以上のメッシュ(mesh)を含んでいても構い ません.デフォルトでは全てのメッシュが描画されます.ファイルの中で, メッシュはお互いに,2つの空行で分離されています.複数のメッシュを含む ファイルから1つのメッシュを制御しsplotするには,index 修飾子を使って下 さい.詳しくは `splot index` を参照して下さい. splot を使う際に,3次元のデータファイルと,using 書式 (`splot datafile using` 参照)によって z(高さ)のみを指定する場合は非媒介変数表示モー ド(noparametric)を指定しなければなりません.逆に,x, y, z 全てが与えら れる場合は,パラメータによって張られた面をあらわすわけですから,媒介変 数モードを指定して下さい (`set parametric` 参照). 3次元のデータファイルのによる簡単な描画例としては, set parametric splot 'glass.dat' や set noparametric splot 'datafile.dat' などが,挙げられるでしょう.ここで,datafile.dat は例えば: # Gnuの谷 10 10 10 10 5 10 10 1 10 10 0 10 などとなっています.ここで,このファイルは 3 × 4 の格子(3 点ずつの孤 立線が 4 本)をなしていることに留意して下さい.孤立線が空行によって区切 られています. UNIX などの popen の機能を持ったいくつかのシステムにおいては,データ ファイルはシェルコマンドによって実行されたプログラムからパイプ経由で取 り込むことができます.これは,ファイル名を '<' の文字で始めることに よって指定できます.例えば: pop(x) = 103*exp(-x/10) plot '< awk "{print $1-1965, $2}" population.dat', pop(x) とすることによって,最初に挙げた人口の例を x 軸について 1965 年以降に 限ることができます.この例題を実行したければ,上のデータファイルから全 ての注釈を消去しなければなりません.あるいは,上のコマンドの(カンマよ り前の)最初の部分の代わりに次のコマンドを用いる必要があります: plot '< awk "$0 !~ /^#/ {print $1-1965, $2}" population.dat' また,"y" の値だけに単一の関数を適用することも出来ます.例えば, plot 'population.dat' thru p(x) 3次元描画についてのより詳しい情報は,`splot` を参照して下さい. 18.1.1. using ファイル中のデータの書式は,`using` オプションで指定できます.明示的に scanf の書式文字列を指定することもできますし,簡単に列選択のみの指定を することもできます. 書式: plot "datafile" { using { | : | :: | ::: | :::: } {""} } ... および, splot "datafile" { using { :: | } {""} } ... ここで,, , は,スペースまたはタブによって区切られ た複数の列よりなるデータファイルにおいて,描画に使うデータの列を明示的 に指定することになります.`plot` において のみが指定された場 合, は,1 と仮定されます.`splot` において のみが指定さ れた場合,ファイルからはその列だけが読み込まれます. として 0 が 指定された場合, が座標番号(0, 1, ..)にたいして描画されます. , , は,定数,式のいずれでも指定できます. `plot` においてエラーバー(`plot errorbars` 参照)を使う場合, ydelta (例えば±の誤差)のデータを第3列におくか,ylow, yhigh のデータを 第3,4列におく必要があります. `plot`において boxes または boxerrors を使う場合,棒の幅を指定するため に第5列を使うことができます.これは,たとえ,第3, 4列を使わなくても, 与えなければならないということを意味します.もし,3列のデータファイル から棒グラフを描画したければ,次のコマンドを使って,ylowとyhighをyに設 定します: plot "datafile" using 1:2:2:2:3 with boxes scanf 文字列を指定すると,列指定はその順番以外は無視されます.つまり, plot "datafile" using 2:1 "%f%*f%f" とすると,第1列が y ,第3列が x となります. scanf 文字列が省略された場合は,列指定(:(:))に基づい て設定されます.`using` オプションが指定されなかった場合は, `plot` に 対しては "%f%f"(`errorbars` 付きの `plot` については "%f%f%f%f)が使わ れ,`splot` に対しては "%f%f%f" が使われます. 例: plot "mydata" using "%*f%f%*20[^\n]%f" with lines これで "MyData" から "%*f%f%*20[^\n]%f/" に従ってデータが読み込まれま す.この書式指定文字列の意味は: "%*f" によって最初の数が読みとばされ, "%f" によって次(2番目)の数が x として読み込まれます.続いて "%*20[^\n]" によって,最大 20 文字の改行文字でない文字が読みとばされま す.最後に "%f" によって y が読み込まれます. n=3; plot "MyData", "MyData" using n 上のようにすると,GNUPLOT は "MyData" の第1列に対して,第2,3列を描画 します.ここで 'n=4; replot' を実行すると,第1列に対して,第2, 4列を 描画します. splot "glass.dat" using 1 このようにすると,GNUPLOT は "glass.dat" の各行の最初の数を z 座標とし て描画します.このとき各行のその他の項目は無視されます. 注意: GNUPLOT は,データファイルからバッファーにまず1行読み込み, sscanf(input_buffer, scanf_string, &x, &y{, &z}); としています.ここで,'x', 'y', 'z' は,単精度浮動小数型(float)です. 2 つ(`splot` の時は3つ,`errorbars` の時は 3 または 4 つ)の単精度浮動 小数型を指定する任意の文字列が scanf 文字列として使用できます. 18.2. errorbars エラーバーは,2次元データのファイルにおいて,ydelta を指定する1つ,ま たはylowとyhighを指定する2つの追加列を読み込むことによって実現されま す.x 軸方向のエラーバーや `splot` 用のエラーバーはサポートされていま せん. 通常,GNUPLOT はデータファイルの各行に,(x, y, ydelta) の 3 つか,(x, y, ylow, yhigh) の 4 つの数値があるものとして動作します.x 座標は必ず 指定しなければなりません.各数値を書く順序も上で挙げた通りでなくてはな りません.この書式に従うデータファイルは次のようにして簡単にエラーバー つきのグラフにすることができます. plot "data.dat" with errorbars エラーバーは,(x, ylow) から (x, yhigh) への鉛直な線として描かれます. もしも ylow と yhigh の代わりに ydelta が指定されたときは,ylow = y - ydelta,yhigh = y + ydelta となります.もしもある行に2つしか数がなかっ た場合には,ylow と yhigh はともに y となります.データの各点を結ぶ線 を引きたい場合は,with errorbars と with lines を指定して,同じデータ ファイルを 2 回 `plot` して下さい. y autoscaling が on のときは,エラーバーが収まるように y の範囲が調整 されます. データファイル中の各列がどのように x, y, ydelta, ylow, yhigh に代入さ れるかを `using` オプションで指定することができます.x の列は必ずなく てはなりませんし,x, y は共にエラーバーのデータより前になくてはなりま せん.3 つの数値がある行については,それらは x, y, ydelta であるものと されます.4 つの数値がある行については,それらは x, y, ylow, yhigh で あるものとされます. 例: plot "data.dat" using 1:2:3:4 with errorbars plot "data.dat" using 3:2:6 with errorbars plot "data.dat" using 3:4:8:7 with errorbars 最初の例では,x, y, ylow, yhigh をそれぞれ第 1, 2, 3, 4 列から読み込み ます.これは何も指定しなかった場合と同じです.2 番目の例では,x を第 3 列から,y を第 2 列から,ydelta を第 6 列から読み込みます.3 番目の例 では,x を第 3 列から,y を第 4 列から,ylow を第 8 列から, yhigh を 第 7 列から読み込みます. `plot using` と ``plot style''`plot style` の各項目もあわせて参照して 下さい. 18.3. parametric 媒介変数モード(parametric mode)にあるとき(`set parametric`)には,数式 は `plot` については2つ組,`splot` については3つ組で与えられなくてはな りません.すなわち plot sin(t),t**2 や splot cos(u)*cos(v),cos(u)*sin(v),sin(u) という具合です. データファイルは通常通りに描画されます.ただし,ファイル名が指定される より前にある媒介変数表示関数は,完全な形で指定されていなくてはなりませ ん.つまり,x の媒介変数表示関数(上の例では sin(t) )と y の関数 (上で のt**2 )の間には,いかなるオプションもデータファイル名もあってはなりま せん.もし,そのようなものがあった場合は,媒介変数表示関数が完全に指定 されていないという文法エラーとなります. 範囲指定(range)は媒介変数モードでは違った意味を持ちます.`plot` コマン ドにおける最初の range は `trange` となります.次に `xrange`,最後に `yrange` となります.`splot` においては `urange`, `vrange`, `xrange`, `yrange`, `zrange` の順になります.次の例は,`trange` を [-pi:pi] に,`xrange` を [-1.3:1.3] に,`yrange` を [-1:1] に設定して `plot` す るものです. plot [-pi:pi] [-1.3:1.3] [-1:1] sin(t),t**2 `with` や `title` などのオプション類は,媒介変数表示関数が完結してから のみ指定できます. plot sin(t),t**2 title 'Parametric example' with linespoints 18.4. ranges range オプションはグラフの表示される領域を指定します. 範囲(range)は,`plot` や `splot` のコマンドラインで指定することによっ てその描画のみに影響させることも,`set xrange`, `set yrange` などでそ れ以降のデフォルトの値を変更することもできます. 書式: [{<仮変数> =} { : }] { [{ : }] } ここで <仮変数> は独立変数(デフォルトでは x と y ですが,`set dummy` で変更可能です)で,min と max の項は定数式です. min と max の項は共に省略可能です.min, max のいずれも指定されなかった 場合には,':' も省略可能です.つまり,空の領域指定として,'[ ]'が許さ れます. `plot` コマンドにおいて範囲を指定すると,その軸についての自動範囲指定 (autoscale)がオフになります.`set` による範囲指定を行った場合も,それ 以降,変更するまでの間,その軸についての自動範囲指定がオフになります. (``set autoscale''`set autoscale` 参照) 例: 現在のデフォルトの範囲を使います: plot cos(x) x の範囲のみ指定します: plot [-10:30] sin(pi*x)/(pi*x) 上と同じですが,仮変数として t を使います: plot [t = -10:30] sin(pi*t)/(pi*t) x, y 両方の範囲を指定します: plot [-pi:pi] [-3:3] tan(x), 1/x y の範囲のみを指定し,両方の自動範囲指定をオフにします: plot [ ] [-2:sin(5)*-8] sin(x)**besj0(x) xmax と ymin のみ指定します: plot [:200] [-pi:] exp(sin(x)) x, y, z 全ての範囲を指定します: splot [0:3] [1:4] [-1:1] x*y 18.5. index 複数のメッシュデータを含むファイルのsplotは,index修飾子で制御すること ができます.データファイルには1つ以上のメッシュデータを含めることがで き,その場合はデフォルトではそのファイルの中の全てのメッシュがsplotさ れます.ファイルの中で,メッシュはお互いに2つの空行によって分離されて います.複数のメッシュを含むファイルから単一のメッシュをsplotするに は,index修飾子を使ってどのメッシュをsplotするか指定します.最初のメッ シュはメッシュ0です. 例: splot "data1" index 2 with points これは,pointsでファイルdata1の3番目のメッシュをsplotします. 18.6. style グラフの表示方式には,`lines`, `points`, `linespoints`, `impulses`, `dots`, `errorbars`, `steps`, `boxes`, `boxerrorbars` の9種類がありま す. `line` は隣合う点を線でつなぎます. `points` は各点の位置にマーク を描きます. `linespoints` は `lines` と `points` の両方を行います. `impulses` ではx軸(splotにおいては底面)からの垂線を引きます. `dots` では各点の位置に小さな点を打ちます.これは,多くの点の散布図に便利で す. `errorbars` は2次元でのデータファイルからのグラフでのみ利用できます. `splot` や関数の `plot` で指定すると `points` を指定したものとします. データファイルよる `plot` では,`errorbars` は,鉛直なエラーバーが引か れることを除いては,`plot` の様に振舞います.つまり,各点 (x,y) に対し て,(x,ylow) から (x,yhigh) への線が引かれることになります.エラーバー の両端はくさび型になっています.ylow と yhigh の値は,データファイルか ら `using` オプションに従って読み込まれます.より詳しい情報は, ``plot errorbars''`plot errorbars` を参照して下さい. `boxes` は2次元のグラフでのみ利用できます.また,`boxerrorbars` と呼ば れる別のスタイルも,2次元のデータファイルからのグラフでのみ利用できま す.このスタイルは `boxes` と `errorbars` スタイルの組合せです. `boxes` スタイルは,与えられたx座標を中心とし,x軸から与えられたy座標 までの棒を描きます.棒の幅は3つの方法のうちのいずれか1つで得ます.1番 目の方法としては,もし,データファイルが第5列目を有していれば,これを 棒の幅として使います.`boxerrorbars`の場合,3, 4列目は必要ですが,この 時は無視されます. 2番目の方法としては,`set boxwidth` コマンドを使っ て幅がすでに設定されている場合は,これが使われます.それ以外の場合に は,隣り合う棒と接するように各々の棒の幅が自動的に計算されます. `step` は2次元のグラフでのみ利用できます.このスタイルは連続する点 を2つの線分で結びます: 1つめは (x1, y1) から (x2, y1) 2つめは (x2, y1) から (x2, y2) です. デフォルトの線種は `set function style` と `set data style` で指定でき ます. デフォルトでは,各々の関数やデータファイルは,可能な限り異なる線種や点 種を持ちます.全ての端末装置は最低でも 6 種類の点種を持っていて,それ を越えると順に再使用されます.LaTeX ドライバはさらに 6 つの点種(いずれ も円の変種です)を持っているので,12 のグラフが描かれた後にのみ同じもの が使われます. 必要ならば,グラフ毎に表示方式とその線/点種を指定することができます. 書式: with <表示方式> {<線種> {<点種>}} ここで,<表示方式> は,`lines`, `points`, `linespoints`, `impulses`, `dots`, `steps`, `errorbars` の中のいずれかです.<線種> と <点種> は正 整数を表す定数または式で,その描画の線や点の種類を指定します.線種 1 はデフォルトで最初に使われる線種で,線種 2 は,2番目に使われるもので す.以下同様に指定できます. 例: sin(x) を鉛直線で描画します: plot sin(x) with impulses x*y を点で描画し,x**2 + y**2 をデフォルトの方式で描画します: splot x*y w points, x**2 + y**2 tan(x) を関数のデフォルトの方式で,"data.1" を折れ線で描画します: plot [ ] [-2:5] tan(x), "data.1" with l "leastsq.dat" を鉛直線で描画します: plot 'leastsq.dat' w i データファイル 'population' を矩形で描画します: plot "population" with boxes "exper.dat" をエラーバー付きおよび折れ線で描画します: plot 'exper.dat' w lines, 'exper.dat' w errorbars ここで 'exper.dat' は 3または4個の列を持っている必要があります. x**2 + y**2 と x**2 - y**2 を同じ線種で描画します: splot x**2 + y**2 with line 1, x**2 - y**2 with line 1 sin(x) と cos(x) を折れ線およびマーカーで描画します.折れ線は同じ線種で すがマーカーは異なったものを使います: plot sin(x) with linesp 1 3, cos(x) with linesp 1 4 "data" を点種 3 で描画します. plot "data" with points 1 3 ここで点種を指定するためには,例え線を使わなくても線種を必ず指定しなけ ればならないことに留意して下さい.この例では,線種 1 と点種 3 を指定し ていますが,線種は意味を持ちません. デフォルトの表示方式の変更方法については,`set style` を参照して下さ い. 18.7. title 各グラフの表題はキー欄の中に現れます.デフォルトでは plot コマンドで用 いた関数式またはファイル名が表題として使われますが,`title` オプション を使うことによって変更できます.このオプションは `with` オプションより も前になくてはなりません. 書式: title "<表題>" ここで <表題> はグラフの表題です.この文字列は引用符で囲まれていなけれ ばなりません.キー欄にはこの引用符は表示されません. 例: y=x を 'x' という表題で表示します: plot x "glass.dat" というファイルを '回転体の表面' という表題で表示します: splot "glass.dat" title '回転体の表面' x の自乗を表題 "x^2" で,"data.1" を表題 '測定データ' で表示します: plot x**2 title "x^2", "data.1" t '測定データ' plot や splot において,"notitle" オプションをでキー欄から表題を省略す ることができます.いくつかの曲線を飾りのために単独に描く場合に便利で す.例えば,ある人が極座標描画で円周の縁が必要な場合には, 例: set polar plot my_function(x), 1 notitle と書く.これは "my_function" に対するキーの見出しを作るが,"1" に対し ては作らない. poldat.dem の例を参照して下さい. 19. print `print` コマンドは <式> の値を画面に表示します. 書式: print <式> `expressions` を参照して下さい. 20. pwd `pwd` コマンドはカレントディレクトリの名前を画面に表示します. 書式: pwd 21. quit `exit` と `quit` の両コマンドと END-OF-FILE 文字は,GNUPLOT を終了させ ます.これらのコマンドは,出力装置を `clear` コマンドと同様にクリアし てしてから終了させます. 22. replot `replot` コマンドを引数なしで実行すると,最後に実行した `plot` または `splot` コマンドを再実行します.これは,あるプロットを異なる `set` オ プションでみたり,同じプロットを異なる装置に出力したりするときに便利で しょう. `replot` コマンドに対する引数は最後に実行した `plot` または `splot` コ マンドの引数に(暗黙の ',' と共に)追加され,それから再実行されます. `replot` は,範囲 (range) を除いては,`plot` や `splot` と同じ引数をと ることができます.最後に実行した `plot` (`splot`) コマンドの内容を修正 する方法については `command line-editing` を参照して下さい. 23. reread `reread` コマンドは,`load` コマンドまたはコマンドラインで指定した gnuplot のコマンドファイルを,その先のコマンドが読まれる前に,開始点に 再設定する.これは,コマンドファイルの最初から `reread` コマンドまでの コマンドの無限ループを本質的に実装したものである.標準入力からの入力の 場合は,`reread` コマンドは何も影響がない. 24. save `save` コマンドは,ユーザ定義関数,変数,set で設定するオプションのい ずれかか,これらすべてと,それに加えて最後に実行した `plot` または `splot` コマンドを指定したファイルに保存します. 書式: save {<オプション>} "<ファイル名>" ここで,<オプション> は,`functions`, `variables`, `set` のいずれかで す.どれも指定されなかった場合には,GNUPLOT は,ユーザ定義関数,変数, set で設定するオプション,最後に実行した `plot` または `splot` コマン ドの全てを保存します. `save` は,テキスト形式で出力します.また,このファイルは `load` コマ ンドで読み込むことができます. ファイル名は引用符に囲われていなければなりません. 例: save "work.gnu" save functions 'func.dat' save var 'var.dat' save set "options.dat" 25. set-show `set` コマンドは実に多くのオプションを設定します. `show` コマンドはそれらの設定値を表示します.`show all` でそれら全てを 表示します. 25.1. angles GNUPLOT は,デフォルトでは,極座標形式のプロットの独立変数の単位として ラジアンを使います.`set polar` より先に `set angles degrees` を指定す ると,デフォルトの範囲は [0:360] に変更され独立変数は度を単位とするよ うになります.これは,データファイルからプロットするときに特に便利で しょう.angle の設定は3次元でも `set mapping` とともに使用することに よって同様な効果があります. 書式: set angles { degrees | radians } show angles 25.2. arrow `set arrow`コマンドを使うことにより,グラフ上の任意の位置に矢印を表示 させることができます. 書式: set arrow {<タグ>} {from ,{,}} {to ,{,}} {{no}head} set noarrow {<タグ>} show arrow 座標値が省略された場合は,0 が指定されたことになります.x,y,z の各値 は,グラフの座標系で指定します.z 値は `splot` の場合のみ指定できま す.<タグ> とは各矢印を識別する整数です.タグが指定されなかった場合 は,その時点で未使用の最も小さい数が自動的に割り当てられます.タグを使 うことによって,ある特定の矢印を変更したり,削除したりできます.既に存 在する矢印のある事項を変更したい場合は,タグを明示した `set arrow` コ マンドで変更箇所を指定して下さい.nohead を指定することによって矢先の ない線分を描かせることもできます.デフォルトでは,矢先がついています. グラフの枠からはみ出すような矢印を書くこともできますが,装置によって は,エラーを生じることがあります. 例: 原点から (1,2) への矢印を描きます: set arrow to 1,2 (-10,4,2) から (-5,5,3) への矢印を描き,番号 3 を振っておきます: set arrow 3 from -10,4,2 to -5,5,3 上の矢印を (1,1,1) から始まるように変更し,かつ矢先を消します: set arrow 3 from 1,1,1 nohead 第2矢印を消します: set noarrow 2 全ての矢印をけします: set noarrow 全ての矢印の情報をタグの順に表示します: show arrow 25.3. autoscale 自動縮尺機能(autoscale)は x,y,z の各軸に対して独立にまたは一括して指 定できます.デフォルトでは全ての軸に対して自動縮尺設定を行います. 自動縮尺機能を使うときは,描画範囲は自動的に割り出され,従属変数軸 (`plot` のときは y 軸,`splot` のときは z 軸)は,関数やデータの値域が 収まるように設定されます. 従属変数軸の自動縮尺機能が指定されていない場合は,現在の y や z の描画 範囲がそのまま使われます. `set yrange` や `set zrange` を参照して下さい. 独立変数軸(`plot` のときは x 軸,`splot` のときは x, y 軸)の自動縮尺機 能が指定されている場合は,描画されるデータファイルの全ての点が収まるよ うに定義域をとるようになります.データファイルが1つも指定されていない 場合は,自動縮尺機能はなんの効果もありません.つまり,関数のみが指定さ れていてデーターファイルを使わない場合は,x 軸の描画範囲(z = f(x,y) を 描画しているときはy軸も)は影響をうけません. `set xrange` や `set yrange` を参照して下さい. 媒介変数モード(parametric)を使う場合も自動縮尺機能は有効です.この場 合,より多くの従属変数があるので,x, y, z 各軸を制御する機会が増えま す.媒介変数モードでは,独立変数は `plot` については t で,`splot` に ついては u, v です.よって,自動縮尺機能は,全ての描画範囲 (t, u, v, x, y, z) を制御することになり,x, y, z軸方向については常に自動的に範囲 設定が行われます. `set parametric` も参照して下さい. 書式: set autoscale <軸> set noautoscale <軸> show autoscale ここで<軸>は,`x`, `y`, `z`, `xy` のなかのいずれかです.<軸>が指定され なかった場合は全ての軸が対象となります. 例: y 軸に自動縮尺機能を指定します.x 軸については影響を与えません: set autoscale y x,y 両軸に自動縮尺機能を指定します: set autoscale xy x,y,z 全軸に自動縮尺機能を指定します: set autoscale x,y,z 全軸の自動縮尺機能を禁止します: set noautoscale z 軸のみについて自動縮尺機能を禁止します: set noautoscale z 25.3.1. parametric mode 媒介変数表示モード(`set parametric`)においては,xrange も yrange と同 様に縮尺を変えることができます.つまり,媒介変数モードにおいては,x 軸 方向も自動的に縮尺が調整され,描こうとしている,媒介変数表示の関数が収 まるようになります.もちろん,y軸方向も媒介変数モードでない時同様に自 動的に縮尺を変えます.x 軸について自動縮尺機能が設定されていない場合 は,現在の x の範囲が使われます. データファイルと関数が混在している場合,x 軸方向の自動縮尺機能が設定さ れているならば,関数の x 軸方向の描画範囲は,データファイルの自動縮尺 に合わせられます.このように現在は媒介変数表示でない場合との互換性を とってありますが,将来変更されるかもしれません.これは,媒介変数表示モ ードにおいては,そうでないときほど x 軸と y 軸の区別が無いために,この ような動作が多くの場合に便利でないかもしれないという考えによるもので す. 片手落ちにならないように `set autoscale t` というコマンドも使えるよう になっています.しかしその効果は非常に小さいものです.自動縮尺機能が設 定されていると,GNUPLOT が t の範囲が無くなってしまうと判断した場合に 範囲を少し調整します.自動縮尺機能が設定されていないと,このようなとき にはエラーとなります.このような動作は実はあまり意味がない可能性があ り,結局 `set autoscale t` というコマンドは存在意義が問われるべきもの となっています. `splot` においては上記の発想に基づいたうえで拡張されています.自動縮尺 機能が設定されている場合,x, y, z の各描画範囲は計算結果が収まるように 設定され,縮尺調整されることになります. 25.4. border `set border` と `set noborder` の両コマンドは,`plot` や `splot` によ るプロットのまわりに枠を表示するかどうかを指定します. 書式: set border set noborder show border 25.5. boxwidth `set boxwidth` コマンドは,`boxes` と `boxerrorbar` スタイルにおける棒 のデフォルトの幅を設定するために使います. 第5列で指定される幅のないデータファイルの描画や,関数の描画の場合は, 各々の棒の幅は `set boxwidth` によって設定します.もし,`set boxwidth` コマンドの後ろに幅を与えると,それが幅として使われます.そうでない場合 は,隣り合う棒と接するように各々の棒の幅が自動的に計算されます. 書式: set boxwidth {<幅>} show boxwidth 棒の幅を自動に設定するには set boxwidth を使って下さい. 25.6. clabel GNUPLOT は,clabel が設定されている時には,各々の等高線のレベルに対し て使う線種を変化させます.このオプションが指定されていると(デフォル ト),凡例によって,各々の線種をそれが表すzのレベルとともに分類されま す. 書式: set clabel set noclabel show clabel 25.7. clip GNUPLOT はグラフの端の辺りのデータ点や線をクリッピングすることができま す. 書式: set clip <クリップ型> set noclip <クリップ型> show clip クリップ型として GNUPLOT は `points`, `one`, `two` の3種を扱えます.あ る描画に対して,これらのクリップ型は任意の組み合せで設定することができ ます. クリップ型 `points` を設定すると,描画領域内にはあるけれど境界線に非常 に近いような点をクリップする(実際には描画しないだけですが)ように GNUPLOT に指示します.これは点として大きなマークを使用したときに,その マークが境界線からはみ出さないようにする効果があります.`points` をク リップしない場合,境界線の辺りの点が汚く見えるかもしれません.その場 合,x や y の描画範囲(xrange, yrange)を調整してみて下さい. クリップ型 `one` を設定すると,一端のみが描画領域にあるような線分も描 画するように GNUPLOT に指示します.この際,描画領域内にある部分のみが 実際に描画される範囲です.設定しなかった場合,このような線分は描画対象 とならず,どの部分も描画されません. 両端は共に描画範囲に無いが描画領域を通過するという線分もあります.ク リップ型 `two` を設定することによって,このような線分の描画領域の部分 を描画することができます. どのような状況でも,描画範囲の外に線が引かれることはありません. デフォルトでは,`noclip points`, `clip one`, `noclip two` となっていま す. 全てのクリップ型の設定状況を見るには, show clip とします. 過去のバージョンとのとの互換性のため以下の書式も使用可能です. set clip set noclip `set clip` は `set clip points` と同義です.`set noclip` は3種のクリッ プ型全てを無効にします. 25.8. cntrparam 等高線を引くための種々のパラメータを設定します(`contour` も参照して下 さい). 書式: set cntrparam { { linear | cubicspline | bspline } | points | order | levels { [ auto ] | discrete ,, ... | incremental {<開始値>, <増分値>{, <終了値>} } } 例: set cntrparam bspline set cntrparam points 7 set cntrparam order 10 set cntrparam levels auto 5 # 5つの自動設定のレベル set cntrparam levels discrete .1,1/exp(1),.9 # 3つの離散設定 .1,.37,.9 set cntrparam levels incremental 0,.1,.4 # 5つの等増加する高度 0, .1, .2, .3, .4 set cntrparam levels 10 # n = 10 に設定する.現在設定されている auto か discr. か increment の # 開始値と増分値は保持されたまま,一方,終了値は変化する. set cntrparam levels incremental 100,50 # 開始値 = 100, 増分 = 50 に設定します. レベルの数 nは保持されたまま. このコマンドは等高線がどのように引かれるかを制御します. は整数型の 定数式,, は任意の定数式とします.各変数の意味は次のとおりで す: `linear`, `cubicspline`, `bspline` --- 近似(補間)方法を指定します. `linear` ならば,等高線は曲面から得られた値により,区分的に直線で引か れます.`cubicspline` ならば,区分的な直線は,波打つ可能性があります が,いくぶんなめらかな等高線を得られるように補間されます.3番目の選択 枝は `bspline` です.これは区分的な直線から近似値を求めるだけですが, よりなめらかになることが保証されています. `points` --- 最終的には,全ての描画は,区分的な直線で行われます.ここ で指定した数が曲線を補間する点の数になります.これは `cubicspline` と `bspline` についてのみ有効です. `order` --- bspline 近似の次数.この次数が大きくなるに連れて,等高線が なめらかになります.(もちろん,高次の bspline 曲線ほど元の区分的直線か らは離れていきます) このオプションは,`bspline` モードでのみ有効です. 指定できる値は,2 (直線)から 10 までの整数です. `levels` --- 等高線のレベルの数, n. レベルの選択は,`auto` (デフォル ト), `discrete`, `incremental` によって制御します.`auto` では,曲面 の上下限が zmin と zmax の場合には,等高線を zmin+dz から zmax-dz まで の間に,大きさ dz の刻みで引きます.ここで,dz = (zmax - zmin) / (levels + 1) です. `discrete` では,等高線を,指定されたように z = z1, z2 ... で引きます.離散的なレベルの数は,MAX_DISCRETE_LEVELS が上 限です.これは,plot.h の中で 30と定義されています.`increment` の場合 は,<開始値> で始まり, <増分値> で増加する, 個の z の値に対して等 高線を引きます. 25.9. contour 曲面の等高線を引くことを指示します.このオプションは `splot` でのみ有 効です. 書式: set contour { base | surface | both } set nocontour もしも `set contour` に対してオプションが指定されていないときは, `base` であると仮定されます.これらの 3 つのオプションは等高線をどこに 引くかを指定します.`base` では等高線を x/y 軸の刻みのある底面に描きま す.`surface` では等高線を面自体の上に描きます.`both` では等高線を底 面と面上の両方に描きます. 等高線の描画に影響を与えるパラメータについては `set cntrparam` も参照 して下さい. 25.10. data style `set data style` コマンドはデータのプロットに関するデフォルトのプロッ トスタイルを変更します. 書式: set data style show data style set data style <プロットスタイル> 最初の例では,`set data style` は選択可能なプロットスタイル(`lines`, `points`, `linespoints`, `dots`, `steps`, `impulses`, `errorbars`, `boxes`, `boxerrorbars`)を表示します.`show data style` は現在のデータ 用のデフォルトのプロットスタイルを表示します.`set data style dots` で 実際にプロットスタイルを変更します.`plot` も参照して下さい. 25.11. dgrid3d 非格子データから格子データへの写像機能を有効にし,種々のパラメータを設 定します. 書式: set dgrid3d {,{<行数>}{,{<列数>}{,<ノルム>}}} set nodgrid3d 例: set dgrid3d 10,10,2 set dgrid3d ,,4 最初の例は,構成する格子を10×10に選び,距離の計算に L2 ノルムを使いま す. 2番目の例は,使用するノルムをL4に変更するだけです. デフォルトでは,このオプションは無効になっています.有効にした時は, ファイルから読み込まれる3次元のデータは,散在するデータの組として常に 扱われます.グラフ描画と等高線描画のために,散在するデータを囲む矩形領 域から得られる寸法と行数/列数で指定した数を持つ格子が作られます.その 格子は,xとy方向には等間隔です.一方,zの値は,格子点への距離で重み付 けしたデータ点の平均値として計算されます.格子点に近いデータ点ほど,そ の格子点に与える影響がより強くなります.3番目のパラメータ(ノルム)は, 距離ノルムを指定することによって距離の「意味」を制御します.この距離の 計算は,2の階乗(特に,1, 2, 4, 8, 16)に対して最適化されていますが,任 意の非負の整数を使うことができます. この grid3d オプションは,散在するデータを格子データの組に変換する簡単 なローパスフィルタです.この問題に対するもっと洗練された手法が存在しま す.もし,grid3dの簡単な解が不十分だと感じたら,そのような手法を gnuplot の外側で前処理として使うべきでしょう. 25.12. dummy デフォルトでは GNUPLOT は,`plot` コマンドの独立変数として x を, `splot` コマンドの独立変数として x と y を仮定しています.これらは独立 変数を示すための単なる記号であ ることから仮(dummy)変数と呼ばれます. `set dummy` コマンドは,これらのデフォルトの仮変数の名前を変更します. 例えば,時間の関数を表示するのには,仮変数を t と呼んだ方が便利でしょ う: set dummy t plot sin(t), cos(t) 書式: set dummy <仮変数名>{,<仮変数名>} show dummy 例: set dummy u,v set dummy ,s 前者は,仮変数を u と v に変更し,後者は,2番目の変数のみを(s に) 変更 します. `set parametric` コマンドも仮変数を変更します.(`plot` 用には t, `splot` 用には,u, v) 25.13. format `set format`コマンドによって座標軸の刻み見出しの書式を指定することがで きます.デフォルトではいずれの軸も "%g" を使います.しかし, "%.2f" や "%3.0fm" といった書式の方が好ましいことも多いでしょう.printf 関数が double 型の変数の書式として受け付けるものであって,かつ出力装置が受け 付けるものであればどのような指定をしても構いません.特に挙げると,f, e, g などは使えますが,d, o, x, c, s, u などは使えません. 書式: set format {<軸>} {"<書式文字列>"} show format ここで,<軸> は `x`, `y`, `z`, `xy` のいずれかです.省略時は `xy` を意 味することになります.printf 関数によって置き換えられた後の文字列の長 さは 100 文字に制限されています.書式文字列を省略した場合は,デフォル トの "%g" に戻ります.LaTeX を使う場合には "$%g$" を指定するとよいで しょう.空の文字列 "" が指定された場合,刻み自身は表示されますが,見出 しは表示されないようになります.刻み自身を消す場合は,`set noxtics` や `set noytics` を使用して下さい. 刻みについてのより詳しい制御については,`set xtics` や `set ytics` も 参照して下さい. 25.14. function style `set function style` コマンドは関数描画の方法を変更します. 書式: set function style show function style set function style <描画方法> 最初の例では,`set function style` は可能な描画方法を表示します: `lines`, `points`, `linespoints`, `dots`, `steps`, `impulses`, `errorbars`, `boxes`, `boxerrorbars`. `show function style` は現在設 定されている,関数の描画方法を表示します. `set function style linespoints` は実際に描画方法変更するように指定します. `plot` も参照 して下さい. 25.15. functions `show functions` コマンドはユーザーが定義した関数とその定義内容を表示 します. 書式: show functions 25.16. grid この,`set grid` によって刻みの位置に座標軸と同じ線で枠が描かれるよう になります. 書式: set grid set nogrid show grid 25.17. hidden3d `set hidden3d` コマンドは明示的な面描画(`splot` 参照)での陰線処理を行 うように指示します.陰線処理は,陽関数と明示的なデータの描画に使うこと ができます.媒介変数で表示される曲面に対しても動作します. この機能が有効なときは,隠れた格子だけでなく,隠れた面の部分や隠れた等 高線(`set contour` 参照)も表示されません.見出しと矢印は常に表示される ので,この機能によって影響をうけることはありません. 同時に複数の面を描画した場合は,陰線処理は自らの曲面と他の曲面について も行われます.この機能は,面が線(line style)で描画された時のみに意味が あります. 書式: set hidden3d set nohidden3d show hidden3d 25.18. isosamples 孤立線は面を記述する2つの媒介変数のうちの1つを固定した時に現れる曲線で す.孤立線による表現は,面を表示する簡単な方法です.面 s(u,v) の媒介変 数 u を固定することによって,c(v) = s(u0,v) というu一定の線ができま す.また v を固定することによって,c(u) = s(u,v0) というv一定の線がで きます. 面の孤立線の密度は `set isosamples` コマンドで変更できます.デフォルト では,サンプル数は u/v 軸につき 10 本の孤立線を引くようになってます. この数値を増やすことによってより正確な描画ができますが,動作が遅くなり ます.なお,このパラメータはデータファイルの描画には何も影響を与えませ ん. 書式: set isosamples <式1> {,<式2>} show isosamples 各々の面描画は,<式1>本の u 孤立線と,<式2> 本の v 孤立線を表示するよ うになります.<式1>しか指定しなかった場合は,<式2>は<式1>と同じ値に設 定されます. 面描画が隠線処理なしで行われた時は,`set samples` も,計算が行われる点 の数に影響を及ぼします.`set samples` を参照して下さい. 25.19. key `set key` コマンドは描画された曲線の説明を表示すように指示します.デ フォルトではこの説明はグラフの右上の角に表示されます. 書式: set key set key ,{,} set nokey show key 座標 , , (`splot` においては も) は,この説明をどこに配置す るかを指定します.この説明は,1行に1曲線分ずつ曲線の数だけ表示されま す.各行には右側に曲線と同じ種類の直線が引かれ,その左側に `plot`コマ ンドから得られる文字列を表示します.この文字列を変更する方法については `plot title` を参照して下さい.これらの行は,架空の直線が説明の左側 (文字)と右側(直線)を分けるのように,垂直に整列されます.`set key` コマ ンドで指定するは,この直線の座標です.`plot` では,直線の位置を指定す るために x と y だけが使われ,`splot` では,架空線の2D画面上での位置を 作るためにグラフ描画と同じ変換を使って,3Dの位置として,x, y, z の全部 が使われます. 場合によってはこの説明の一部または全部が境界の外にはみ出すこともありま す.この場合見出しなどと重なってしまうこともあり,また出力装置によって はエラーを生じることもあります. 例: デフォルトの位置に説明を表示します: set key 説明を表示しなくします: set nokey 説明を (2, 3.5, 2) の位置に表示します: set key 2,3.5,2 25.20. label `set label` コマンドを使うことによって任意の見出しをグラフ中に表示する ことができます.`plot` コマンド使用時には z 座標は無視されます. `splot` においてこれが指定されていないときは 0 であると仮定されます. 書式: set label {<タグ>} {"<見出し文字列>"} {at ,{,}} {<そろえ位置>} set nolabel {<タグ>} show label 文字列を省略した場合は "" であるとされます.位置を省略した場合は 0, 0, 0 であるとします., , は全て,グラフと同じ座標系で指定しま す.<タグ> は見出しを識別するための整数値です.<タグ> を指定しなかった 場合未使用のもので最も小さい値のものが自動的に使われます.<タグ> は特 定の見出しを削除したり変更したりするのに使用できます.変更したい見出し のタグ番号を使って,`set label` コマンドを使用し,変更したい項目のみ指 定して下さい. デフォルトでは,指定した x, y, z の点に文字列の左端来るように配置され ます.これを変更する場合,<そろえ位置> を指定して下さい.<そろえ位値> としては,`left`, `right`, `center` のいずれかが指定できます.これらは それぞれ,指定した点に文字列の左,右,中央が来るように指定します.描画 領域からはみ出すような指定も許されますが,座標軸の見出しや他の文字列と 重なる場合があります. 例: (1,2) の位置に "y=x" と書く場合: set label "y=x" at 1,2 "y=x^2" をその右端が (2,3,4) に来て,タグ番号 3 を使いたい場合: set label 3 "y=x^2" at 2,3,4 right 先の見出しを中央ぞろえに変更したい場合: set label 3 center タグ番号 2 の見出しを削除する場合: set nolabel 2 全ての見出しを削除する場合: set nolabel 全ての見出しをタグ番号順に表示する場合: show label (EEPIC と Imagen と LaTeX と TPIC 出力する場合は,文字列中に \\ を入れ ることによって改行させることができます) 25.21. logscale 対数スケールは,x, y, z の各軸について設定できます. 書式: set logscale <軸> <底> set nologscale <軸> show logscale ここで,<軸> は,`x`, `y`, `z` の任意の順序による組み合せが可能です. また,<底> は,対数スケールの底です.<底> が指定されなかった場合は, 10 になります.もし,<軸> が指定されなかった場合は,全部が指定されたこ とになります.`set logscale` コマンドが指定された軸の対数スケールを有 効にし,`set nologscale` で解除します. 例: x, z 両軸について対数スケールを設定する: set logscale xz y 軸について底2とする対数スケールを設定する: set logscale y 2 z 軸の対数スケールを解除する: set nologscale z 25.22. mapping 書式: set mapping { cartesian | spherical | cylindrical } `splot` におけるデータは通常はユークリッド(Euclidean)空間でのカーテシ アン(Cartesian)座標系で与えられます.このような3次元データは(x,y,z) の3つの数値または z 座標のひとつの数値を1行に書くことによって与えられ ます.`set mapping` コマンドを使うことによって,これを球(spherical) 座 標系や円筒(cylindrical)座標系に変更することができます.いずれの場合 も,1行につき2つの数値を与えることになります.球座標系の場合,これらは theta と phi (単位は `set angles` で指定したもの)でこの場合 x = cos( theta ) * cos( phi ) y = sin( theta ) * cos( phi ) z = sin( phi ) と変換されます.円柱座標系の場合,theta (単位は `set angles` で指定し たもの)と z を与え, x = cos( theta ) y = sin( theta ) z = z と変換されます.なお,この `mapping` の機能はデータファイルの `splot` のみに影響することに留意して下さい. 25.23. offsets グラフにおける描画素領域は `set offsets` によって,ある程度制御するこ とができます.このコマンドは,4つの引数(<左>, <右>, <上> , <下>)をとり ます.デフォルトでは,このオフセットは 0 です.各オフセットは定数でも 式でも構いません.左右のオフセットは x 軸と同じ単位で指定し,上下のオ フセットは y 軸と同じ単位で指定します.sin(x) をオフセット 0, 0, 2, 2 で表示させると,その曲線は表示される y の範囲の 1/3 を占めます.オフ セット機能は極座標を使う場合に縦横比を調整する上で特に重宝しま す.`splot` ではオフセットは無視されます. 書式: set offsets <左>, <右>, <上> , <下> show offsets 25.24. output デフォルトでは,グラフは標準出力に出力されます.`set output` コマンド は,出力をファイルやデバイスにリダイレクトします. 書式: set output {"<ファイル名>"} show output ファイル名は引用符に囲まれていなければなりません.ファイル名が与えられ なかった場合は,出力は標準出力に送られるようになります. UNIX などの popen の機能を持ったいくつかのシステムにおいては,出力は シェルコマンドによって実行されたプログラムに対してパイプ経由で送ること ができます.このためにはファイル名として '|' で始まるコマンドを与えて 下さい.例を挙げます: 書式: set output "|lpr -Plaser filename" set output "|lp -dlaser filename" (MSDOS ではファイル名として "prn" を指定すると標準のプリンタに出力する ことができます.) 25.25. parametric `set paramaetric` コマンドは `plot` および `splot` の意味を通常の関数 描画から媒介変数表示(parametric)関数描画に変更します.`set noparametric` を使えば元の描画モードに戻ります. 2次元グラフにおいては,媒介変数表示関数はひとつの媒介変数に対する2 つ の関数で定められます.例としては plot sin(t),cos(t) とすることによって 円が描けます. 3次元グラフにおいては面は x = f(u,v), y = g(u,v), z = h(u,v) で定めら れます.よって3つの関数を組で指定する必要があります.例としては, splot cos(u)*cos(v),cos(u)*sin(v),sin(u) とすることによって球面が描け ます.ひとつの曲線につき,2つの媒介変数に関する3つの関数が必要となるわ けです. これによって表現できる関数群は,単純な f(x) 型の関数群の内包することに なります.なぜならば,2つ(3つ)の関数はx,y (,z)の値を独立に計算する記 述ができるからです.実際, t,f(t) ( u,v,f(u,v) ) のグラフは,一番目の 関数のような恒等関数を用いてxの値が計算される場合にf(x)によって生成さ れるグラフと等価です. 媒介変数表示関数は,xの関数,yの関数 (,zの関数)の順に指定し,それらは 共通の媒介変数およびその変域で定義されることに留意して下さい. さらに,`set parametric` の指定は,新しい変数変域を使用することを暗に 宣言します.通常の f(x) や f(x,y) が xrange, yrange (, zrange) を使用 するのに対して,媒介変数モードではそれに加えて, trange, urange, vrange を使用します.これらの変域は `set trange`, `set urange`, `set vrange` によって指定することも,直接 `plot` や `splot` で指定すること もできます.現時点では,これらの媒介変数のデフォルトの変域は [-5:5] と なっています.将来的にはこれらのデフォルト値をもっと有意なものに変更す る予定です. 25.26. polar `set ploar` コマンドはグラフの描画方法を直交座標系から極座標系に変更し ます.極座標系では,仮変数 x は角度を表します.そしてその変域はそれま での設定値に関わらず, `set angles` の設定により [0:2*pi] (ラジアン), あるいは,度単位が選ばれていれば,[0:360] (度)に変更されます (`set angles` 参照). `set nopolar` によって描画方法を元の直交座標系に戻します.x の変域は強 制的に [-10:10] に変更されます. `set poloar` コマンドは `splot` には対応していません.`splot` に対する これに似た機能については `set mapping` を参照して下さい. 極座標モードの間は x の関数は r = f(x) を指定することになります.ここ で x は回転角を表します.xrange によって角度の変域を指定し, yrange に よって動径の変域を指定します.グラフは四角い領域の中に描画され x 座標 と y 座標の単位は動径と同じです.つまり,yrange が出力における両方向の 変域を定めることになります.軸方向の刻みは,左と下ではなく座標軸上に刻 まれることになります.これらの値は,`rrange` (`set rrange` 参照) で指 定された をオフセットとして持ちます.x 軸方向と y 軸方向に異な る単位長を指定することはできません.yrange は第1 ないしは第3象限のみを 表示するための指定にも使えます. 書式: set polar set nopolar show polar 例: set polar plot x*sin(x) plot [-2*pi:2*pi] [-3:3] x*sin(x) 始めの例は 0 から 2 pi というデフォルトの角度変域を使います.動径とグ ラフの大きさは自動的に拡大縮小されます.2番目の例は仮変数の変域を拡張 して,動径方向の変域(とグラフの大きさ)を [-3:3] に制限しています. 25.27. rrange `set rrange` コマンドは極(polar)座標モードでの x値,y値を求めるときの 動径方向の変域を指定します.極座標モードでないときは何の影響もありませ ん.(`set polar` 参照) このコマンドを使うことによって極の中心における 値に のオフセットを設定し,動径方向の単位を平行移動させます.例 えば,`set rrange [-40:40]` とすると,極の中心を -40 として,動径方向 に -40 から 40 の範囲の値を描画します.よって,360度分のデータを描画す ると中心から80単位分の距離のグラフとなります.グラフ全体を見渡す場合 は,`set yrange [-80:80]` とすることによって,正方形の描画領域が設定さ れ,円を描くと軸に接するようになります.xrange は角度の変域を定める目 的に使われるため,yrange の設定によって描画領域は必ず正方形になりま す.例えば `set yrange [0:80]` とすると第1象限が,`set yrange [-80:0]` とすると第3象限が表示されます.正方形でさえあればどのような描画領域で も設定できますが,極の中心は必ず右上と左下を結ぶ45度線上に来ることにな ります. この rrange は,極座標モードであるときには `plot` コマンド中で直接指定 することもできます. 書式: set rrange [{ : }] は定数または式です. は共に省略可能です.省略した部分はそれ以前の値のまま に留まります.よって set rrange [:10] とすると を 10 にしますが, は変更されません. 25.28. samples 関数のサンプリング数は `set samples` コマンドで変更できます.デフォル トでは,サンプル数は100点となっています.この値を増やすとより正確な描 画ができるようになりますが,遅くなります.このパラメータは,データファ イルの描画には何の影響も与えません. 書式: set samples <式1> {,<式2>} show samples 2次元のグラフ描画が行われる時は,<式1>の値だけが関係します. 隠線処理なしで面描画が行われる時は,式の値は,孤立線毎に計算が行われる サンプル点の数を指定します.各,v 孤立線は<式1>個のサンプル点を持ち, 各 u 孤立線は<式2>個のサンプル点を持つようになります.<式1>しか指定し ない場合は,<式2>は<式1>と同じ値に設定されます. `set ispsamples` も参 照して下さい. 25.29. size `set size` コマンドはグラフの大きさを拡大縮小します.出力装置によって は大きさを変更すると文字の位置がずれることがあります.拡大を指定すると おかしな結果が得られることもあります.縮小は多くの場合うまくいきます. 書式: set size {,} show size は拡大係数です.省略時にはデフォルト値 (1,1) が使 用されます. 例: 通常の大きさに設定します: set size 通常の半分に設定します: set size 0.5,0.5 横長(landscape)グラフの極座標描画が縦横同縮尺になるように設定します: set size 0.721,1.0 現在設定されている大きさを表示します: show size LaTeX および Fig を出力装置としている場合,普通の大きさ(拡大係数 1,1)は 5 インチ幅の 3 インチ高です.big Fig (`bfig`) の場合は 7 インチ 幅の 5 インチ高です.postscript では横長(landscape)モードで 10 インチ 幅の 7 インチ高です.グラフの大きさは,軸や見出しを含んでいることに留 意して下さい.グラフ自身の描画領域はこれよりさらに小さくなります. 25.30. style グラフは9種類の描画方法の中のいずれかで表示することができます: `lines`, `points`, `linespoints`, `impulses`, `dots`, `steps`, `errorbars`, `boxes`, `boxerrorbars`. `lines` は隣合う点を直線で結び ます. `points` は各点の位置に小さなマーカを描きます. `linespoints` は `lines` と `pointes` の両方を行います. `impulses` はx 軸から各点へ 垂線を引きます(`splot` に対しては格子の底から). `dots` は各点の位置に 点を打ちます.多くの点の集合の散乱図などに適しています. `errorbars` は2次元のデータファイルの `plot` でのみ使用できます.関数 の`plot` や `splot` で使われた場合は `points` として扱われます.データ ファイルの `plot` においては `errorbars` は,やはり `points` の様に描 かれますが,各点に鉛直な誤差指示線が加わる点が異なります.ある点 (x,y) に対して,誤差指示線が (x,ylow) から (x,yhigh) まで引かれます.誤差指 示線の両端には短い横線が描かれます.ylow と yhigh はデータファイルの 第3および第4引数が読み込まれます.`plot` の `using` オプションによって 読み込む位置を変更することもできます.詳しくは `plot errorbars` を参照 して下さい. `boxes` は2次元のグラフでのみ利用できます.これは,与えられたx座標を中 心とし,x軸から与えられたy座標までの棒を描きます.棒の幅は3つの方法の うちのいずれか1つで得ます.もし,データファイルが第5列目を有していれ ば,これを棒の幅として使います.それ以外で,`set boxwidth` コマンドを 使って幅がすでに設定されている場合は,これが使われます.それでもない場 合には,隣り合う棒と接するように各々の棒の幅が自動的に計算されます. `boxerrorbars` と呼ばれるもう1つのスタイルは,2次元のデータファイルか らのグラフでのみ利用できます.このスタイルは `boxes` と `errorbars` ス タイルの組合せです. `step` は2次元のグラフでのみ利用できます.このスタイルは連続する点 を2つの線分で結びます: 1つめは (x1, y1) から (x2, y1) 2つめは (x2, y1) から (x2, y2) です. `plot` で指定されない場合は `set function style` および `set data style` の各コマンドで設定した方法で描画されます.この設定を各関数毎に 変更する方法については `plot style` を参照して下さい. 書式: set function style <描画方法> set data style <描画方法> show function style show data style ここで <描画方法> は `lines`, `points`, `linespoints`, `impulses`, `dots`, `steps`, `errorbars`, `boxes`, `boxerrorbars` のいずれかです. 25.31. surface `set surface` によって面の表示を制御できます.等高線を単独で表示したい ときに便利でしょう.`set nosurface` が実行されると面の孤立線や網は引か れなくなります.`set contour` も参照して下さい. 書式: set surface set nosurface show surface 25.32. terminal GNUPLOT は数多くのグラフィック装置をサポートしています.`set terminal` コマンドをつかって GNUPLOT の出力の対象となる装置の種類を選んで下さ い. 書式: set terminal {<装置の種類>} show terminal <装置の種類> が与えられなかった場合には,GNUPLOT は利用可能な端末装置 の一覧を表示します.<装置の種類> は短縮して構いません. 出力をファイルやデバイスにリダイレクトするときには `set output` を使用 して下さい. いくつかの装置には追加的なオプションがあります.例えば,`dumb`, `iris4d`, `hpljii`, `postscript` などを参照して下さい. 25.32.1. aifm Adobe Illustrator 3.0 ドライバは多くのオプションを受け付けます. 書式: set terminal aifm {} {""} {} `default` を指定すると全てのオプションをデフォルトの値に戻します. は `color` か `monochrome` のいずれか. "" 有効な PostScript フォントの名前. は PostScript のポイント単位で のフォントの大きさ.ここで設定する値は `set size` コマンドで拡大縮小さ れる前の大きさ.デフォルトの値は `monochrome`, "Courier", 14pt です. さらに,AI は複数ページを扱えないので複数のグラフを出力した場合は次々 に重なるようになっていますが,各々のグラフはグループ化されていますから AI の中で拾いあげて移動することによって分離できるようになっています. 例: set term aifm set term aifm 22 set size 0.7,1.4 set term aifm color "Times-Roman" 14 25.32.2. atari ST `atari` 端末は文字サイズと画面色を設定するオプションを持っています.ド ライバは,空白で区切られた,文字サイズと,赤,緑,青を表現する 16進 の3桁の数字(最大16個)のリストを期待しています.0-15 の範囲は実際に画面 が有している色の範囲にあわせて調整されます.通常のSTの画面では,奇数と 偶数の強度は同じです. 例: set terminal atari 4 # (小さな (6x6) フォントを使います) set terminal atari 6 0 # (モノクロ画面を黒地に白に設定します) set terminal atari 13 0 fff f00 f0 f ff f0f ff0 # (最初の8つの色を,黒,白,緑,青,シアン,紫,黄 に設定し,\ 大きな (8x16) フォントを使います) さらに,環境変数 GNUCOLORS が存在する場合は,その内容をオプションの文 字列として解釈します.しかし,陽に terminal オプションを設定の方が優先 します. 25.32.3. dumb ダム(dumb)端末ドライバはオプションでサイズを指定できます. 書式: set terminal dumb { } ここで はダム端末のサイズを指定します.デフォルト値 は 79×24 です. 例: set term dumb set term dumb 79 49 # VGA screen--why would anyone want to do that? 25.32.4. epson このドライバの組は,Epsonのプリンタとその派生に対応しています. NEC ド ライバも参照して下さい.`epson` は,解像度512x384の一般的な9ワイヤのプ リンタです.`starc` は,同じ解像度のStar Colorプリンタです. `epson180` と `epson60` は,もっと新しい24ワイヤプリンタのための, 180dpi と 60dpi のドライバです.これは,バブルジェットプリンタも含んで います.これらの解像度は,それぞれ,1260x1080 と 480x360 です. `tandy60` は `epson60` と同一ですが,IBMモードを始めるというエスケープ シーケンスが追加されています.これらのドライバの全てでは,印刷するため に PC上でバイナリコピーすることが必要です.`print` を使ってはいけませ ん. copy file /b lpt1: 25.32.5. gpic このドライバは,Free Software Foundation の gpic/groff パッケージで作 動することがわかっているだけです.Document Workbench の pic/troff パッ ケージのための改良していただければありがたく思います. FSF の gpic は TeX 用の出力を生成することもできます. 以下のようなコマンドを使って,簡単なグラフをフォーマットすることができ ます. groff -p -mpic -Tps file.pic > file.ps. pic からの出力は eqn へパイプでつなげることができますので,set label や set {x/y} label コマンドを使って,グラフの中に複雑な関数を置くこと ができます.例えば, set ylab '@space 0 int from 0 to x alpha ( t ) roman d t@' として,以下のようなコマンドでフォーマットすると,きれいな積分のラベル を y 軸に付けきます. gpic filename.pic | geqn -d@@ -Tps | groff -m[macro-package] -Tps > filename.ps この方法で作った図は,文書に合うように大きさを調整することができます. pic 言語を理解するのは簡単ですから,必要ならばグラフを手で編集すること ができます.gnuplotが生成したpicファイルの中の全ての座標値 は,x+gnuplotx と y+gnuploty で与えられます.デフォルトでは,x と y に は0が与えられます.エディタでいくつものファイルの中のこの行を取り除け ば,次のように 1つの図の中にいくつものグラフを置くことができます(デ フォルトの大きさは 5.0x3.0インチです). .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 これは,2列で各々の上部に置かれた4つのグラフを含む8インチ幅の図を生成 します. 次のコマンドによって,同じものを得ることもできます. set term pic x y 例えば, .PS 6.0 copy "trig.pic" .PE を使います. 25.32.6. hpljii HP LaserJet II と HP DeskJet のドライバには1つオプションがあります. 書式: set terminal hpljii {<解像度>} set terminal hpdj {<解像度>} ここで <解像度> は出力解像度を1インチ当りのドット数(dpi)で指定します. 値は `75`, `100`, `150`, `300` のいずれかでなければなりません.注意: 高解像度で表現(rasterize)できるようにするには十分にメモリがなければな りません. 例: set terminal hpljii 150 25.32.7. latex LaTeX と EMTeX ドライバでは,gnuplot のグラフの周りのラベルにフォント の種類とフォントの大きさを指定することができます. オプションは指定する任意のサイズの フォント: default (Roman 10 point) courier roman です(METAFONT は変な(odd)サイズを好まないことに気を付けて下さい).例え ば, gnuplot> set term latex courier 5 使っているドライバが(dvipsのように)任意のサイズのフォントを作ることが できないのならば,標準的な10, 11, 12 ポイントのサイズにしておいて下さ い. 25.32.8. iris4d iris4d ドライバには 2 つの動作モードがあります. 書式: set terminal iris4d {24} もしもハードウェアが 8 ビットしかサポートしていない場合は,デフォルト の `set terminal iris4d` を使って下さい.もし,ハードウェアが 24 ビッ ト(RGB に対してそれぞれ 8 ビット)をサポートしている場合は, `set terminal iris4d 24` を使って下さい. 24 ビットモードのときは色を .gnuplot_iris4d というファイルで直接指定す ることができます.このファイルは,まずカレントディレクトリから探され, 次に環境変数HOMEで指定されるホームディレクトリから探されます.このファ イルには,背景,境界(border),ラベル(label),9 つの描画色の RGB の値を この順で書いておきます.例として,デフォルトの色を指定するファイルを挙 げておきます. 85 85 85 /* Back Ground */ 0 0 0 /* Boundary */ 170 0 170 /* Labeling */ 85 255 255 /* Plot Color 1 */ 170 0 0 /* Plot Color 2 */ 0 170 0 /* Plot Color 3 */ 255 85 255 /* Plot Color 4 */ 255 255 85 /* Plot Color 5 */ 255 85 85 /* Plot Color 6 */ 85 255 85 /* Plot Color 7 */ 0 170 170 /* Plot Color 8 */ 170 170 0 /* Plot Color 9 */ このファイルは正確に 12 行あり,各行に RGB の 3 つ組があります.空行が あってはいけませんし,3 番目の数の後ろにあるものはすべて無視されます. 25.32.9. mf `mf` 端末ドライバは,METAFONT プログラムへの入力ファイルを作ります.し たがって,TeXの文書の中で図を文字と同じ方法で使うことができます. 文書の中でグラフを使うには,gnuplotからの出力ファイルを入力として METAFONTプログラムを実行しなければなりません.したがって,ユーザには, フォント作成プロセスについてと文書の中への新しいフォントの組み込みにつ いての基本的な知識が要求されます.しかし,METAFONTプログラムがローカル サイトで適切に設定されていれば,経験の無いユーザでもあまりトラブル無く 操作できるでしょう. テキストのサポートはMETAFONTの文字セットに基づいています.現状で は,Computer Modern Roman フォントセットが入力ですが,原則として,ユー ザは必要なフォントを何でも自由に選んで構いません.選んだフォント用 のMETAFONTのソースファイルは使えるようになっていなければなりません.各 々の文字はMETAFONTの中で別々のピクチャー変数に格納されます.文字が必要 な時は,これらの変数を操作(回転,伸縮など)することができます.欠点 は,METAFONTプログラムの解釈に要する時間です.ある計算機(つまりPC)で は,絵がたくさん格納されていると,使うことのできるメモリの量の上限が問 題を引き起こします. 25.32.10. Metafont Instructions 例で説明します. - terminal をMETAFONTに設定します. set terminal mf - 出力ファイルを選択します. set output "myfigures.mf" - グラフを描きます.各々のグラフが別々の文字を生成します. そのデフォルトの大きさは 5×3 インチです.set size 0.5, 0.5 とか, デフォルトに対する希望のどんな割合にでも大きさを変更することができます. - gnuplot を終ります. - gnuplot の出力に対してMETAFONTを実行することによって,tfmファイルと gfファイルを生成します.グラフはかなり大きいので(5×3インチ),memmax の値が 少なくとも150000であるMETAFONTのバージョンを使う必要があります. UNIX システムでは,これらは慣習として bigmf という名前でインストール されています.以下では,virmf コマンドは big バージョン表していると 仮定します.例えば: - METAFONT を呼び出します: virmf '&plain' - 出力装置を選びます: METAFONT のプロンプト('*')のところで次のように 打ちます. \mode:=CanonCX; % または貴方の使うプリンタ - 拡大率(magnification)をオプションで選択します: mag:=1; % 貴方の望みの値で - gnuplotで作ったファイルを入力します: input myfigures.mf 典型的なUNIXマシンでは,たいていmfと呼ばれる,virmf '&plain' を実行する スクリプトがあるので,virmf &plain の代わりに mfを使うことができます. これは,mfput.tfm と mfput.$$$gf ($$$は装置の解像度を示す) という 2つの ファイルを生成します.上の例は,全てをコマンドラインで打ってしまうことに よって,簡便に達成することもできます.例えば: virmf '&plain' '\mode:=CanonCX; mag:=1; input myfigures.mf' この場合,出力ファイルは myfigures.tfm と myfigures.300gf という 名前になります. - gftopk を使って,gfファイルからmfファイルを生成する: gftopk myfigures.300gf myfigures.300pk gftopkの出力ファイルの名前は,使っているdviドライバに依存します.貴方の ローカルなTeXの管理者に命名の慣習について尋ねて下さい. 次に,tfmファイルとpkファイルを適切なディレクトリにインストールするか, 環境変数を適切に設定します.たいてい,これは TEXFONTS にカレントディレクトリ を含めるように設定することを意味しています.同じことを貴方のdviドライバが使う 環境変数(標準的な名前はありませんが...)にも行って下さい. このステップは,TeX がフォントメトリックファイルを見つけられるようにし, dvi ドライバが pk ファイルを見つけられるようにするために必要です. - グラフを文書の中に含めるために,TeXにフォントを教える必要があります: \font\gnufigs=myfigures 貴方の作った各々のファイルは,1つ1つ文字として収められています.1番目の 図は文字0,2番目は文字1,などなどです.以上のステップを行った後には, 他の文字と全く同じようにグラフを使うことができます.したがって,文書の中に グラフ1と2をセンタリングして置くために,plain TeXですべきことは: \centerline{\gnufigs\char0} \centerline{\gnufigs\char1} です.もちろん,LaTeX では,picture環境を使い,\makebox と \put マクロを 使って,あなたの望み次第にグラフを配置することができます. TeXは,グラフを文字として扱い,それを配置するには最小の時間しか 使わないので,一度フォントを生成してしまえば,大幅に時間の節約になります. また,グラフに比べて,文書はしばしば変更するものですし,TeXのメモリも 大幅に節約します.METAFONTドライバを使う,最後の1つの利点は,dviファイルが 本当にデバイス依存しないままであるということです.なぜなら,eepicやtpicの ドライバのような \special コマンドを全く使っていないからです. 25.32.11. mif MIF 3.0 ドライバでは,いくつものオプションを設定できます. 書式: set terminal mif {} {} {} はグラフィックスの "色" を選択します. `colour` 線種 >= 0 をカラーで描画します (MIF sep. 2-7). `monochrome` 全ての線種を黒で描画します (MIF sep. 0). は,"曲線" をどのように描くか選択します. `polyline` 曲線を連続直線として描きます. `vectors` 曲線をベクトルの集まりとして描きます. は標準エラー出力にオンラインヘルプを表示します. `help` 使い方とオプションについての短い記述を表示します. `?` 使い方についての短い記述を表示します. このターミナルドライバは,Frame Maker の MIF フォーマットバージョ ン3.00 を生成します.これは,大きさ15×10 [cm] の MIF フレーム の中に グラフを描き,同じペンで描かれたグラフの基本要素は,同じMIF グループの 中でグループ化されます.グラフの基本要素は1つのMIF フレームの中に描画 され,いくつかの MIF フレームは,1つの大きなMIF フレームの中に集められ ます.線種 >= 0 のグラフの基本要素は,デフォルトではカラーで描かれま す.また,デフォルトでは曲線は連続直線として描かれます.テキストに使わ れる MIF のフォントは "Times" です. 例: set term mif set term mif vectors set term mif help 25.32.12. nec-cp6 `nec-cp6` ドライバは1つのオプションを持っています.このドライバの解像 度は 400x320です. 書式: set terminal nec-cp6 monochrome set terminal nec-cp6 color set terminal nec-cp6 draft 25.32.13. pbm PBMplus ドライバは多くのオプションを受け付けます. 書式: set terminal pbm {} {} ここで は `small`, `medium`, `large` のいずれかです.ま た,は `monochrome`, `gray`, `color` のいずれかです.デフォ ルトの大きさは幅 640 点,高さ 480 点あります. `monochrome` の出力は ポータブルビットマップです. (1 点当り 1 ビット) `color` の出力はポー タブルフグレーマップです. (1 点当り 3 ビット) `gray` の出力はポータ ブルピックスマップです.(カラーで 1 点当り 4 ビット) これらの出力は Jef Poskanzer's excellent PBMPLUS package で利用可能でこれによって上記 の PBMPLUS フォーマットから GIF, TIFF, MacPaint, Macintosh PICT, PCX, X11 を始めとする多くのビットマップフォーマットに変換できます. 例: set term pbm small set size 2,2 set term pbm color medium 25.32.14. pcl5 `pcl5` ドライバでは,3つのオプションを設定することができます.このドラ イバは実際には HPGL-2 を使っていますが,端末装置の中で衝突している名前 があります. 書式: set terminal pcl5 {} {} {} ここで, は `landscape` か `portrait` です. は `stick` か `univers` か `cg_times` です.また, はポイント単位です. set terminal pcl5 landscape 25.32.15. postscript PostScript ドライバは多くのオプションを受け付けます. 書式: set terminal postscript {} {} {} {""} {} ここで は `landscape`, `portrait`, `default` のいずれか. `default` を指定すると全てのオプションをデフォルトの状態に戻します. は `color` か `monochrome` のいずれか. は `solid` か `dashed` のいずれか. "" は有効な PostScript フォントの名 前. は PostScript のポイント単位でのフォントの大きさ.デ フォルトの値は `landscape`, `monochrome`, "Courier", 14pt です. Postscript に出力する際の普通の大きさは 10 インチ幅の 7 インチ高です. EPS を出力する場合は,`eps` モードを使用し,ひとつのファイルにつきひと つのグラフのみを出力して下さい.EPS モードでは全ての描画は半分の大きさ になります.フォントの大きさは指定値の半分になりますし,描画領域も 5 インチ幅の 3.5 インチ高になります. 例: set term postscript default # 旧 postscript set term postscript landscape 22 # 旧 psbig set term postscript eps 14 # 旧 epsf1 set term postscript eps 22 # 旧 epsf2 set size 0.7,1.4 set term post portrait color "Times-Roman" 14 25.32.16. enhanced postscript "Enhanced PostScript" ドライバは,正規のPostScriptドライバを越える拡張 された機能を持っています.このEnhanced PostScriptドライバは,多くのオ プションを受け付けます. 書式: set terminal enhpost {} {} {} {} {""} {} ここで は `landscape`, `portrait`, `default` のいずれか. `default` を指定すると全てのオプションをデフォルトの状態に戻します. は `color` か `monochrome` のいずれか. は `solid` か `dashed` のいずれか. は `simplex` か `duplex` のいずれか (プリンタにこの機能がない場合には,これを指定しないで下さい). は PostScript のポイント単位でのフォントの大きさ.デフォル トの値は `landscape`, `monochrome`, `dashed`, 'printer-default-plex', "Helvetica", 14pt です. Enhanced PostScript が出力するデフォルトの大 きさは,横長で10 インチ幅, 7 インチ高です. EPS の出力を得るためには,`eps` モードを使用し,ひとつのファイルにつき ひととつのグラフのみを出力して下さい.EPS モードでは全ての描画は半分の 大きさになります.フォントの大きさは指定値の半分になりますし,描画領域 も 5 インチ幅 3.5 インチ高になります. 例: set term enhpost landscape 22 set term enhpost eps 14 set term enhpost landscape simplex set size 0.7,1.4 set term enhpost portrait color "Times-Roman" 14 この "強化" ドライバは,任意のテキストに以下のような特別な書式命令を含 めることができます (たとえば,軸のメモリにそれらの命令を入れるには, SET FORMAT コマンドを使います). 制御文字 例 説明 ^ a^x 上付き文字 _ a_x 下付き文字 @ @x or a@^b_c 空ボックス (幅を占めない) 1文字だけが来ることが期待されている所で,{text}と書くと複数文字のテキ ストを使うことができます(例えば,2^{10}).書体や大きさを変更するには, {/[fontname][=fontsize] text} という形式を使って下さい (例えば, {/Symbol=20 G}は20ポイントのΓです).('/'は'{'の後の最初の文字でなけれ ばいけません). 空ボックス(phantom box)は,上付き文字と下付き文字をそろえた り(a@^b_c),文字の上にアクセントを重ね書きしたりするために便利で す.2つの短い方が空ボックスの中に置かれるというのが共通の意味です. 文字コード (8進数)を指定することで,特殊なシンボルに番号でアクセスでき ます.例えば,{/Symbol \245} は無限大記号です. 制御文字は,\を使ってエスケープします.例えば, \\, \{, \}, \^, \@ 4 regis `regis` 端末装置は,4色か16色を使うオプションを持っています.デ フォルトは4です. 例: set term regis 16 25.32.17. table 装置の種類を `table` にすると,グラフを描画する代わりに式の評価結果を X,Y,Z の値として ASCII 文字でマルチカラム出力します.絵ではなく数字 を見たい場合,このドライバを使うことによって数値を画面やファイルに出力 することができます. 25.32.18. windows Windows のドライバでは3つのオプションを設定することができます. 書式: set terminal windows {} {""} {} `` は `color` か `monochrome` のどちらかです. `""` は有効なWnindows のフォントの名前です. `` は,ポイント単位 のフォントの大きさです. 25.32.19. graph-menu `gnuplot graph` ウィンドウには,ポップアップメニューに次のようなオプ ションがあります.これを利用するには,マウスの右ボタンを押すか,システ ムメニューから `Options` を選択します. `Bring to Top` に印を付けると,全て他のグラフのよりグラフウィンドウを 前面に出します. `Color` に印を付けると,線種がカラーになります.印がついていないと,線 種はモノクロになります. `Copy to Clipboard` は,ビットマップやメタファイルの絵をコピーします. `Background...` は,ウィンドウの背景色を設定します. `Choose Font...` は,グラフィックウィンドウで使うフォントを選択しま す. `Line Styles...` で,線の色と種類を調整することができます. `Print...` は,Windows のプリンタドライバを使ってグラフィックウィンド ウを印刷します.プリンタと出力の拡大率を選択することができま す.`Print` で生成された出力は,gnuplot 自身のプリンタドライバの出力ほ ど良くありません. `Update wgnuplot.ini` は,現在の,ウィンドウの位置,ウインドウの大き さ,テキストウィンドウのフォント,テキストウィンドウのフォントの大き さ,グラフィックウィンドウのフォント,グラフィックウィンドウの大きさ, 背景色,線種 を初期化ファイル `WGNUPLOT.INI` に保存します. 25.32.20. printing お好みによって,以下のような方法でグラフを印刷することができます. 1. `1.` gnuplotのコマンド `set terminal` を使ってプリンタを選択し, `set output` でファイルへリダイレクト出力します. 2. `2.` `gnuplot graph` ウィンドウから `Print...` コマンドを選びます. 特別コマンド `screendump` は,テキストウィンドウからこれを行いま す. 3. `3.` `set output "PRN"` を使った場合は,出力は一時ファイルに収めら れます. gnuplot を終了するか,別の `set output` コマンドで出力先を 変更した時に,対話ボックスが現れ,プリンタのポートを選びます.OKを 選ぶと,プリンタマネージャを無加工で通過し,出力は選んだポートで印 刷されます.あるプリンタにとって意味のある出力を,非互換のプリンタ へ偶然に (または故意に) 送ることができてしまいます. 25.32.21. text-menu `gnuplot text` ウィンドウには,ポップアップメニューに次のようなオプ ションがあります.これを利用するには,マウスの右ボタンを押すか,システ ムメニューから `Options` を選択します. `Copy to Clipboard` は,マークしたテキストをクリップボードにコピーしま す. `Paste` は,ユーザが打ち込んだのと同じように,クリップボードからテキス トをコピーします. `Choose Font...` は,テキストウィンドウで使うフォントを選びます. `System Colors` を選んだ時は,テキストウィンドウにコントロールパネルを 使って設定したシステムカラーを与えます.選択しない時は,白い背景で,文 字は黒か青になります. `Update wgnuplot.ini` は,現在の,ウィンドウの位置,ウインドウの大き さ,テキストウィンドウのフォント,テキストウィンドウのフォントの大きさ を初期化ファイル `WGNUPLOT.INI` に保存します. `MENU BAR` メニューファイル `WGNUPLOT.MNU` が,WGNUPLOT.EXE と同じディレクトリに ある場合には,`WGNUPLOT.MNU` に記述されたメニューが読み込まれます. メニューコマンドは以下の通りです: [Menu] 次の行の名前で新しいメニューを始めます. [EndMenu] 現在のメニューを終ります. -- 水平なメニュー仕切りを入れます. | 垂直なメニュー仕切りを入れます. [Button] メニューに入れる押しボタンに次のマクロを置きます. マクロには2行を使います.1行目がマクロの名前で(メニューの見出し), 2行 目がマクロです.前の空白は無視されます. マクロコマンドは以下の通りです: [INPUT] [EOS] か {ENTER} で終るプロンプトを出して,文字列を入力します. [EOS] 文字列の終りを意味するターミネータ.何も出力しません. [OPEN] リストボックスからオープンするファイル名を得ます. [EOS] で終るリストボックスの表題と, その後に [EOS] か {ENTER} で終るデフォルトのファイル名が 付きます.これは,Windows 3.1 の COMMDLG.DLL を使っています. [SAVE] 保存するファイル名を得ます.[OPEN] とほぼ同じです. マクロの文字の代用は次の通りです: {ENTER} 復帰 '\r' {TAB} タブ '\011' {ESC} エスケープ '\033' {^A} '\001' ... {^_} '\031' マクロは展開後256文字までに制限されています. 25.32.22. wgnuplot.ini Windows gnuplot は,Windowsのディレクトリの `WGNUPLOT.INI` セクション の `[WGNUPLOT]` からオプションのいくつかを読み込みます.`WGNUPLOT.INI` ファイルの例を下に示します. [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 `GraphFont` エントリは,フォントの名前とポイント単位のサイズを指定しま す. `Border` と `Axis` と `Line` エントリの5つの数は,`赤` の強 度(0-255) `緑` の強度,`青` の強度,`カラーの線種`,`モノクロの線種` を与えています. `線種` は 0=実線,1=鎖線,2=点線,3=1点鎖線,4=2点鎖 線 です.上の `WGNUPLOT.INI` ファイルの例では,線2 はカラーモードでは 緑の実線で,モノクロモードでは鎖線です.デフォルトの線幅は1ピクセルで す. `Linestyle` が負の場合は,実線の線幅をピクセル単位で指定します. 線1 と `points` スタイルで使われる線種は実線で1ピクセル幅でなければな りません. 25.32.23. windows3.0 Windows 3.1 の方が良いのですが,以下のような制限付きで,Windows 3.0 の 下でも WGNUPLOT は動作します. 1. COMMDLG.DLL と SHELL.DLL (Windows 3.1 か Borland C++ 3.1と使うこと ができる) は Windows のディレクトリになければなりません. 2. Borland C++ 3.1 によって作成された WGNUPLOT.HLP は, Windows 3.1 フォーマットです.Borland C++ 3.1 と一緒に提供されている WINHELP.EXE を使う必要があります. 3. メモリ不足のため,リアルモードでは動作しません. 4. グラフウィンドウでは,Truetype フォントが使えません. 5. ドラッグ-ドロップ が働きません. 25.33. tics デフォルトでは,刻みは境界の枠の 4 辺全てからグラフの内側に向かって描 かれます.`set tics` コマンドによって,刻みを外側に向かって,かつ,左 と下にのみに表示するように変更できます.この機能は,インパルス (impulse)で描画する際に便利です. 書式: set tics {<方向>} show tics ここで <方向> は,`in` か `out` のいずれかです.`set tics` だけでは `in` になります. 刻みの制御に関しては `set xtics`, `set ytics`, `set ztics` の各コマン ドについても参照して下さい. splot をつかった3次元グラフでは,`set ticslevel` を使って,鉛直(Z)軸の相対的な高さを調整することができます. 指定した数値引数はグラフの底の位置を指定します.ゼロを指定すると x/y 軸のある底面になり,正の数を指定すると z 軸上のどこかになります. 書式: set ticslevel {<位置>} show tics ここで <位置> は非負の数値です.例えば set ticslevel 0.5 によってデフォルトの値になります. `set view` も参照して下さい. 25.34. time `set time` を使うことによってグラフの上辺または下辺に日付と時刻を入れ ることができます.具体的な場所は出力装置に依存します. 書式: set time {}{,} set notime show time 定数 または を追加することによって日時表示を文字座標系で 指定したオフセット分だけ動かすことができます. 例: set time ,-3 とすると,文字の高さの約3倍分下方向に移動することができます. 25.35. title `set title` コマンドはグラフの題名を上辺に中央ぞろえで出力します.オプ ションの x, y のオフセットを指定するとその分だけ位置をずらすことができ ます.これによって任意の位置に題名を表示することができます.`set title` と何も指定せずに使用すると題名の表示をしなくなります. 書式: set title {"<題名文字列>"} {}{,} show title オプション定数 , をオフセットとして指定すると指定した文字 分だけ位置を動かすことができます.これはグラフの座標系ではなく文字座標 系の文字数で指定します.例えば, set title ,-1 とすると題名を下方向に約1文字分ずらすことになります. (EEPIC と Imagen とLaTeX と TPIC に出力する場合は,文字列中に \\ を入 れることによって改行させることができます) 25.36. trange `set trange` コマンドは媒介変数(parametric)モードのときに,x値,y値を 求めるときの媒介変数の変域を指定します.媒介変数モードでない時何の影響 もありません.(`set parametric` 参照) このコマンドによって x/y の自動 縮尺機能や x/y の変域が影響をうけることはありません. この変域は媒介変数モードのときには `plot` コマンド中で指定することもで きます. 書式: set trange [{ : }] ここで, は,定数または式です. は共に省略可能です.省略されたものは変更されません. よって set trange [:10] によって tmax は 10 になりますが tmin は変わりません.`set urange` と `set parametric` も参照して下さい. 25.37. urange `set urange` と `set vrange` の各コマンドは媒介変数(parametric)モード において `splot` で x値,y値,z値を計算するのに使う媒介変数の変域を指 定します.媒介変数モードでない時何の影響もありません.(`set parametric` 参照) このコマンドによって x/y の自動縮尺機能や x/y の変域 が影響をうけることはありません. この変域は媒介変数モードのときには `splot` コマンド中で指定することも できます.詳しくは `plot` を参照して下さい. 書式: set urange [{ : }] ここで, は,定数または式です. は共に省略可能です.省略されたものは変更されません. よって set urange [:1] によって umax は 10 になりますが umin は変わりません.`set trange` も 参照して下さい. 25.38. variables `show variables` コマンドは全てのユーザ定義変数とその値のの一覧を表示 します. 書式: show variables 25.39. view `set view` コマンドは `splot` における視点を指定します.このコマンドに よって3次元座標系のグラフがどのように2次元の画面に投影されるかを制御し ます.このコマンドによって回転と拡大縮小を行うことができますが射影方法 は正射影のみ用意されています. 書式: set view {,{}{,{}{,}}} show view ここで, は仮想的な3次元座標系の軸に対する回転角を 度で指定します.これは画面水平方向を x 軸,鉛直方向を y 軸,そして,画 面に対して垂直な方向を z 軸としています. は [0:180] の範囲で指 定でき,デフォルトの値は 60 度です. は [0:360] の範囲で指定で き,デフォルトの値は 30 度です. は `splot` 全体の縮尺を決め, は z 軸方向のみに対する縮尺を決めます.これらのデフォルトの 値は共に 1.0 です. 例: set view 60, 30, 1, 1 set view ,,0.5 前者は全ての値をデフォルトの値にしています.後者は全体の縮尺のみを 0.5 に設定しています. `set ticslevel` も参照して下さい. 25.40. vrange `set vrange` コマンドは `set urange` コマンドとほぼ同じです.`set urange` を参照して下さい. 25.41. xlabel `set xlabel` コマンドは x 軸の見出しを軸の中央にそろえて表示します.オ プションの x,y オフセットを指定することによって任意の位置に表示するこ ともできます.引数なしに `set xlabel` を実行すると見出しを表示しなくな ります. 書式: set xlabel {"