GNUPLOT An Interactive Plotting Program Thomas Williams & Colin Kelley Version 3.5 organized by: Alex Woo Major contributors (alphabetic order): John Campbell Robert Cunningham Gershon Elber Roger Fearick David Kotz Ed Kubaitis Russell Lang Alexander Lehmann Carsten Steger Tom Tkacik Jos Van der Woude Alex Woo Copyright (C) 1986 - 1993 Thomas Williams, Colin Kelley Mailing list for comments: info-gnuplot@dartmouth.edu Mailing list for bug reports: bug-gnuplot@dartmouth.edu This manual is for GNUPLOT version 3.5 Contents 1 Gnuplot 1 2 Cd 1 3 Clear 1 4 Command-line editing 2 5 Comment 2 6 Environment 2 7 Exit 3 8 Expressions 3 8.1 8.2 Functions : : : : Operators : : : : 8.2.1 Binary 8.2.2 Unary : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 4 4 5 9 Help 5 10 Load 6 11 Pause 6 12 Plot 6 12.1 Data-le : : : 12.1.1 Using 12.2 Errorbars : : : 12.3 Parametric : : 12.4 Ranges : : : : 12.5 Style : : : : : 12.6 Title : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 9 10 10 11 12 13 13 Print 13 14 Pwd 14 15 Quit 14 16 Replot 14 17 Save 14 18 Set-show 18.1 Angles : : : : : : : : : : : : 18.2 Arrow : : : : : : : : : : : : 18.3 Autoscale : : : : : : : : : : 18.3.1 Parametric mode : 18.4 Border : : : : : : : : : : : 18.5 Clip : : : : : : : : : : : : : 18.6 Cntrparam : : : : : : : : : 18.7 Contour : : : : : : : : : : : 18.8 Data style : : : : : : : : : : 18.9 Dummy : : : : : : : : : : : 18.10 Format : : : : : : : : : : : 18.11 Function style : : : : : : : 18.12 Functions : : : : : : : : : : 18.13 Grid : : : : : : : : : : : : : 18.14 Hidden3d : : : : : : : : : : 18.15 Isosamples : : : : : : : : : 18.16 Key : : : : : : : : : : : : : 18.17 Label : : : : : : : : : : : : 18.18 Logscale : : : : : : : : : : : 18.19 Mapping : : : : : : : : : : 18.20 Osets : : : : : : : : : : : 18.21 Output : : : : : : : : : : : 18.22 Parametric : : : : : : : : : 18.23 Polar : : : : : : : : : : : : 18.24 Rrange : : : : : : : : : : : 18.25 Samples : : : : : : : : : : : 18.26 Size : : : : : : : : : : : : : 18.27 Style : : : : : : : : : : : : 18.28 Surface : : : : : : : : : : : 18.29 Terminal : : : : : : : : : : 18.29.1 Dumb : : : : : : : 18.29.2 Hpljii : : : : : : : 18.29.3 Iris4d : : : : : : : 18.29.4 Pbm : : : : : : : : 18.29.5 Postscript : : : : : 18.29.6 Table : : : : : : : 18.29.7 Aifm : : : : : : : 18.30 Tics : : : : : : : : : : : : : 18.31 Time : : : : : : : : : : : : 14 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 15 15 16 16 17 17 18 18 18 19 19 20 20 20 20 20 21 21 22 23 23 23 24 24 25 25 25 26 27 27 27 27 28 28 29 29 29 30 30 18.32 Title : : : 18.33 Trange : 18.34 Urange : 18.35 Variables 18.36 View : : 18.37 Vrange : 18.38 Xlabel : : 18.39 Xrange : 18.40 Xtics : : 18.41 Xzeroaxis 18.42 Ylabel : : 18.43 Yrange : 18.44 Ytics : : 18.45 Yzeroaxis 18.46 Zero : : : 18.47 Zeroaxis : 18.48 Zlabel : : 18.49 Zrange : 18.50 Ztics : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 31 31 32 32 32 32 33 33 33 34 34 34 35 35 35 35 36 36 19 Shell 36 20 Splot 36 21 Start-up 36 22 Substitution 37 23 User-dened 37 24 Bugs 37 1 GNUPLOT 3.5 1 Gnuplot GNUPLOT は、コマンド入力方式の対話的な関数描画プログラムです。コマンドや関数名は大文字小文 字を区別します。いずれのコマンドも、あいまいさの無い限りにおいて省略することができます。一行中 にはセミコロン (;) で区切って複数個のコマンドを書くことができます。文字列は引用符を使って表しま す。引用符は、一重のものでも、二重のものでも構いません。例 : load "filename" cd 'dir' コマンドラインでの引数は GNUPLOT 用のコマンドの書かれたファイルの名前であるものとします。但 し標準の X11 の引数は例外で、まず最初に処理されます。各ファイルはコマンドライン上で指定された順 に load コマンドでロードされます。GNUPLOT は、最後に指定されたファイルを処理し終ると終了しま す。ファイルが一つも指定されていない場合は、GNUPLOT は対話モードになります。 コマンドは、複数行にまたがることができます。その場合は、最終行以外の全ての行の行末にバックスラッ シュを (n) 書く必要があります。バックスラッシュは必ず各行 *最後* の文字でなくてはなりません。そ の結果としてバックスラッシュと、それに続く改行文字が存在しなっかたかのように扱われます。つまり、 改行文字がスペースの役をすることもありませんし、改行によってコメントが終了することもありません。 ですから複数行にまたがる行をコメントアウトすると、そのコマンド全体がコメントアウトされることに なります (comment の項を参照のこと) 。 このドキュメントにおいて、中括弧 (fg) は省略可能な引数を表すものとします。縦棒 (j) は、互いに排他 的な引数を区切るものとします。GNUPLOT のキーワードやヘルプにおける項目名は、バッククオートま たは可能な場合には boldface で表します。角括弧 (<>) は、それに対応するものに置き換えられるべき ものを表します。 ある項目についてのヘルプが必要なときには、help に続けてその項目名を入力してください。 初めて GNUPLOT を使う方は、plot コマンドの説明から読みはじめると良いでしょう (help 力してください) 。 plot と入 2 Cd cd コマンドはカレントディレクトリを変更します。 書式 : cd "<ディレクトリ名>" ディレクトリ名は引用符に囲まれていなければなりません。 例: cd 'subdir' cd ".." 3 Clear clear コマンドは、set output で選択された画面または出力装置をクリアします。通常、ハードコピー装 置に対しては改ページを行います。出力機器を選択するには set terminal を使用してください。 2 GNUPLOT 3.5 4 Command-line editing Unix または IBM PC 版の GNUPLOT はコマンドライン編集機能を持っています。さらに履歴機能によっ て過去のコマンドを呼びだし、編集し、再実行することができます。コマンド ラインの編集が終った後に 改行または復帰キーを押すと、そのときのカーソルの位置にかかわり無く行全体をコマンドとして処理し ます。 編集用のコマンドは以下の通りです。 文字 ^B ^F ^A ^E ^H, DEL ^D ^K ^L, ^R ^U ^W ^P ^N 機能 行編集 (`Line editing`) 一文字左へ移動。 一文字右へ移動。 行頭へ移動。 行末へ移動。 カーソルの左の文字を削除。 カーソル位置の文字を削除。 カーソル位置以降の文字をすべて削除。 画面が乱れた場合などに行を再表示。 行全体を削除。 カーソルの左の一語を削除。 履歴 (`History`) 履歴をさかのぼって検索。 履歴をくだって検索。 IBM PC においては、DOSEDIT や CED といった TSR プログラムを利用したい場合があるでしょう。 そのような場合、GNUPLOT を行編集機能なしでコンパイルすることも可能です ( makele のデフォル ト設定) 。IBM PC で GNUPLOT 自身の行編集機能を利用する場合は、makele において READLINE をセットし、リンクファイルに readline.obj を追加してください。readline を使うと IBM PC 版において 以下の矢印キーが利用可能になります。 矢印キー 左 右 Ctl + 左 Ctl + 右 上 下 機能 ^B と同じ。 ^F と同じ。 ^A と同じ。 ^E と同じ。 ^P と同じ。 ^N と同じ。 (gnuplot で使われている readline 関数は、GNU BASH や はありません。しかしそれなりに互換性はあります。) GNU EMACS で使われているものと同じで 5 Comment コメントは次のように実装されています : 文字 # は、行中のたいていの場所に書くことができます。こ のとき GNUPLOT はその行の残りの部分を無視します。ただし引用符の中、数 (複素数を含む) の中、コ マンド置換 ( command substitution ) の中などでは特殊な意味を持ちません。簡単に言うと、意味のある ような使い方をしさえすれば、正しく動作すると言うことです。 6 Environment GNUPLOT は 多くのシェル環境変数を認識します。必須のものはありませんが、使えば便利になるかも 知れません。 GNUPLOT 3.5 3 GNUTERM が定義されている場合、それは使用される出力装置 (terminal) の名前として使われます。こ れは、GNUPLOT が起動時に見つけた出力装置に優先して使用されますが、.gnuplot またはそれに相当 するスタートアップファイル ( start-up を参照のこと) による指定やその後の明示的な変更の方がさらに 優先されます。 Unix と AmigaDOS と MS-DOS においては、GNUHELP にヘルプファイル (gnuplot.gih) のパス名を定 義しておくことができます。 VMS においては、シンボル GNUPLOT$HELP を GNUPLOT 用のヘルプライブラリの名前として定義 します。 Unix においては、カレントディレクトリに .gnuplot というファイルが無い場合には、HOME に定義され たディレクトリを探します。AmigaDOS と MS-DOS においては、GNUPLOT がその役割に使われます。 VMS では、SYS$LOGIN: です。help startup を参照してください。 Unix においては、PAGER がヘルプメッセージの出力用フィルターとして使われます。 Unix と AmigaDOS においては、SHELL が shell コマンドの際に使われます。MS-DOS においては、 COMSPEC が使われます。 AmigaDOS においては、GNUFONT が画面用のフォントとして使われます。例 : \setenv GNUFONT sapphire/14" MS-DOS において BGI インタフェイスが使われている場合には、BGI という変数が BGI ド ライバの ディレクトリへのフルパスを指定するために使われます。さらに、800x600 の解像度用 Super VGA BGI ド ライバを指定するために SVGA が使われ、そのモードと共に ' 名前. モード ' とセットします。例え ば、Super VGA ドライバが C:nTCnBGInSVGADRV.BGI で、800x600 の解像度がモード 3 だったなら ば、'set BGI=C:nTCnBGI' と 'set SVGA=SVGADRV.3' とすることになります。 7 Exit exit と quit の両コマンドと END-OF-FILE 文字は、GNUPLOT を終了させます。これらのコマンドは、 出力装置を clear コマンドと同様にクリアしてしてから終了させます。 8 Expressions 基本的には、C, FORTRAN, Pascal または BASIC において利用可能な数学表現を使用できます。演算子 の優先順位は、C 言語における文法に従います。数式中の空白文字とタブ文字は無視されます。 複素数の定数は f<実部>,<虚部>g と表せます。ここで<実部>と<虚部>は数定数でなくてはなりません。 例えば f3,2g は 3+2i を表し、 f0,1g は i を表します。これらの場合には、明示的に中括弧を書く必要が あります。 8.1 Functions GNUPLOT で使える関数は、引数として、特に断らない限り、整数、実数、複素数をとれることを除いて は、 Unix の数学ライブラリの対応する関数と同じものです。BASIC のような sgn 関数も利用可能です。 4 GNUPLOT 3.5 関数 abs(x) abs(x) acos(x) arg(x) asin(x) atan(x) besj0(x) besj1(x) besy0(x) besy1(x) ceil(x) cos(x) cosh(x) exp(x) oor(x) gamma(x) imag(x) int(x) log(x) log10(x) real(x) sgn(x) sin(x) sinh(x) sqrt(x) tan(x) tanh(x) 引数 任意 複素数 任意 複素数 任意 任意 ラジアン ラジアン ラジアン ラジアン 任意 ラジアン ラジアン 任意 任意 任意 複素数 実数 任意 任意 任意 任意 ラジアン ラジアン 任意 ラジアン ラジアン 戻り値 x の絶対値、jxj; 引数と同じ型 x の長さ, real(x)2 + imag(x)2 cos01 x (逆余弦) をラジアンで x の偏角をラジアンで sin01 x (逆正弦) をラジアンで tan01 x (逆正接) をラジアンで x の j0 ベッセル関数 x の j1 ベッセル関数 x の y0 ベッセル関数 x の y1 ベッセル関数 dxe, x (実部) よりも小さくない最小の整数 cos x, x の余弦 cosh x, x の双曲余弦 x e , x の指数関数 bxc, x (実部) よりも大きくない最大の整数 0(real(x)), x の実部のΓ関数 x の虚部を実数で x を 0 に近くなるように丸めた整数 loge x, x の ( e を底とする) 自然対数 log10 x, x の 10 を底とする対数 x の実部 x > 0 なら 1, x < 0 なら 01, x = 0 なら 0. imag(x) は無視 sin x, x の正弦 sinh x の双曲正弦 px, xx, の平方根 tan x, x の正接 tanh x, x の双曲正接 p 8.2 Operators GNUPLOT における演算子 (operators) は対応する C 言語の演算子と同じものです。ただし、引数として は、特に断わらない限り、整数、実数、複素数のいずれも利用可能です。また FORTRAN にある冪 (べき) 乗演算子**が利用可能です。 括弧を使うことによって演算子の優先順位を変更できます。 8.2.1 Binary 以下は利用可能な二項演算子とその使い方の一覧です。 5 GNUPLOT 3.5 記号 ** * / % + == != & ^ | && || ?: 使用例 a**b a*b a/b a%b a+b a-b a==b a!=b a&b a^b a|b a&&b a||b a?b:c 二項演算子 説明 冪 (べき) 乗 積 商 * 剰余 和 差 等しい 等しくない * ビット毎の AND * ビット毎の exclusive OR * ビット毎の inclusive OR * 論理的 AND * 論理的 OR * 三項演算 説明欄に星印 (*) のついた演算子の引数は整数でなければなりません。 論理演算子 AND(&&) と OR(jj) は、C 言語同様に必要最小限の評価しか行いません。すなわち、&& の 第二引数は第一引数が偽なら評価されませんし、jj の第二引数は第一引数が真なら評価されません。 三項演算子はまず第一引数 (a) を評価します。これが真 (ゼロでない) ならば、第二引数 (b) を評価し、そ の結果を返します。それ以外の場合には第三引数 (c) を評価し、その結果を返します。 8.2.2 Unary 以下は利用可能な単項演算子とその使い方の一覧です。 記号 ~ ! ! 単項演算子 使用例 説明 -a 負符号 ~a * 1 の補数 !a * 論理的否定 a! * 階乗 説明欄に星印 (*) のついた演算子の引数は整数でなければなりません。 階乗演算子 (!) は大きな値を返せるように実数を返します。 9 Help help コマンドは、オンラインヘルプを表示します。ある項についての説明を指定したいときには、次の書 式を使ってください : help {<項目名>} もし<項目名>が指定されなかった場合は、GNUPLOT についての簡単な説明が表示されます。指定した 項目についての説明が表示された後、それに対する細目名の入力を求められる場合があります。そして、そ の細目の説明が表示された後に、さらなる細目名の入力を要求されることもあるでしょう。ここでリター ンキーのみを押すと一つ上の大項目へと戻ります。これを繰り返すとやがて、GNUPLOT のコマンドラ インへと戻ります。 6 GNUPLOT 3.5 10 Load load コマンドは、指定された入力ファイルの各行を、それが対話的に入力されたかのように実行します。 save コマンドでつくられたファイルは、load することができます。有効なコマンドの書かれたテキスト ファイルをつくれば、それは、load コマンドによって、実行することができます。load 中のファイルの 中にさらに load コマンドがあっても構いません。コマンド中のコメントについては、comment の項を 参照してください。 load コマンドは、1入力行の中の最後のコマンドでなければなりません。 書式 : load "<入力ファイル名>" 入力ファイル名は引用符で囲まなければなりません。 例: load 'work.gnu' load "func.dat" GNUPLOT への引数として与えられたファイル名は、暗黙のうちに load コマンドによって実行されま す。これらは、指定された順にロードされ、その後 GNUPLOT は終了します。 11 Pause pause コマンドは、コマンドに続く任意の文字列を表示した後、指定された時間または、改行キーが押さ れるまで待ちます。pause コマンドは、load 用のファイルと共に使用すると、便利になるでしょう。 書式 : pause <時間> {"<文字列>"} 時間>は、任意の整数の定数または式です。-1 を指定すると改行キーが押されるまで待ちます。0 を指定 すると一切待たず、正整数を指定するとその秒数だけ待ちます。 < 注意 :pause コマンドは描画の一部ではないので、異なる出力装置では異なる動作をする可能性がありま す。(これは、テキストとグラフィックスが、どのように混在するかによります。) 例: pause pause pause pause -1 # 改行キーが押されるまで待つ。 3 # 3 秒待つ。 -1 "Hit return to continue" 10 "Isn't this pretty? It's a cubic-spline." 12 Plot plot と splot の両コマンドは、このプログラムの主要なコマンドです。これらは、関数やデータを実に多 くの方法で表示します。plot は二次元的関数やデータを表示するために使い、splot は三次元面やデータ を表示するのに使います。 書式 : plot {範囲 (ranges)} <関数 (function)> {表題 (title)} {スタイル (style)} {, <関数> {表題} {スタイル}...} 7 GNUPLOT 3.5 splot {範囲} <関数> {表題} {スタイル} {, <関数> {表題} {スタイル}...} ここで、<関数>は式、引用符に囲まれたデータファイル名、媒介変数表示における 2 組 (plot の場合) ま たは 3 組 (splot の場合) の式、のいずれかです。ここでは、ユーザ定義関数や変数が利用可能です。 plot や splot コマンドは、 plot sin(x) や、 splot x * y のような簡単な場合もあるでしょうし、 plot [t=1:10] [-pi:pi*2] tan(t),"data.1" with lines,t**2 with points のように複雑にすることもできます。 12.1 Data-le ファイルに書かれた離散的なデータは、そのデータファイル名を引用符に囲んで plot や splot コマンド中 に書くことによって、表示させることができます。データファイルには、一行にひとつずつデータが書かれ ていなければなりません。# (VMS では、!) で始まる行はコメントとして扱われ、無視されます。plot に 対しては、各データ点は (x,y) の組を表します。splot では、(x,y,z) です。エラーバー付きの plot (plot errorbars 参照) では、各データ点は、(x,y,ydelta) または (x,y,ylow,yhigh) を表します。いずれの場合も データファイル中の数字は、空白文字で区切られていなければなりません。この空白文字によって、各行 は列に区切られます。 plot コマンドについては、x の値を省略することができ、splot コマンドについては、x, y の値を省略す ることができます。 いずれのコマンドでも省略された値には、現在の座標値が使われます。この座標値は 0 から始まり、一つデータを読み込む毎に 1 づつふえまえす。 それ以外の、入力書式を指定する場合については、plot datale using を参照してください。 plot コマンドにおいて、データファイル中の空行はグラフの中断を起こします。つまり、プロットスタイ ルが lines や linespoints だった場合に、空行の前のデータと後のデータを結ぶ線は引かれません。( plot style 参照) なお、これはデータを異なる線でプロットするようにプロットのスタイル自身を変更するもの ではありません。 次の例は、population.dat というファイルのデータと、理論曲線とを比較するというものです : pop(x) = 103*exp((1965-x)/10) plot [1960:1990] 'population.dat', pop(x) ここで、ファイル population.dat は、例えば次のようになっています : # Gnu 1965 1970 1975 1980 1985 population in Antarctica since 1965 103 55 34 24 10 8 GNUPLOT 3.5 ファイル中のデータをプロットするときには、samples と iso samples は無視されます。plot コマンド で描かれた曲線は、その曲線全体が収まるように拡張されます。同様に、splot コマンドで描かれた格子 状のデータも拡張されます。この場合、各々の孤立した線 (以後孤立線) は、空行 (CR/LF のみの行) で分 離されているものと仮定しています。 明示していませんが、三次元のデータファイルには二種類あります。もしも、全ての孤立線が同じ長さを 持つならば、それは格子状のデータであるとしています。つまりデータが格子状のトポロジーを持つとい うことです。データが格子状であるときには、各孤立線を結ぶ横断線 (i 番目の横断線は孤立線の i 番目の 点を、孤立線を与えた順に全て結んだものになります。) も引かれるようになります。(等高線を描く機能 は格子状データにのみ有効であることに留意しておいてください。) 全ての孤立線が同じ長さを持つので なければ、横断線は引かれず、また等高線を引くことも出来ません。 splot を使う際に、3次元のデータファイルと、using format (splot datale using を参照してください) によって z(高さ) のみを指定する場合は非媒介変数表示モード (noparametric) を指定しなければなりませ ん。逆に、x, y, z 全てが与えられる場合は、パラメータによって張られた面をあらわすわけですから、媒 介変数モードを指定してください。(set parametric を参照してください) 三次元のデータファイルのによる簡単な描画例としては、 set parametric splot 'glass.dat' や set noparametric splot 'datafile.dat' などが、挙げられるでしょう。ここで、datale.dat は例えば : # The valley of the 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 年以降に限ることが出来ます。 三次元描画についてのほかの情報については、splot を参照してください。 9 GNUPLOT 3.5 12.1.1 Using ファイル中のデータの書式は、using オプションで指定できます。明示的に ることもできますし、簡単に列選択のみの指定をすることもできます。 書式 scanf の書式文字列を指定す : plot "datafile" { using { <ycol> | <xcol>:<ycol> | <xcol>:<ycol>:<ydelta> | <xcol>:<ycol>:<ylow>:<yhigh> } {"<scanf string>"} } ... 及び、 splot "datafile" { using { <xcol>:<ycol>:<zcol> | <zcol> } {"<scanf string>"} } ... ここで、<xcol>, <ycol>, <zcol> は、スペースまたはタブによって区切られた複数の列よりなるデータ ファイルにおいて、描画に使うデータの列を明示的に指定することになります。plot において <ycol> の みが指定された場合、<xcol> は、1 と仮定されます。splot において <zcol> のみが指定された場合、 ファイルからはその列だけが読み込まれます。<xcol> として 0 が指定された場合、<ycol> が座標番号 (0, 1, ..) にたいして描画されます。<xcol>, <ycol>, <zcol> は、定数、式のいずれでも指定できます。 plot においてエラーバー (plot errorbars を参照してください) を使う場合、ydelta (例えば±の誤差) の データを第3列におくか、ylow, yhigh のデータを第3、4列におく必要があります。この場合第1、2列 は x, y でなくてはなりません。 scanf 文字列を指定すると、列指定はその順番以外は無視されます。つまり、 plot "datafile" using 2:1 "%f%*f%f" とすると、第1列が y 、第3列が x となります。 scanf 文字列が省略された場合は、列指定 (<xcol>:<ycol>(:<zcol>)) に基づいて設定されます。using オプ ションが指定されなかった場合は、plot に対しては "%f%f"(errorbar 付きの plot については"%f%f%f%f) が使われ、splot に対しては "%f%f%f" が使われます。 例: plot "MyData" using "%*f%f%*20[^\n]%f" with lines これで \MyData" から "%*f%f%*20[^nn]%f" に従ってデータが読み込まれます。この書式指定文字列の 意味は : "%*f" によって最初の数が読みとばされ、 "%f" によって次 (2番目) の数が x として読み込まれま す。続いて"%*20[^nn]" によって、最大 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行読み込み、 GNUPLOT 3.5 10 sscanf(input_buffer, scanf_string, &x, &y{, &z}); と、しています。ここで、'x', 'y', 'z' は、単精度浮動小数型 (oat) です。2 つ (splot の時は3つ、errorbars の時は 3 または 4 つ) の単精度浮動小数型を指定する任意の文字列が scanf 文字列として使用できます。 12.2 Errorbars エラーバーは、二次元データのファイルにおいて、ydelta を指定する一つ、または ylow と yhigh を指定 する二つの追加列を読み込むことによって実現されます。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 となります。もしもある行に 二つしか数がなかった場合には、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 の各項目もあわせて参照してください。 12.3 Parametric 媒介変数モード (parametric mode) にあるとき (set parametric) には、式は plot については splot については 3 つ組で与えられなくてはなりません。すなわち plot sin(t),t**2 や splot cos(u)*cos(v),cos(u)*sin(v),sin(u) という具合です。 2 つ組、 11 GNUPLOT 3.5 データファイルは通常通りに描画されます。ただし、ファイル名が指定されるより前にある媒介変数表示 関数は、完全な形で指定されていなくてはなりません。つまり、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 12.4 Ranges range オプションはグラフの表示される領域を指定します。 範囲 (range) は、plot や splot のコマンドラインで指定することによってその描画のみに影響させること も、set xrange, set yrange などでそれ以降のデフォルト値を変更することも出来ます。 書式 : [{<仮変数> =} {<xmin> : <xmax>}] { [{<ymin> : <ymax>}] } ここで <仮変数> は独立変数 (既定では の項は定数式です。 x と y ですが、set dummy で変更可能です) で、min と max min と max の項は共に省略可能です。min, max のいずれも指定されなかった場合には、':' も省略可能 です。つまり、空の領域指定として、'[ ]' が許されます。 plot コマンドにおいて範囲を指定すると、その軸についての自動範囲指定 (autoscale) がオフになります。 set による範囲指定を行った場合も、それ以降、変更するまでの間、その軸についての自動範囲指定がオ フになります。(set autoscale を参照してください) 例: 現在の既定の範囲を使います : plot cos(x) x の範囲のみ指定します : plot [-10:30] sin(pi*x)/(pi*x) 上と同じですが、仮変数として plot [t = -10 :30] t を使います : sin(pi*t)/(pi*t) x, y 両方の範囲を指定します : plot [-pi:pi] [-3:3] tan(x), 1/x y の範囲のみを指定し、両方の自動範囲指定をオフにします : 12 GNUPLOT 3.5 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 12.5 Style グラフの表示方式には、lines, points, linespoints, impulses, dots, errorbars の 6 種類があります。 line は隣合う点を線でつなぎます。points は各点の位置にマークを描きます。linespoints は lines と points の両方を行います。impulses では x 軸 (splot においては底面) からの垂線を引きます。dots で は、多くの点の散布図に便利なように、各点の位置に小さな点を打 ちます。 errorbars は二次元でのデータファイルからのグラフでのみ利用できます。splot や関数の plot で指定 すると points を指定したものとします。データファイルよる plot では、errorbars は、鉛直なエラー バーが引かれることを除いては、plot の様に振舞います。つまり、各点 (x,y) に対して、(x,ylow) から (x,yhigh) への線が引かれることになります。エラーバーの両端はくさび型になっています。ylow と yhigh の値は、データファイルから using オプションに従って読み込まれます。さらなる情報は、plot を参照してください。 デフォルトの線種は set errorbars function style と set data style で指定できます。 既定では、各々の関数やデータファイルは、可能な限り異なる線種や点種を持ちます。全ての端末装置は最 低でも 6 種類の点種を持っていて、それを越えると順に再使用されます。LaTeX ドライバはさらに 6 つの 点種 (いずれも円の変種です) を持っているので、12 のグラフが描かれた後にのみ同じものが使われます。 必要ならば、グラフ毎に表示方式とその線/点種を指定することが出来ます。 書式 : with <表示方式> {<線種> {<点種>}} ここで、<表示方式> は、lines, points, linespoints, impulses, dots, errorbars の中のいずれかです。 <線種> と <点種> は正整数を表す定数または式で、その描画の線や点の種類を指定します。線種 1 はデ フォルトで最初に使われる線種で、線種 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 13 GNUPLOT 3.5 \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 を参照してください。 12.6 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 ' 測定データ' 13 Print print コマンドは <式> の値を画面に表示します。 書式 : print <式> expressions を参照してください。 14 GNUPLOT 3.5 14 Pwd pwd コマンドはカレントディレクトリの名前を画面に表示します。 書式 : pwd 15 Quit exit と quit の両コマンドと END-OF-FILE 文字は、GNUPLOT を終了させます。これらのコマンドは、 出力装置を clear コマンドと同様にクリアしてしてから終了させます。 16 Replot replot コマンドを引数なしで実行すると、最後に実行した plot または splot コマンドを再実行します。 これは、あるプロットを異なる set オプションでみたり、同じプロットを異なる装置に出力したりすると きに便利でしょう。 replot コマンドに対する引数は最後に実行した plot または splot コマンドの引数に (暗黙の ',' と共 に) 追加され、それから再実行されます。replot は、範囲 (range) を除いては、plot や splot と同じ 引数をとることができます。最後に実行した plot や splot コマンドの内容を修正する方法については command-line editing を参照してください。 17 Save save コマンドは、ユーザ定義関数、変数、set で設定するオプションのいずれかか、これらすべてと、そ れに加えて最後に実行した plot または splot コマンドを指定したファイルに保存します。 書式 : save {<オプション>} "<ファイル名>" ここで、<オプション> は、functions, variables, set のいずれかです。どれも指定されなかった場合 には、GNUPLOT は、ユーザ定義関数、変数、set で設定するオプション、最後に実行した plot または splot コマンドの全てを保存します。 save は、テキスト形式で出力します。また、このファイルは load コマンドで読み込むことができます。 ファイル名は引用符に囲われていなければなりません。 例: save save save save "work.gnu" functions 'func.dat' var 'var.dat' set "options.dat" 18 Set-show set コマンドは実に多くのオプションを設定します。 show コマンドはそれらの設定値を表示します。show all でそれら全てを表示します。 GNUPLOT 3.5 15 18.1 Angles GNUPLOT は、デフォルトでは、極座標形式のプロットの独立変数の単位としてラジアンを使います。set polar より先に set angles degrees を指定すると、デフォルトの範囲は [0:360] に変更され独立変数は度 を単位とするようになります。これは、データファイルからプロットするときに特に便利でしょう。angle の設定は3次元でも set mapping とともに使用することによって同様な効果があります。 書式 : set angles { degrees | radians } show angles 18.2 Arrow set arrow コマンドを使うことにより、グラフ上の任意の位置に矢印を表示させることが出来ます。 書式 : set arrow {<タグ>} {from <sx>,<sy>{,<sz>}} {to <ex>,<ey>{,<ez>}} {{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 16 GNUPLOT 3.5 18.3 Autoscale 自動縮尺機能 (autoscale) は x 、y 、z の各軸に対して独立にまたは一括して指定できます。既定では全て の軸に対して自動縮尺設定を行います。 自動縮尺機能を使うときは、描画範囲は自動的に割り出され、従属変数軸 (plot のときは y 軸、splot の ときは z 軸) は、関数やデータの値域が収まるように設定されます。 従属変数軸の自動縮尺機能が指定されていない場合は、現在の y や z の描画範囲がそのまま使われます。 set yrange や set zrange を参照してください。 独立変数軸 (plot のときは x 軸、splot のときは x, y 軸) の自動縮尺機能が指定されている場合は、描画 されるデータファイルの全ての点が収まるように定義域をとるようになります。データファイルが一つも 指定されていない場合は、自動縮尺機能はなんの効果もありません。つまり、関数のみが指定されていて データーファイルを使わない場合は、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 18.3.1 Parametric mode 媒介変数表示モード (set parametric) においては、xrange も yrange と同様に縮尺を変えることが出来 ます。つまり、媒介変数モードにおいては、x 軸方向も自動的に縮尺が調整され、描こうとしている、媒 17 GNUPLOT 3.5 介変数表示の関数が収まるようになります。もちろん、y 軸方向も媒介変数モードでない時同様に自動的 に縮尺を変えます。x 軸について自動縮尺機能が設定されていない場合は、現在の x の範囲が使われます。 データファイルと関数が混在している場合、x 軸方向の自動縮尺機能が設定されているならば、関数の x 軸方向の描画範囲は、データファイルの自動縮尺に合わせられます。このように現在は媒介変数表示でな い場合との互換性をとってありますが、将来変更されるかもしれません。これは、媒介変数表示モードに おいては、そうでないときほど x 軸と y 軸の区別が無いために、このような動作が多くの場合に便利でな いかもしれないという考えによるものです。 片手落ちにならないように set autoscale t というコマンドも使えるようになっています。しかしその効 果は非常に小さいものです。自動縮尺機能が設定されていると、GNUPLOT が t の範囲が無くなってし まうと判断した場合に範囲を少し調整します。自動縮尺機能が設定されていないと、このようなときには エラーとなります。このような動作は実はあまり意味がない可能性があり、結局 set autoscale t という コマンドは存在意義が問われるべきものとなっています。 splot においては上記の発想に基づいたうえで拡張されています。自動縮尺機能が設定されている場合、x, y, z の各描画範囲は計算結果が収まるように設定され、縮尺調整されることになります。 18.4 Border set border と set noborder の両コマンドは、plot や かどうかを指定します。 書式 splot によるプロットのまわりに枠を表示する : set border set noborder show border 18.5 Clip GNUPLOT はグラフの端の辺りのデータ点や線をクリッピングすることが出来ます。 書式 : set clip < クリップ型> set noclip < クリップ型> show clip クリップ型として GNUPLOT は points, one, two の三種を扱えます。ある描画に対して、これらのク リップ型は任意の組み合せで設定することができます。 クリップ型 points を設定すると、描画領域内にはあるけれど境界線に非常に近いような点をクリップす る (実際には描画しないだけですが) ように GNUPLOT に指示します。これは点として大きなマークを使 用したときに、そのマークが境界線からはみ出さないようにする効果があります。points をクリップしな い場合、境界線の辺りの点が汚く見えるかもしれません。その場合、x や y の描画範囲 (xrange, yrange) を調整してみてください。 クリップ型 one を設定すると、一端のみが描画領域にあるような線分も描画するように GNUPLOT に指 示します。この際、描画領域内にある部分のみが実際に描画される範囲です。設定しなかった場合、この ような線分は描画対象とならず、どの部分も描画されません。 両端は共に描画範囲に無いが描画領域を通過するという線分もあります。クリップ型 two を設定すること によって、このような線分の描画領域の部分を描画することが出来ます。 どのような状況でも、描画範囲の外に線が引かれることはありません。 既定では、noclip points, clip one, noclip two となっています。 全てのクリップ型の設定状況を見るには、 18 GNUPLOT 3.5 show clip とします。 過去のバージョンとのとの互換性のため以下の書式も使用可能です。 set clip set noclip set clip は set clip points と同義です。set noclip は三種のクリップ型全てを無効にします。 18.6 Cntrparam 等高線引きのための変数設定します。(contour も参照してください) 書式 : set cntrparam { { linear | cubicspline | bspline } | points <n> | levels <n> | order <n> } このコマンドは等高線がどのように引かれるかを制御します。<n> は整数型の定数式とします。各変数の 意味は次のとおりです : linear, cubicspline, bspline | 近似 (補間) 方法を指定します。linear ならば、等高線は曲面から得ら れた値により、区分的に直線で引かれます。cubicspline ならば、区分的な直線は、波打つ可能性があり ますが、いくぶんなめらかな等高線を得られるように補間されます。三番目の選択枝は bspline です。こ れは区分的な直線から近似値を求めるだけですが、よりなめらかになることが保証されています。 points | 最終的には、全ての描画は、区分的な直線で行われます。ここで指定した数が曲線を補間する 点の数になります。これは cubicspline と bspline についてのみ有効です。 levels | 等高線の準位数。曲面が zmin から zmax の範囲にあるとき、等高線は、zmin + dz から zmin - dz の範囲で dz 刻みで描かれます。このとき、dz = (zmax - zmin) / (levels + 1) となります。 order | bspline 近似の次数。この次数が大きくなるに連れて、等高線がなめらかになります。(もちろ ん、高次の bspline 曲線ほど元の区分的直線からは離れていきます) このオプションは、bspline モード でのみ有効です。指定できる値は、2 (直線) から 10 までの整数です。 18.7 Contour 面の等高線を引くことを指示します。このオプションは 書式 : splot でのみ有効です。 set contour { base | surface | both } set nocontour もしも set contour に対してオプションが指定されていないときは、base であると仮定されます。これ らの 3 つのオプションは等高線をどこに引くかを指定します。base では等高線を x/y 軸の刻みのある底 面に描きます。surface では等高線を面自体の上に描きます。both では等高線を底面と面上の両方に描 きます。 等高線の描画に影響を与えるパラメータについては set cntrparam も参照してください。 18.8 Data style set data style コマンドはデータのプロットに関するデフォルトのプロットスタイルを変更します。 19 GNUPLOT 3.5 書式 : set data style show data style set data style <プロットスタイル> 最初の例では、set data style は選択可能なプロットスタイル (lines, points, linespoints, dots, impulses, errorbars) を表示します。show data style は現在のデータ用のデフォルトのプロットスタイル を表示します。set data style dots で実際にプロットスタイルを変更します。plot も参照してください。 18.9 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 に変更し、後者は、二番目の変数のみを (s に) 変更します。 set parametric コマンドも仮変数を変更します。(plot 用には t 、splot 用には、u, v) 18.10 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 も参照してください。 GNUPLOT 3.5 20 18.11 Function style set function style コマンドは関数描画の方法を変更します。 書式 : set function style show function style set function style <描画方法> 最初の例では、set function style は可能な描画方法を表示します : lines, points, linespoints, dots, impulses, errorbars show function style は現在設定されている、関数の描画方法を表示します。set function style linespoints は実際に描画方法変更するように指定します。 plot も参照してください。 18.12 Functions show functions コマンドはユーザーが定義した関数とその定義内容を表示します。 書式 : show functions 18.13 Grid この、set 書式 : grid によって刻みの位置に座標軸と同じ線で枠が描かれるようになります。 set grid set nogrid show grid 18.14 Hidden3d set hidden3d コマンドは明示的な面描画 (splot を参照してください) での陰線処理を行うように指示し ます。陰線処理は GNUPLOT が媒介変数モードでない (nonparametric) 時に陽関数と、明示的なデータ の描画について行うことが出来ます。(set parametric を参照してください) この機能が有効なときは、面を構成する線、等高線 (set contour を参照してください) 、座標軸の全てに 対して陰線処理が行われます。見出し (labels) と矢印 (arrows) は常に表示されるので、この機能によって 影響をうけることはありません。 同時に複数の面を描画した場合は、陰線処理は各々自身についてのみ行われます。また、この機能は、面 が線 (line style) で描画された時のみ有効となります。 書式 : set hidden3d set nohidden3d show hidden3d 18.15 Isosamples 孤立線は面を記述する二つの媒介変数のうちの一つを固定した時に現れる曲線です。孤立線による表現は、 面を表示する簡単な方法です。面 s(u,v) の媒介変数 u を固定することによって、c(v) = s(u0,v) という u 一定の線ができます。また v を固定することによって、c(u) = s(u,v0) という v 一定の線ができます。 GNUPLOT 3.5 21 面の孤立線の密度は set isosamples コマンドで変更できます。既定では、サンプル数は u/v 軸につき 10 本の孤立線を引くようになってます。この数値を増やすことによってより正確な描画が出来ますが、動作 が遅くなります。なお、このパラメータはデータファイルの描画には何も影響を与えません。 書式 : set isosamples <式> show isosamples 18.16 Key set key コマンドは描画された曲線の説明を表示すように指示します。既定ではこの説明 (key) はグラフ の右上の角に表示されます。 書式 : set key set key <x>,<y>{,<z>} set nokey show key 座標 <x>, <y>, (splot においては <z> も) は、この説明をどこに配置するかを指定します。この説明 は、一行に一曲線分ずつ曲線の数だけ表示されます。各行には左側に曲線と同じ種類の直線が引かれ、その 右側に plot コマンドから得られる文字列を表示します。この文字列を変更する方法については plot title を参照してください。これらの行は、文字と直線の間をそろえて整列されます。set key コマンドで指定 する座標は、この整列の位置を指定することになります。plot では x と y が参照され、splot では x, y, z の三つが参照されいずれもグラフと同じ座標系で指定することになります。 場合によってはこの説明の一部または全部が境界の外にはみ出すこともあります。この場合見出しなどと 重なってしまうこともあり、また出力装置によってはエラーを生じることもあります。 例: 既定の位置に説明を表示します : set key 説明を表示しなくします : set nokey 説明を (2, 3.5, 2) の位置に表示します : set key 2,3.5,2 18.17 Label set label コマンドを使うことによって任意の見出しをグラフ中に表示することが出来ます。plot コマン ド使用時には z 座標は無視されます。splot においてこれが指定されていないときは 0 であると仮定され ます。 書式 : set label {<タグ>} {"<見出し文字列>"} {at <x>,<y>{,<z>}} {<そろえ位置>} set nolabel {<タグ>} show label 22 GNUPLOT 3.5 文字列を省略した場合は "" であるとされます。位置を省略した場合は 0, 0, 0 であるとします。<x>, <y>, z は全て、グラフと同じ座標系で指定します。<タグ> は見出しを識別するための整数値です。<タグ > を指定しなかった場合未使用のもので最も小さい値のものが自動的に使われます。< タグ> は特定の見 出しを削除したり変更したりするのに使用できます。変更したい見出しのタグ番号を使って、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 (Latex, EEPIC, 及び Imagen に出力する場合文字列中に nn を入れることによって改行させることが出来 ます) 18.18 Logscale 対数スケールは、x, 書式 y, z の各軸について設定できます。 : set logscale <軸> set nologscale <軸> show logscale ここで、<軸> は、x, y, z の任意の順序による組み合せが可能です。もし、<軸> が指定されなかった場 合、全部が指定されたことになります。set logscale コマンドが指定された軸の対数スケールを有効にし、 set nologscale で、解除します。 例: x, z 両軸について対数スケールを設定する : 23 GNUPLOT 3.5 set logscale xz z 軸の対数スケールを解除する : set nologscale z 18.19 Mapping 書式 : set mapping { cartesian | spherical | cylindrical } splot におけるデータは通常はユークリッド (Euclidean) 空間でのカーテシアン (Cartesian) 座標系で与え られます。このような三次元データは (x,y,z) の三つの数値または z 座標のひとつの数値を一行に書くこと によって与えられます。set mapping コマンドを使うことによって、これを球 (spherical) 座標系や円筒 (cylindrical) 座標系に変更することが出来ます。いずれの場合も、一行につき二つの数値を与えることに なります。球座標系の場合、これらはθとφ (単位は set angles で指定したもの) でこの場合 x = cos θ * cos φ y = sin θ * cos φ z = sin φ と変換されます。円柱座標系の場合、θ (単位は set angles で指定したもの) と z を与え、 x = cos θ y = sin θ z = z と変換されます。なお、この mapping の機能はデータファイルの splot のみに影響することに留意して ください。 18.20 Osets グラフにおける描画素領域は set osets によって、ある程度制御することができます。このコマンドは、 4つの引数 (<左>, <右>, <上> , <下>) をとります。既定では、このオフセットは 0 です。各オフセッ トは定数でも式でも構いません。左右のオフセットは x 軸と同じ単位で指定し、上下のオフセットは y 軸 と同じ単位で指定します。sin(x) をオフセット 0, 0, 2, 2 で表示させると、その曲線は表示される y の範囲 の 1/3 を占めます。オフセット機能は極座標を使う場合に縦横比を調整する上で特に重宝します。splot ではオフセットは無視されます。 書式 : set offsets <左>, <右>, <上> , <下> show offsets 18.21 Output 既定では、グラフは標準出力に出力されます。set ダイレクトします。 書式 : set output {"<ファイル名>"} show output output コマンドは、出力をファイルやデバイスにリ 24 GNUPLOT 3.5 ファイル名は引用符に囲まれていなければなりません。ファイル名が与えられなかった場合は、出力は標 準出力に送られるようになります。 UNIX などの popen の機能を持ったいくつかのシステムにおいては、出力はシェルコマンドによって実行 されたプログラムに対してパイプ経由で送ることが出来ます。このためにはファイル名として 'j' で始まる コマンドを与えてください。例を挙げます : 書式 : set output "|lpr -Plaser filename" set output "|lp -dlaser filename" (MSDOS ではファイル名として \prn" を指定すると標準のプリンタに出力することが出来ます。) 18.22 Parametric set paramaetric コマンドは plot 及び splot の意味を通常の関数描画から媒介変数表示 (parametric) 関数描画に変更します。set noparametric を使えば元の描画モードに戻ります。 二次元グラフにおいては、媒介変数表示関数はひとつの媒介変数に対する二つの関数で定められます。例 としては plot sin(t),cos(t) とすることによって円が描けます。 三次元グラフにおいては面は x = f(u,v), y = g(u,v), z = h(u,v) で定められます。よって三つの関数を組 で指定する必要があります。例としては、splot cos(u)*cos(v),cos(u)*sin(v),sin(u) とすることによって球 面が描けます。ひとつの曲線につき、二つの媒介変数に関する三つの関数が必要となるわけです。 これによって表現できる関数群は、単純な f(x) 型の関数群の内包することになります。なぜならば二つ (三 つ) の関数は x 、y ( 、z) の値を独立に計算することを可能にするからです。実際、 t,f(t) ( u,v,f(u,v) ) と 書くことによって f(x) ( f(u,v) ) と同じことを実現できます。 媒介変数表示関数は、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] となっています。将来的にはこれらの既定値をもっと有意なものに変更する予定です。 18.23 Polar set ploar コマンドはグラフの描画方法を直行座標系から極 (polar) 座標系に変更します。極座標系では、 仮変数 x は角度を表します。そしてその変域はそれまでの設定値にかかわらず、 set angles の設定によ り [0:2*pi] (ラジアン、radians) ないしは [0:360] (度、degree) に変更されます。 set nopolar によって描画方法を元の直行座標系に戻します。x の変域は強制的に [-10:10] に変更され ます。 set poloar コマンドは splot には対応していません。splot mapping を参照してください。 に対するこれに似た機能については set 極座標モードである間は x の関数は r = f(x) を指定することになります。ここで x は回転角を表します。 xrange によって角度の変域を指定し、yrange によって動径の変域を指定します。グラフは四角い領域の 中に描画され x 座標と y 座標の単位は動径と同じです。つまり、yrange が出力における両方向の変域を 定めることになります。軸方向の刻みは、左と下ではなく座標軸上に刻まれることになります。これらの 値は、rrange (set rrange 参照) で指定された <rmin> をオフセットとして持ちます。x 軸方向と y 軸 方向に異なる単位長を指定することは出来ません。yrange は第 1 ないしは第 3 象限のみを表示するための 指定にも使えます。 書式 : GNUPLOT 3.5 25 set polar set nopolar show polar 例: set polar plot x*sin(x) plot [-2*pi:2*pi] [-3:3] x*sin(x) 始めの例は 0 から 2 π という既定の角度変域を使います。動径とグラフの大きさは自動的に拡大縮小さ れます。二番目の例は仮変数の変域を拡張して、動径方向の変域 (とグラフの大きさ) を [-3:3] に制限して います。 18.24 Rrange set rrange コマンドは極 (polar) 座標モードでの x 値、y 値を求めるときの動径方向の変域を指定します。 極座標モードでないときは何の影響もありません。(set polar 参照) このコマンドを使うことによって極 の中心における値に <rmin> のオフセットを設定し、動径方向の単位を平行移動させます。例えば、set rrange [-40:40] とすると、極の中心を -40 として、動径方向に -40 から 40 の範囲の値を描画します。 よって、360 度分のデータを描画すると中心から 80 単位分の距離のグラフとなります。グラフ全体を見渡 す場合は、set yrange [-80:80] とすることによって、正方形の描画領域が設定され、円を描くと軸に接 するようになります。xrange は角度の変域を定める目的に使われるため、yrange の設定によって描画領 域は必ず正方形になります。例えば set yrange [0:80] とすると第一象限が、set yrange [-80:0] とす ると第三象限が表示されます。正方形でさえあればどのような描画領域でも設定できますが、極の中心は 必ず右上と左下を結ぶ 45 度線上に来ることになります。 rrange は、極座標モードであるときには plot コマンド中で直接指定することも出来ます。 書式 : この set rrange [{<rmin> : <rmax>}] rmin> と <rmax> は定数または式です。 <rmin> と <rmax> は共に省略可能です。省略した部分はそれ以前の値のままに留まります。よって < set rrange [:10] とすると <rmax> を 10 にしますが、<rmin> は変更されません。 18.25 Samples 関数のサンプリング数は set samples コマンドで変更できます。既定では、サンプル数は 100 点となって います。この値を増やすとより正確な描画を得られるようになりますが、遅くなります。このパラメータ は、もはやデータファイル (data-le) の描画には何の影響も与えません。 書式 : set samples <式> show samples 18.26 Size set size コマンドはグラフの大きさを拡大縮小します。出力装置によっては大きさを変更すると文字の位 置がずれることがあります。拡大を指定するとおかしな結果が得られることもあります。縮小は多くの場 合うまくいきます。 26 GNUPLOT 3.5 書式 : set size {<xscale>,<yscale>} show size xscale> と <yscale> は拡大係数です。省略時には既定値 (1,1) が使用されます。 例: 通常の大きさに設定します : < set size 通常の半分に設定します : set size 0.5,0.5 横長 (landoscape) グラフの極座標描画が縦横同縮尺になるように設定します : set size 0.721,1.0 現在設定されている大きさを表示します : show size LaTeX 及び Fig を出力装置としている場合、普通の大きさ (拡大係数 1,1) は 5 インチ幅の 3 インチ高で す。big Fig (bg) の場合は 7 インチ幅の 5 インチ高です。postscript では横長 (landoscape) モードで 10 インチ幅の 7 インチ高です。グラフの大きさは、軸や見出しを含んでいることに留意してください。グラ フ自身の描画領域はこれよりさらに小さくなります。 18.27 Style グラフは六種類の描画方法の中のいずれかで表示することが出来ます。lines, points, linespoints, impulses, dots, errorbars の六種です。lines は隣合う点を直線で結びます。points は各点の位置に小さ なマーカを描きます。linespoints は lines と pointes の両方を行います。impulses は各点から x 軸へ 垂線を引きます。dots は各点の位置に点を打ちます。多くの点の集合の散乱図などに適しています。 errorbars はデータファイルの plot でのみ使用できます。関数の plot や splot などで使われた場合は points として扱われます。データファイルの plot においては errorbars は、やはり points の様に描か れますが、各点に鉛直な誤差指示線加わる点が異なります。ある点 (x,y) に対して、誤差指示線が (x,ylow) から (x,yhigh) まで引かれます。誤差指示線の両端には短い横線が描かれます。ylow と yhigh はデータ ファイルの第三及び第四引数が読み込まれます。plot の using オプションによって読み込む位置を変更 することも出来ます。詳しくは plot errorbars を参照してください。 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, errorbars のいずれかです。 27 GNUPLOT 3.5 18.28 Surface set surface によって面の表示を制御できます。等高線を単独で表示したいときに便利でしょう。set nosurface が実行されると面の孤立線や網は引かれなくなります。set contour も参照してください。 書式 : set surface set nosurface show surface 18.29 Terminal GNUPLOT は数多くのグラフィック装置をサポートしています。set terminal コマンドをつかって GNUPLOT の出力の対象となる装置の種類を選んでください。 書式 : set terminal {<装置の種類>} show terminal 装置の種類> が与えられなかった場合には、GNUPLOT は利用可能な端末装置の一覧を表示します。< 装置の種類> は短縮して構いません。 < set output を使用してください。 いくつかの装置には追加的なオプションがあります。例えば、dumb, iris4d, hpljii, postscript などを 出力をファイルやデバイスにリダイレクトするときには 参照してください。 18.29.1 Dumb ダム (dumb) 端末ド ライバはオプションでサイズを指定できます。 書式 : set terminal dumb {<xsize> <ysize>} ここで xsize> と <ysize> はダム端末のサイズを指定します。既定値は 79 × 24 です。 < 例: set term dumb set term dumb 79 49 #(VGA screen - why would anyone want to do that!?) 18.29.2 Hpljii HP LaserJet II と HP DeskJet のドライバには一つオプションがあります。 書式 : set terminal hpljii {<解像度>} set terminal hpdj {<解像度>} ここで <解像度> は出力解像度を 1 インチ当りのドット数 (dpi) で指定します。値は のいずれかでなければなりません。 例: set terminal hpljii 150 75, 100, 150, 300 28 GNUPLOT 3.5 18.29.3 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 0 170 85 170 0 255 255 255 85 0 170 85 0 0 255 0 170 85 255 85 255 170 170 85 0 170 255 0 0 255 85 85 85 170 0 /* /* /* /* /* /* /* /* /* /* /* /* Back Ground */ Boundary */ Labeling */ Plot Color 1 */ Plot Color 2 */ Plot Color 3 */ Plot Color 4 */ Plot Color 5 */ Plot Color 6 */ Plot Color 7 */ Plot Color 8 */ Plot Color 9 */ このファイルは正確に 12 行あり、各行に RGB の 3 つ組があります。空行があってはいけませんし、3 番 目の数の後ろにあるものはすべて無視されます。 18.29.4 Pbm PBMplus ドライバは多くのオプションを受け付けます。 書式 : set terminal pbm {<fontsize>} set terminal pgm {<fontsize>} set terminal ppm {<fontsize>} ここで <fontsize> は small, medium, large のいずれかです。既定の大きさは幅 640 点、高さ 480 点 あります。pbm の出力はポータブル・ビットマップです。 (1 点当り 1 ビット) pgm の出力はポータブフ・ グレーマップです。 (1 点当り 3 ビット) ppm の出力はポータブフ・ピックスマップです。 (カラーで 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 ppm medium 29 GNUPLOT 3.5 18.29.5 Postscript PostScript ドライバは多くのオプションを受け付けます。 書式 : set terminal postscript {<mode>} {<color>} {"<fontname>"} {<fontsize>} ここで <mode> は landscape, portrait, default のいずれか。default を指定すると全てのオプションを "<fontname>" は有効な PostScript 既定状態に戻します。<color> は color か monochrome のいずれか。 フォントの名前。<fontsize> は PostScript のポイント単位でのフォントの大きさ。ここで設定する値は set size コマンドで拡大縮小される前の大きさ。既定値は landscape, monochrome, \Courier", 14pt です。Postscript に出力する際の普通の大きさは 10 インチ幅の 7 インチ高です。 EPS を出力する場合は、eps モードを使用し、ひとつのファイルにつきひとつのグラフのみを出力してく ださい。EPS モードでは全ての描画は半分の大きさになります。フォントの大きさは指定値の半分になり ますし、描画領域も 5 インチ幅の 3.5 インチ高になります。 例: set set set set set set term term term term size term postscript default # 旧 postscript postscript landscape 22 # 旧 psbig postscript eps 14 # 旧 epsf1 postscript eps 22 # 旧 epsf2 0.7,1.4 post portrait color "Times-Roman" 14 18.29.6 Table set terminal table とすると、グラフを描画する代わりに式の評価結果を x, y, z の値として ASCII 文 字でマルチカラム出力します。絵ではなく数字を見たい場合、このド ライバを使うことによって数値を画 面やファイルに出力することが出来ます。 18.29.7 Aifm Adobe Illustrator 3.0 ドライバは多くのオプションを受け付けます。 書式 : set terminal aifm {<color>} {"<fontname>"} {<fontsize>} default を指定すると全てのオプションを既定値に戻します。<color> は color か monochrome のい "<fontname>" 有効な PostScript フォントの名前。<fontsize> は PostScript のポイント単位 ずれか。 でのフォントの大きさ。ここで設定する値は set size コマンドで拡大縮小される前の大きさ。既定値は monochrome, \Courier", 14pt です。 さらに、AI は複数ページを扱えないので複数のグラフを出力した場合は次々に重なるようになっています が、各々のグラフはグループ化されていますから AI の中で拾いあげて移動することによって分離できる ようになっています。 例: set set set set term term size term aifm aifm 22 0.7,1.4 aifm color "Times-Roman" 14 GNUPLOT 3.5 30 18.30 Tics 既定では、刻みは境界の枠の 4 辺全てからグラフの内側に向かって描かれます。set tics コマンドによっ て、刻みを外側に向かって、かつ、左と下にのみに表示するように変更できます。この機能は、インパル ス (impulse) で描画する際に便利です。 書式 : set tics {<方向>} show tics out のいずれかです。set tics だけでは in になります。 刻みの制御に関しては set xtics, set ytics, set ztics の各コマンドについても参照してください。splot をつかった三次元グラフでは、set ticslevel を使って、鉛直 (Z) 軸の相対的な高さを調整することが出来 ここで < 方向> は、in か ます。指定した数値引数はグラフの底の位置を指定します。ゼロを指定すると 正の数を指定すると z 軸上のどこかになります。 書式 x/y 軸のある底面になり、 : set ticslevel {<位置>} show tics ここで < 位置> は非負の数値です。例えば set ticslevel 0.5 によって既定値になります。 set view も参照してください。 18.31 Time set time を使うことによってグラフの上辺または下辺に日付と時刻を入れることが出来ます。具体的な場 所は出力装置に依存します。 書式 : set time {<xoff>}{,<yoff>} set notime show time 定数 <xo> または <yo> を追加することによって日時表示を文字座標系で指定したオフセット分だけ 動かすことが出来ます。 例: set time ,-3 とすると、文字の高さの約三倍分下方向に移動することが出来ます。 18.32 Title set title コマンドはグラフの題名を上辺に中央ぞろえで出力します。オプションの x, y のオフセットを 指定するとその分だけ位置をずらすことが出来ます。これによって任意の位置に題名を表示することが出 来ます。set title と何も指定せずに使用すると題名の表示をしなくなります。 書式 : 31 GNUPLOT 3.5 set title {"<題名文字列>"} {<xoff>}{,<yoff>} show title オプション定数 <xo>, <yo> をオフセットとして指定すると指定した文字分だけ位置を動かすことが 出来ます。これはグラフの座標系ではなく文字座標系の文字数で指定します。例えば、 set title ,-1 とすると題名を下方向に約一文字分ずらすことになります。 (Latex, EEPIC, 及び Imagen に出力する場合文字列中に nn を入れることによって改行させることが出来 ます) 18.33 Trange set trange コマンドは媒介変数 (parametric) モードのときに、x 値、y 値を求めるときの媒介変数の変域 を指定します。媒介変数モードでない時何の影響もありません。(set parametric 参照) このコマンドに よって x/y の自動縮尺機能や x/y の変域が影響をうけることはありません。 この変域は媒介変数モードのときには 書式 : plot コマンド中で指定することも出来ます。 set trange [{<tmin> : <tmax>}] ここで、<tmin> と tmax> は、定数または式です。 < tmin> と <tmax> は共に省略可能です。省略されたものは変更されません。よって < set trange [:10] によって tmax は ください。 10 になりますが tmin は変わりません。set urange と set parametric も参照して 18.34 Urange set urange と set vrange の各コマンドは媒介変数 (parametric) モードにおいて splot で x 値、y 値、 z 値を計算するのに使う媒介変数の変域を指定します。媒介変数モードでない時何の影響もありません。 (set parametric 参照) このコマンドによって x/y の自動縮尺機能や x/y の変域が影響をうけることは ありません。 この変域は媒介変数モードのときには 照してください。 書式 splot コマンド中で指定することも出来ます。詳しくは plot を参 : set urange [{<umin> : <umax>}] ここで、<umin> と <umax> は、定数または式です。 umin> と <umax> は共に省略可能です。省略されたものは変更されません。よって < set urange [:10] によって umax は 10 になりますが umin は変わりません。set trange も参照してください。 32 GNUPLOT 3.5 18.35 Variables show variables コマンドは全てのユーザ定義変数とその値のの一覧を表示します。 書式 : show variables 18.36 View set view コマンドは splot における視点を指定します。このコマンドによって三次元座標系のグラフが どのように二次元の画面に投影されるかを制御します。このコマンドによって回転と拡大縮小を行うこと が出来ますが射影方法は正射影のみ用意されています。 書式 : set view <rot_x> {,{<rot_z>}{,{<scale>}{,<scale_z>}}} show view ここで、 <rot x> と <rot z> は仮想的な三次元座標系の軸に対する回転角を度で指定します。これは画 面水平方向を x 軸、鉛直方向を y 軸、そして、画面に対して垂直な方向を z 軸としています。<rot x> は [0:180] の範囲で指定でき、既定値は 60 度です。<rot z> は [0:360] の範囲で指定でき、既定値は 30 度です。<scale> は splot 全体の縮尺を決め、 <scale z> は z 軸方向のみに対する縮尺を決めます。こ れらの既定値は共に 1.0 です。 例: set view 60, 30, 1, 1 set view ,,0.5 前者は全ての値を既定値にしています。後者は全体の縮尺のみを set ticslevel も参照してください。 0.5 に設定しています。 18.37 Vrange set vrange コマンドは set urange コマンドとほぼ同じです。set urange を参照してください。 18.38 Xlabel set xlabel コマンドは x 軸の見出しを軸の中央にそろえて表示します。オプションの x 、y オフセットを 指定することによって任意の位置に表示することも出来ます。引数なしに set xlabel を実行すると見出 しを表示しなくなります。 書式 : set xlabel {"<label>"} {<xoff>}{,<yoff>} show xlabel オプション定数 <xo>, <yo> をオフセットとして指定すると指定した文字分だけ位置を動かすことが 出来ます。これはグラフの座標系ではなく文字座標系の文字数で指定します。例えば、 set xlabel -1 とすると題名を左方向に約一文字分ずらすことになります。 (Latex, EEPIC, 及び Imagen に出力する場合文字列中に nn を入れることによって改行させることが出来 ます) 33 GNUPLOT 3.5 18.39 Xrange set xrange コマンドは表示される水平方向の変域を指定します。このコマンドを実行すると る自動縮尺機能 (autoscaling) が解除されます。 x 軸に対す この変域は plot コマンド中で直接指定することも出来ます。 書式 : set xrange [{<xmin> : <xmax>}] ここで、<xmin> と <xmax> は、定数または式です。 xmin> と <xmax> は共に省略可能です。省略されたものは変更されません。よって < set xrange [:10] によって xmax は 10 になりますが xmin は変わりません。 18.40 Xtics set xtics コマンドによって、x 軸の刻みの細かい制御が可能です。set noxtics コマンドによって刻みを 表示させなくすることが出来ます。set xtics によって既定状態である刻みを表示する状態に戻ります。 書式 : set xtics { {<開始値>, <増分>{, <終値>}} | {({"<見出し>"} <位置> {, {"<見出し>"} <位置>}...)} } set noxtics show xtics <開始値>, <増分>, <終値> によって指定した場合は、<開始値> から <終値> の間にある x の値につ いて <増分> 毎に刻みを入れます。<終値> を指定しなかった場合、無限大が指定されたものとされます。 <増分> は負の値でも構いません。この書式による例をあげます : set xtics 0,.5,10 とすれば、 0, 0.5, 1, 1.5, ..., 9.5, 10 の位置に刻みを入れます。 ("<見出し>" <位置>, ...) 形式の指定では任意の位置に刻みを入れたり、刻みに数値でない見出しを入れ たるすることを可能にします。一組の刻は、各々省略可能な見出し文字列を伴った数値の組で表されます。 見出しは引用符に囲まれた文字列で、\hello" の様な定文字列でも、 "%3f clients" の様な刻の位置の座標値 に対する書式指定を含む文字列でも構いません。このような書式指定についてのより詳しい説明について は set format を参照してください。なお見出し文字列は空文字列でも構いません。例 : set xtics ("low" 0, "medium" 50, "high" 100) set xtics (1,2,4,8,16,32,64,128,256,512,1024) set xtics ("bottom" 0, "" 10, "top" 20) 刻は表示領域内に存在する時のみ表示されます。 set ytics, set noytics コマンドも全く同様に動作します。set format も参照してください。 18.41 Xzeroaxis set xzeroaxis コマンドは x 軸を描画します。既定では軸は表示されます。set noxzerozxis コマンドは x 軸を描画しないように指示します。 書式 : GNUPLOT 3.5 34 set xzeroaxis set noxzeroaxis show xzeroaxis 18.42 Ylabel set ylabel コマンドは y 軸の見出しを設定します。この見出しがどこに表示されるかは出力装置に依存 し、以下の三つのいずれかになります。またこの位置は省略可能な引数によって移動することも出来ます。 1. グラフの左上に左ぞろえで水平方向にに表示。文字を回転して表示することが出来ない出力装置はおそ らくこの方法を使用するでしょう。 2. グラフの左側に鉛直方向に表示。文字を回転して表示できる出力装置は、おそらくこの方法を使用する でしょう。 3. グラフの左側、水平方向に複数行の文字列を中央ぞろえで表示。LaTeX と EEPIC 用のド ライバはこ の方法を使います。見出し文字列がグラフと重ならないように nn を使って改行位置を指示する必要があ ります。縦方向に表示したい場合は、一文字毎に nn を入れるという方法もありますが、見栄えはよくな らないでしょう。 書式 : set ylabel {"<label>"} {<xoff>}{,<yoff>} show ylabel 何も文字列を指定しないと見出しは表示されなくなります。オプション定数<xo>, <yo> をオフセット として指定すると指定した文字分だけ位置を動かすことが出来ます。これはグラフの座標系ではなく文字 座標系の文字数で指定します。例えば、 set ylabel -1 とすると、y 軸見出しの x オフセットだけを変更することになります。この場合、既定の位置から左側に 約一文字分移動することになります。この機能は LaTeX 用のドライバで特に便利に使えるでしょう。 (Latex, EEPIC, 及び Imagen に出力する場合文字列中に nn を入れることによって改行させることが出来 ます) 18.43 Yrange set yrange コマンドは表示される鉛直方向の変域を指定します。このコマンドを実行すると る自動縮尺機能 (autoscaling) が解除されます。 y 軸に対す この変域は plot コマンド中で直接指定することも出来ます。 書式 : set yrange [{<ymin> : <ymax>}] ここで、<ymin> と <ymax> は、定数または式です。 ymin> と <ymax> は共に省略可能です。省略されたものは変更されません。よって < set yrange [:10] によって ymax は 10 になりますが ymin は変わりません。 18.44 Ytics set ytics と set noytics の両コマンドは set xtics 、set noxtics の各コマンドとほぼ同じです。set xtics を参照してください。 GNUPLOT 3.5 35 18.45 Yzeroaxis set yzeroaxis コマンドは y 軸を描画します。既定では軸は表示されます。set noyzerozxis コマンドは y 軸を描画しないように指示します。 書式 : set yzeroaxis set noyzeroaxis show yzeroaxis 18.46 Zero zero 値とは 0.0 に近い値に対する敷居値のことです。GNUPLOT は、数値の虚部の絶対値がこの zero 値を越えた場合には、その点を描画しません。また、各軸方向の変域はこの zero 値よりも狭くすること は出来ません。既定では zero 値は 1e-8 となっていますか set zero コマンドによって変更することが出 来ます。 書式 : set zero <式> show zero 18.47 Zeroaxis set yzeroaxis コマンドは x 軸及び y 軸を描画します。既定では軸は表示されます。set noyzerozxis コ マンドは x 軸、y 軸をどちらも描画しないように指示します。これは set noxzeroaxis; set noyzeroaxis と等価です。 書式 : set zeroaxis set nozeroaxis show zeroaxis set xzeroaxis と set yzeroaxis も参照してください。 18.48 Zlabel ます。オプションの x 、y オフセットを指定することによって任意の位置に表示することも出来ます。引 数なしに set zlabel を実行すると見出しを表示しなくなります。 : set zlabel f"<label>"g f<xo>gf,<yo>g show zlabel オプション定数 <xo>, <yo> をオフセットとして指定すると指定した文字分だけ位置を動かすことが 書式 出来ます。これはグラフの座標系ではなく文字座標系の文字数で指定します。例えば、 set zlabel ,1 とすると z 軸の見出しの y オフセットのみが変更されます。これによって見出しは約一文字分上方に移動 することになります。 z 軸の見出しは曲面や等高線が描かれると底面より高い部部については必ず表示されます。 (Latex, EEPIC, 及び Imagen に出力する場合文字列中に nn を入れることによって改行させることが出来 ます) 36 GNUPLOT 3.5 18.49 Zrange このコマンドを実行すると x 軸に対する自動縮尺機能 (autoscaling) が解除されます。zrange は のみ有効で plot では無視されます。 splot で この変域は splot コマンド中で直接指定することも出来ます。 : set zrange [f<zmin> : <zmax>g] ここで、<zmin> と <zmax> は、定数または式です。 <zmin> と <zmax> は共に省略可能です。省略されたものは変更されません。よって set zrange [2:] に よって zmin は 2 になりますが zmax は変わりません。 書式 18.50 Ztics set ztics, set noztics の両コマンドは set xtics, set noxtics の各コマンドとほぼ同じです。set xtics を参照してください。 19 Shell shell コマンドは対話的なシェルを起動します。GNUPLOT に戻るには、VMS では logout を、Unix な らば exit もしくは END-OF-FILE 文字を、AmigaDOS では endcli を、MS-DOS ならば exit を入力 してください。 単一のシェルコマンドならば、コマンド ラインの行頭に ! の文字 ( VMS では$) をつけることによっても 実現できます。この場合コマンドが終了するとすぐに制御は GNUPLOT に戻ってきます。例えば VMS, AmigaDOS, MS-DOS では、 ! dir とするとディレクトリの一覧を表示して GNUPLOT に戻ってきます。 20 Splot GNUPLOT では splot コマンドを使うことにより三次元的曲面や等高線の描画が出来ます。plot コマン ドと共通の機能については plot を参照してください。 他に、set contour, set cntrparam, set surface も参照してください。 21 Start-up GNUPLOT が起動されるとき、初期設定ファイルを読み込もうとします。このファイルは Unix と AmigaDOS では、.gnuplot であり、その他の処理系では GNUPLOT.INI となっています。このファイル がカレントディレクトリに無い場合、GNUPLOT はホームディレクトリを検索します。(AmigaDOS 及び MS-DOS では、環境変数 GNUPLOT にホームディレクトリに対応するディレクトリを指定します。) 初期設定ファイルが見つかると、GNUPLOT はこのファイルに書かれているコマンドを実行します。出力 装置の指定や、よく使う関数や変数の定義をここで行うと便利でしょう。 37 GNUPLOT 3.5 22 Substitution シェルコマンドをバッククォートで囲むことによってコマンド置換を行うことが出来ます。このコマンド は子プロセスで実行され、その出力結果でコマンド (及びそれを囲んでいる引用符) を置き換えます。 子プロセスの出力中の改行文字は空白文字に置換されます。 コマンド置換は、GNUPLOT のコマンドライン中、どこででも使用可能です。 例: 以下の例は、leastsq というプログラムを実行し、その出力結果で、leastsq を (まわりの引用符こみで) 置き換えます : f(x) = `leastsq` ただし VMS では、 f(x) = `run leastsq` 23 User-dened 新たにユーザ定義変数及びユーザ定義関数 (引数が一つまたは二つのもののみ) を定義することによって、 任意の場所でそれを使うことが出来ます。 ユーザ定義関数の書式 : <関数名> ( <仮引数 1> {,<仮引数 2>} ) = <式> ここで < 式> は <仮引数 1> 及び ユーザ定義変数の書式 < 仮引数 2> による表現です。 : <変数名> = <定数式> 例: w = 2 q = floor(tan(pi/2 - 0.1)) f(x) = sin(w*x) sinc(x) = sin(pi*x)/(pi*x) delta(t) = (t == 0) ramp(t) = (t > 0) ? t : 0 min(a,b) = (a < b) ? a : b comb(n,k) = n!/(k!*(n-k)!) pi はもともと定義されています。 show functions と show variables も参照してください。 24 Bugs ベッセル (bessel) 関数は複素数引数には対応していません。 Γ (gamma) 関数は複素数引数には対応していません。 GNUPLOT 3.5 38 Sun OS (SunOS Sys4-3.2) の stdio ライブラリにはバグがあります。printf の "%g" が時々不正確な表 示を行います (例 : \2" となるべきところを 200000.0 と表示する) 。これにより、Sun4 上の GNUPLOT では、座標軸の刻の見出しが不正確になる場合があります。回避方法としては、データを定数倍する方法 と set format コマンドを使って刻の書式指定を "%7.0f" などに変更する方法があります。この不具合は SunOS 4.0 では修正されているようです。 バグがもう一つ : SunOS 4.0 で動いている Sun3 及び、Sys4-3.2, SunOS 4.0 で動いている Sun4 におい て、'scanf' ルーチンが \00 12" という文字列を "%f %f" で読み込む際に解析ミスを起こし、0, 12 と読 み込むべきところを 0, 0 と読み込みます。これがデータ入力に影響を及ぼします。もしもデータファイル 中の x 座標値がゼロであるときにそれが '00', '000' などと表記されていると誤った y 座標値を読み込ん でしまいます。データファイルを確認するか SunOS をバージョンアップするかしてください。この不具 合は SunOS 4.1.1 では修正されているようです。 Microsoft C 5.1 では、printf の %g に関連してひどいバグがあります。"%.2g", "%.1g", "%.0g", "%.g" の 中のいずれを使った場合、printf 関数は 1e-4 から 1e-1 の範囲にある数値を不正確に表示します。%f を 使って %e の書式で出力されるべき数値を出力すると、小数点の後ろにつくゼロの数がおかしくなるとい う現象があります。 この不具合を回避するためには、 %e や %f を明示的に指定してください。 Microsoft C でコンパイルされた GNUPLOT はテストに使われた二つの VGA ディスプレイで正しく動 作しませんでした。Microsoft C のグラフィックライブラリを使うために CGA, EGA, VGA の各ドライバ を書きなおす必要があるでしょう。Turbo C でコンパイルされた GNUPLOT は Turbo C グラフィックラ イブラリを使っていますが、こちらは VGA ディスプレイで正常に動作しています。 VAX/VMS 4.7 C compiler release 2.4 も printf の %g の実装が貧弱です。数字は、数値としては正しく 表示されますが、時として指定した書式通りには表示してくれません。K&R の第二版では、%g を使った 場合、指数部が -4 よりも小さいか指定精度以上である時には %e の書式を使うと記されています。VAX では指数部が -1 より小さい場合に %e を使っています。VAX は 1 より小さい数について %e を使うか %f を判断する場合に指定精度を見ずに動作しているように思われます。この不具合を回避するためには %e や %f を明示的に指定してください。VAX C 2.4 リリースノートより : e,E,f,F,g,G 変換結果は常に小 数点を含みます。g および G については、末尾のゼロは取り除かれずに残ります。 VAX/VMS 5.2 C compiler release 3.0 は release 2.4 に比べて %g の実装状況が若干ながらよくなってい ます。末尾の小数点は取り除かれるようになりました。しかし %g の指数表記での末尾のゼロは以前とし て残ります。 ULTRIX X11R3 には X11 用のドライバが全てのグラフをいつまでも表示し続けるという現象を起こすバ グがあります。このバグは DEC の X11R4 のリリースで修正されたようなので、ULTRIX の新しいリリー スではこのような不具合は生じないようです。古いバージョンを持つサイトは、X11 ライブラリのアップ デートから行う必要があります (DEC もしくは直接 MIT から) 。他に、x11.trm というファイルをコンパ イルする際に、ULTRIX KLUDGE を dene するという回避方法もありますが、これはあまりお勧めで きません。 NeXT OS 2.0 では定数 HUGE が不正な値に設定されています。HUGE は plot.h において されているべきです。この不具合は NeXT OS のバージョン 2.1 では修正されています。 1e38 に設定 HP プロッタの旧いモデルにはページ排出コマンド 'PG' が実装されていないものがあります。現在の HPGL ドライバは HPGL reset 中でこのコマンドを使用しています。これらの旧モデルのために 'PG' コマンド を使わないようにする必要があるかも知れません。現在の PCL5 ドライバは、HPGL/2 をグラフィックだ けでなくテキストにも使用しています。これはスケーラブルな PCL フォントを使用するように変更する 必要があります。 バグが見つかったら bug-gnuplot@ames.arc.nasa.gov までご連絡ください。 なお、この文章の翻訳自体に関するバグを見つけた方は、ぜひ tamaru@keisu-s.t.u-tokyo.ac.jp までご連 絡ください。
© Copyright 2024 Paperzz