gnuplot-j

gnuplot


gnuplot

GNUPLOT は,コマンド入力方式の対話的な関数描画プログラムです.

ある項目についてのヘルプが必要なときには,help に続けてその項目名を 入力して下さい.

初めて GNUPLOT を使う方は,introduction の項目(help introductionと 入力して下さい)とplot コマンドの説明(help plotと入力して下さい)から 読みはじめると良いでしょう. さらに,USENETのニュースグループcomp.graphics.gnuplotからも助言を得ることが できるでしょう.

copyright
introduction
cd
clear
command line-editing
comment
environment
exit
expressions
fit
help
if
load
call
pause
plot
print
pwd
quit
replot
reread
save
set-show
shell
splot
start-up
substitution
update
user-defined
bugs
日本語訳について


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
  です.


introduction

GNUPLOT は,コマンド入力方式の対話的な関数描画プログラムです.コマン ドや関数名は大文字小文字を区別します.いずれのコマンドも,あいまいさ の無い限りにおいて省略することができます.1行中にはセミコロン(;)で区 切って複数のコマンドを書くことができます.文字列は引用符を使って表 します.引用符は,一重でも,二重でも構いません.

例:

         load "filename"
         cd 'dir'

コマンドラインでの引数は GNUPLOT 用のコマンドの書かれたファイルの名前 であるものとします.但し標準の X11 の引数は例外で,まず最初に処理され ます.各ファイルはコマンドライン上で指定された順に load コマンドで ロードされます.GNUPLOT は,最後に指定されたファイルを処理し終ると終 了します.ファイルが1つも指定されていない場合は,GNUPLOT は対話モー ドになります.

コマンドは,複数行にまたがることができます.その場合は,最終行以外の 全ての行の行末にバックスラッシュを(\)書く必要があります.バックスラッ シュは必ず各行 *最後* の文字でなくてはなりません.その結果としてバック スラッシュと,それに続く改行文字が存在しなかったかのように扱われます. つまり,改行文字がスペースの役をすることもありませんし,改行によって コメントが終了することもありません.ですから複数行にまたがる行をコメ ントアウトすると,そのコマンド全体がコメントアウトされることになりま す(comment 参照).

このドキュメントにおいて,中括弧({})は省略可能な引数を表すものとしま す.縦棒(|)は,互いに排他的な引数を区切るものとします.GNUPLOT のキー ワードやヘルプにおける項目名は,バッククオートまたは可能な場合には boldface で表します.角括弧(<>)は,それに対応するものに置き換えられ るべきものを表します.

ある項目についてのヘルプが必要なときには,help に続けてその項目名を 入力して下さい.

初めて GNUPLOT を使う方は,plot コマンドの説明から読みはじめると良 いでしょう(help plotと入力して下さい).


cd

cd コマンドはカレントディレクトリを変更します.

書式:

        cd "<ディレクトリ名>"

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

例:

        cd 'subdir'
        cd ".."


clear

clear コマンドは,set output で選択された画面または出力装置をクリ アします.通常,ハードコピー装置に対しては改ページを行います.出力装置 を選択するには set terminal を使用して下さい.


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 で使わ れているものと同じではありません.しかしそれなりに互換性はあります.)


comment

コメントは次のように実装されています: 文字 # は,行中のたいていの場 所に書くことができます.このとき GNUPLOT はその行の残りの部分を無視し ます.ただし,引用符の中,数(複素数を含む)の中,コマンド置換(command substitution)の中などではこの効果がありません.簡単に言うと,意味 のあるような使い方をしさえすれば,正しく動作すると言うことです.


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' と することになります.


exit

exitquit の両コマンドと END-OF-FILE 文字は,GNUPLOT を終了さ せます.これらのコマンドは,出力装置を clear コマンドと同様にクリア してしてから終了させます.


expressions

基本的には,C, FORTRAN, Pascal または BASIC において利用可能な数学表 現を使用できます.演算子の優先順位は,C 言語の仕様に従います. 数式中の空白文字とタブ文字は無視されます.

複素数の定数は{<実部>,<虚部>}と表せます.ここで<実部>と<虚部>は数定数 でなくてはなりません.例えば {3,2} は 3 + 2i を表し, {0,1} は i 自身を 表します.これらの場合には,明示的に中括弧を書く必要があります.


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

functions
operators


functions

GNUPLOT で使える関数は,引数として,特に断らない限り,整数,実数,複 素数をとれることを除いては, Unix の数学ライブラリの対応する関数と同 じものです.BASIC で使われているような sgn 関数も利用可能です.

abs
acos
arg
asin
atan
besj0
besj1
besy0
besy1
ceil
cos
cosh
erf
erfc
exp
floor
gamma
ibeta
inverf
igamma
imag
invnorm
int
lgamma
log
log10
norm
rand
real
sgn
sin
sinh
sqrt
tan
tanh


abs

abs 関数は引数の絶対値を返します.戻り値は引数と同じ型を持ちます.

複素数引数については,abs(x) は複素平面における x の長さと定義されて います.(つまり,sqrt(real(x)**2 + imag(x)**2) )


acos

acos 関数は引数のアークコサイン(逆余弦)をラジアン単位で返します.


arg

arg 関数は複素数の偏角をラジアン単位で返します.


asin

asin 関数は引数のアークサイン(逆正弦)をラジアン単位で返します.


atan

atan 関数は引数のアークタンジェント(逆正接)をラジアン単位で返します.


besj0

besj0 関数は引数のj0次ベッセル関数を返します.引数はラジアン単位で 与えます.


besj1

besj1 関数は引数のj1次ベッセル関数を返します.引数はラジアン単位で 与えます.


besy0

besy0 関数は引数のy0次ベッセル関数を返します.引数はラジアン単位で 与えます.


besy1

besy1 関数は引数のy1次ベッセル関数を返します.引数はラジアン単位で 与えます.


ceil

ceil 関数は引数よりも小さくない最小の整数を返します.複素数引数に対 しては,ceil は引数の実部よりも小さくない最小の整数を返します.


cos

cos 関数は引数の余弦を返します.引数はラジアン単位で与えます.


cosh

cosh 関数は引数の双曲余弦を返します.引数はラジアン単位で与えます.


erf

erf 関数は引数の誤差関数の実部を返します. 引数が複素数の場合は,虚部は無視されます.


erfc

erfc 関数は1から引数の誤差関数を引いたものを返します. 引数が複素数の場合は,虚部は無視されます.


exp

exp 関数は引数の指数関数(eの引数乗)を返します.


floor

floor 関数は引数よりも大きくない最大の整数を返します.複素数引数に 対しては,floor は引数の実部よりも大きくない最大の整数を返します.


gamma

gamma 関数は引数の実部のガンマ関数を返します.整数 n については gamma(n+1) = n!です.引数が複素数の場合は,虚部は無視されます.


ibeta

ibeta 関数は引数の実部の不完全ベータ関数を返します.p, q > 0 かつ x は [0:1] をとります.引数が複素数の場合は,虚部は無視されます.


inverf

inverf 関数は引数の実部の逆誤差関数を返します.


igamma

igamma 関数は引数の実部の不完全ガンマ関数を返します.a > 0 かつ x >= 0. 引数が複素数の場合は虚部は無視されます.


imag

imag 関数は引数の虚部を実数として返します.


invnorm

invnorm 関数は引数の実部の逆正規分布関数を返します.


int

int 関数は引数を0に近くなるように丸めた整数を返します.


lgamma

lgamma 関数は引数の実部のガンマ関数の自然対数を返します. 引数が複素数の場合,虚部は無視されます.


log

log 関数は引数の( $e$ を底とする)自然対数を返します.


log10

log10 関数は引数の $10$ を底とする対数を返します.


norm

norm 関数は引数の実部の正規分布(ガウス分布)関数を返します.


rand

rand 関数は,引数の実部を乱数種(seed)として,[0:1] 区間の疑似乱数を 返します.乱数種が負の場合(x < 0)は,系列は(再)初期化されます. 引数が複素数の場合,虚部は無視されます.


real

real 関数は引数の実部を返します.


sgn

sgn 関数は引数が正ならば1,負ならば-1,ゼロならば0を返します. 引数が複素数の場合には,虚部は無視されます.


sin

sin 関数は引数の正弦を返します.引数はラジアン単位で与えます.


sinh

sinh 関数は引数の双曲正弦を返します.引数はラジアン単位で与えます.


sqrt

sqrt 関数は引数の平方根を返します.


tan

tan 関数は引数の正接を返します.引数はラジアン単位で与えます.


tanh

tanh 関数は引数の双曲正接を返します.引数はラジアン単位で与えます.


operators

GNUPLOTにおける演算子(operators)は対応するC言語の演算子と同じものです. ただし,引数としては,特に断わらない限り,整数,実数,複素数のいずれ も利用可能です.またFORTRANにある冪(べき)乗演算子**が利用可能です.

括弧を使うことによって演算の順序を変更できます.

binary
unary


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)を評価し,その結果を返します.


unary

以下は利用可能な単項演算子とその使い方の一覧です.

 記号        使用例      説明
  -           -a          負符号
  ~           ~a        * 1の補数
  !           !a        * 論理的否定
  !           a!        * 階乗

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

階乗演算子(!)は大きな値を返せるように実数を返します.


help

helpコマンドは,オンラインヘルプを表示します.ある項についての説明 を指定したいときには,次の書式を使って下さい:

        help {<項目名>}

もし<項目名>が指定されなかった場合は,GNUPLOT についての簡単な説明が 表示されます.指定した項目についての説明が表示された後,それに対する 細目名の入力を求められる場合があります.そして,その細目の説明が表示 された後に,さらなる細目名の入力を要求されることもあるでしょう.ここ でリターンキーのみを押すと1つ上の大項目へと戻ります.これを繰り返す とやがて,GNUPLOT のコマンドラインへと戻ります.


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"

ならば,何も表示されません.


load

load コマンドは,指定された入力ファイルの各行を,それが対話的に入力 されたかのように実行します.save コマンドでつくられたファイルは, load することができます.有効なコマンドの書かれたテキストファイルを つくれば,それは,loadコマンドによって,実行することができます. load 中のファイルの中にさらに load または call コマンドがあっても 構いません.コマンド中のコメントについては,comment を参照して下さい.

load コマンドは,1入力行の中の最後のコマンドでなければなりません.

書式:

        load "<入力ファイル名>"

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

例:

        load 'work.gnu'
        load "func.dat"

GNUPLOT への引数として与えられたファイル名は,暗黙のうちに load コ マンドによって実行されます.これらは,指定された順にロードされ,その 後GNUPLOT は終了します.


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


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."


plot

plotsplot の両コマンドは,このプログラムの主要なコマンドです. これらは,関数やデータを実に多くの方法で表示します.plot は2次元的 関数やデータを表示するために使い,splot は3次元面やデータを表示す るのに使います.

書式:

       plot {範囲(ranges)} {<関数(function)> | 
                    {"<データファイル(datafile)>" {using ...}}}
                    {表題(title)} {スタイル(style)} 
                    {, <関数> {表題} {スタイル}...}

       splot {範囲} {<関数> | {"<データファイル>" {index i} {using ...}}}
                    {表題} {スタイル} {, <関数> {表題} {スタイル}...}

ここで,<関数>または,引用符に囲まれたデータファイル名を与えます. 媒介変数表示の場合には,関数は 2組(plotの場合) または 3組(splotの場合)の 数式です.ここでは,ユーザ定義関数や変数も利用可能です.

plotsplot コマンドは,

        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

のように複雑にすることもできます.

data-file
errorbars
parametric
ranges
index
style
title


data-file

ファイルに書かれた離散的なデータは,そのデータファイル名を引用符に囲 んで plotsplot コマンド中に書くことによって,表示させることが できます.データファイルには,1行に1つのデータ点が書かれていなけ ればなりません.# (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つデータを読み込む毎に 1 づつふえまえす.

それ以外の,入力書式を指定する場合については,plot datafile using を参照して下さい.

plot コマンドにおいて,データファイル中の空行は描画を中断させます. つまり,プロットスタイルが lineslinespoints だった場合 に,空行の前のデータと後のデータを結ぶ線は引かれません.( 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

ファイル中のデータをプロットするときには,samplesisosamples は無視されます.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 を参照して下さい.

using


using

ファイル中のデータの書式は,using オプションで指定できます.明示的 に scanf の書式文字列を指定することもできますし,簡単に列選択のみの指 定をすることもできます.

書式:

        plot "datafile" { using { <ycol> |
                                  <xcol>:<ycol> |
                                  <xcol>:<ycol>:<ydelta> |
                                  <xcol>:<ycol>:<ylow>:<yhigh> |
                                  <xcol>:<ycol>:<ylow>:<yhigh>:<boxwidth> }
                                {"<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列におく必要があります.

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 文字列が省略された場合は,列指定(<xcol>:<ycol>(:<zcol>))に基 づいて設定されます.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 文字列として使用できます.


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 usingplot style の各項目もあわせて参照して下さい.


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

withtitle などのオプション類は,媒介変数表示関数が完結してからのみ 指定できます.

        plot sin(t),t**2 title 'Parametric example' with linespoints


ranges

range オプションはグラフの表示される領域を指定します.

範囲(range)は,plotsplot のコマンドラインで指定することによっ てその描画のみに影響させることも,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)

上と同じですが,仮変数として 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


index

複数のメッシュデータを含むファイルのsplotは,index修飾子で制御することが できます.データファイルには1つ以上のメッシュデータを含めることができ, その場合はデフォルトではそのファイルの中の全てのメッシュがsplotされます. ファイルの中で,メッシュはお互いに2つの空行によって分離されています. 複数のメッシュを含むファイルから単一のメッシュをsplotするには,index修飾子を 使ってどのメッシュをsplotするか指定します.最初のメッシュはメッシュ0です.

例:

      splot "data1" index 2 with points

これは,pointsでファイルdata1の3番目のメッシュをsplotします.


style

グラフの表示方式には,lines, points, linespoints, impulses, dots, errorbars, steps, boxes, boxerrorbars の9種類があります. line は隣合う点を線でつなぎます. points は各点の位置にマークを描きます. linespointslinespoints の両方を行います. impulses ではx軸(splotにおいては底面)からの垂線を引きます. dots では各点の位置に小さな点を打ちます.これは,多くの点の散布図に 便利です.

errorbars は2次元でのデータファイルからのグラフでのみ利用できます. splot や関数の plot で指定すると points を指定したものとします. データファイルよる plot では,errorbars は,鉛直なエラーバーが引 かれることを除いては,plot の様に振舞います.つまり,各点 (x,y) に 対して,(x,ylow) から (x,yhigh) への線が引かれることになります.エラー バーの両端はくさび型になっています.ylow と yhigh の値は,データファ イルから using オプションに従って読み込まれます.より詳しい情報は, plot errorbars を参照して下さい.

boxes は2次元のグラフでのみ利用できます.また,boxerrorbars と呼ばれる 別のスタイルも,2次元のデータファイルからのグラフでのみ利用できます. このスタイルは boxeserrorbars スタイルの組合せです. 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 styleset 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 を参照して下さい.


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 の例を参照して下さい.


print

print コマンドは <式> の値を画面に表示します.

書式:

        print <式>

expressions を参照して下さい.


pwd

pwd コマンドはカレントディレクトリの名前を画面に表示します.

書式:

        pwd


quit

exitquit の両コマンドと END-OF-FILE 文字は,GNUPLOT を終了さ せます.これらのコマンドは,出力装置を clear コマンドと同様にクリア してしてから終了させます.


replot

replot コマンドを引数なしで実行すると,最後に実行した plot または splot コマンドを再実行します.これは,あるプロットを異なる set オ プションでみたり,同じプロットを異なる装置に出力したりするときに便利 でしょう.

replot コマンドに対する引数は最後に実行した plot または splot コマンドの引数に(暗黙の ',' と共に)追加され,それから再実行されます. replot は,範囲 (range) を除いては,plotsplot と同じ引数を とることができます. 最後に実行した plot (splot) コマンドの内容を修正する方法については command line-editing を参照して下さい.


reread

reread コマンドは,load コマンドまたはコマンドラインで指定した gnuplot の コマンドファイルを,その先のコマンドが読まれる前に,開始点に再設定する. これは,コマンドファイルの最初から reread コマンドまでのコマンドの無限 ループを本質的に実装したものである.標準入力からの入力の場合は,reread コマンドは何も影響がない.


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"


set-show

set コマンドは実に多くのオプションを設定します.

show コマンドはそれらの設定値を表示します.show all でそれら全て を表示します.

angles
arrow
autoscale
border
boxwidth
clabel
clip
cntrparam
contour
data style
dgrid3d
dummy
format
function style
functions
grid
hidden3d
isosamples
key
label
logscale
mapping
offsets
output
parametric
polar
rrange
samples
size
style
surface
terminal
tics
time
title
trange
urange
variables
view
vrange
xlabel
xrange
xtics
xdtics
xmtics
xzeroaxis
ylabel
yrange
ytics
ydtics
ymtics
yzeroaxis
zero
zeroaxis
zlabel
zrange
ztics
zdtics
zmtics


angles

GNUPLOT は,デフォルトでは,極座標形式のプロットの独立変数の単位とし てラジアンを使います.set polar より先に set angles degrees を指 定すると,デフォルトの範囲は [0:360] に変更され独立変数は度を単位とす るようになります.これは,データファイルからプロットするときに特に便 利でしょう.angle の設定は3次元でも set mapping とともに使用するこ とによって同様な効果があります.

書式:

        set angles { degrees | radians }
        show angles


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


autoscale

自動縮尺機能(autoscale)は x,y,z の各軸に対して独立にまたは一括して 指定できます.デフォルトでは全ての軸に対して自動縮尺設定を行います.

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

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

set yrangeset zrange を参照して下さい.

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

set xrangeset 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

parametric mode


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 の各描画範囲は計算結果が収まるよ うに設定され,縮尺調整されることになります.


border

set borderset noborder の両コマンドは,plotsplot によ るプロットのまわりに枠を表示するかどうかを指定します.

書式:

        set border
        set noborder
        show border


boxwidth

set boxwidth コマンドは,boxesboxerrorbar スタイルにおける 棒のデフォルトの幅を設定するために使います.

第5列で指定される幅のないデータファイルの描画や,関数の描画の場合は, 各々の棒の幅は set boxwidth によって設定します.もし,set boxwidth コマンドの後ろに幅を与えると,それが幅として使われます.そうでない場合は, 隣り合う棒と接するように各々の棒の幅が自動的に計算されます.

書式:

         set boxwidth {<幅>}
         show boxwidth

棒の幅を自動に設定するには

         set boxwidth

を使って下さい.


clabel

GNUPLOT は,clabel が設定されている時には,各々の等高線のレベルに対して 使う線種を変化させます.このオプションが指定されていると(デフォルト), 凡例によって,各々の線種をそれが表すzのレベルとともに分類されます.

書式:

        set clabel
        set noclabel
        show clabel


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 clipset clip points と同義です.set noclip は3種のクリッ プ型全てを無効にします.


cntrparam

等高線を引くための種々のパラメータを設定します(contour も参照して下さい).

書式:

    set cntrparam { { linear | cubicspline | bspline } |
       points <n> |
       order <n>  |
       levels { [ auto ] <n> |
       discrete <z1>,<z2>, ... |
       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は保持されたまま.

このコマンドは等高線がどのように引かれるかを制御します.<n> は整数型 の定数式,<z1>, <z2> は任意の定数式とします. 各変数の意味は次のとおりです:

linear, cubicspline, bspline --- 近似(補間)方法を指定します. linear ならば,等高線は曲面から得られた値により,区分的に直線で引か れます.cubicspline ならば,区分的な直線は,波打つ可能性があります が,いくぶんなめらかな等高線を得られるように補間されます.3番目の選 択枝は bspline です.これは区分的な直線から近似値を求めるだけですが, よりなめらかになることが保証されています.

points --- 最終的には,全ての描画は,区分的な直線で行われます.ここ で指定した数が曲線を補間する点の数になります.これは cubicsplinebspline についてのみ有効です.

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 の場合は,<開始値> で始まり, <増分値> で増加する,<n> 個の z の値に対して等高線を引きます.


contour

曲面の等高線を引くことを指示します.このオプションは splot でのみ有効 です.

書式:

        set contour { base | surface | both }
        set nocontour

もしも set contour に対してオプションが指定されていないときは, base であると仮定されます.これらの 3 つのオプションは等高線をどこ に引くかを指定します.base では等高線を x/y 軸の刻みのある底面に描 きます.surface では等高線を面自体の上に描きます.both では等高線 を底面と面上の両方に描きます.

等高線の描画に影響を与えるパラメータについては set cntrparam も参照 して下さい.


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 も参照して下さい.


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 の 外側で前処理として使うべきでしょう.


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)


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 noxticsset noytics を使用して下さい.

刻みについてのより詳しい制御については,set xticsset ytics も 参照して下さい.


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, boxerrorbarsshow function style は現在設定されている,関数の描画方法を表示します. set function style linespoints は実際に描画方法変更するように指 定します. plot も参照して下さい.


functions

show functions コマンドはユーザーが定義した関数とその定義内容を表示 します.

書式:

        show functions


grid

この,set grid によって刻みの位置に座標軸と同じ線で枠が描かれるよう になります.

書式:

        set grid
        set nogrid
        show grid


hidden3d

set hidden3d コマンドは明示的な面描画(splot 参照)での陰線処理を 行うように指示します.陰線処理は,陽関数と明示的なデータの描画に使う ことができます.媒介変数で表示される曲面に対しても動作します.

この機能が有効なときは,隠れた格子だけでなく,隠れた面の部分や隠れた 等高線(set contour 参照)も表示されません.見出しと矢印は常に表示される ので,この機能によって影響をうけることはありません.

同時に複数の面を描画した場合は,陰線処理は自らの曲面と他の曲面についても 行われます.この機能は,面が線(line style)で描画された時のみに意味が あります.

書式:

        set hidden3d
        set nohidden3d
        show hidden3d


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 を参照して下さい.


key

set key コマンドは描画された曲線の説明を表示すように指示します. デフォルトではこの説明はグラフの右上の角に表示されます.

書式:

        set key
        set key <x>,<y>{,<z>}
        set nokey
        show key

座標 <x>, <y>, (splot においては <z> も) は,この説明をどこに配置す るかを指定します.この説明は,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


label

set label コマンドを使うことによって任意の見出しをグラフ中に表示す ることができます.plot コマンド使用時には z 座標は無視されます. splot においてこれが指定されていないときは 0 であると仮定されます.

書式:

         set label {<タグ>} {"<見出し文字列>"} {at <x>,<y>{,<z>}}
                   {<そろえ位置>}
         set nolabel {<タグ>}
         show label

文字列を省略した場合は "" であるとされます.位置を省略した場合は 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

(EEPIC と Imagen と LaTeX と TPIC 出力する場合は,文字列中に \\ を 入れることによって改行させることができます)


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


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 のみに影響する ことに留意して下さい.


offsets

グラフにおける描画素領域は set offsets によって,ある程度制御するこ とができます.このコマンドは,4つの引数(<左>, <右>, <上> , <下>)を とります.デフォルトでは,このオフセットは 0 です.各オフセットは 定数でも式でも構いません.左右のオフセットは x 軸と同じ単位で指定し, 上下のオフセットは y 軸と同じ単位で指定します.sin(x) をオフセット 0, 0, 2, 2 で表示させると,その曲線は表示される y の範囲の 1/3 を 占めます.オフセット機能は極座標を使う場合に縦横比を調整する上で特に 重宝します.splot ではオフセットは無視されます.

書式:

        set offsets <左>, <右>, <上> , <下>
        show offsets


output

デフォルトでは,グラフは標準出力に出力されます.set output コマンドは, 出力をファイルやデバイスにリダイレクトします.

書式:

        set output {"<ファイル名>"}
        show output

ファイル名は引用符に囲まれていなければなりません.ファイル名が与えら れなかった場合は,出力は標準出力に送られるようになります.

UNIX などの popen の機能を持ったいくつかのシステムにおいては,出力は シェルコマンドによって実行されたプログラムに対してパイプ経由で送るこ とができます.このためにはファイル名として '|' で始まるコマンドを与え て下さい.例を挙げます:

書式:

        set output "|lpr -Plaser filename"
        set output "|lp -dlaser filename"

(MSDOS ではファイル名として "prn" を指定すると標準のプリンタに出力す ることができます.)


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 によって指定することも,直接 plotsplot で指定すること もできます.現時点では,これらの媒介変数のデフォルトの変域は [-5:5] となっています.将来的にはこれらのデフォルト値をもっと有意なものに 変更する予定です.


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 参照) で指定された <rmin> をオフセットとして持ちます.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] に制限しています.


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] とすると第1象限が,set yrange [-80:0] とすると第3象限が表示されます.正方形でさえあればどのような 描画領域でも設定できますが,極の中心は必ず右上と左下を結ぶ45度線上に 来ることになります.

この rrange は,極座標モードであるときには plot コマンド中で直接指 定することもできます.

書式:

        set rrange [{<rmin> : <rmax>}]

<rmin> と <rmax> は定数または式です.

<rmin> と <rmax> は共に省略可能です.省略した部分はそれ以前の値のまま に留まります.よって

        set rrange [:10]

とすると <rmax> を 10 にしますが,<rmin> は変更されません.


samples

関数のサンプリング数は set samples コマンドで変更できます.デフォルト では,サンプル数は100点となっています.この値を増やすとより正確な描画が できるようになりますが,遅くなります.このパラメータは,データファイルの 描画には何の影響も与えません.

書式:

        set samples <式1> {,<式2>}
        show samples

2次元のグラフ描画が行われる時は,<式1>の値だけが関係します.

隠線処理なしで面描画が行われる時は,式の値は,孤立線毎に計算が行われる サンプル点の数を指定します.各,v 孤立線は<式1>個のサンプル点を持ち, 各 u 孤立線は<式2>個のサンプル点を持つようになります.<式1>しか指定しない 場合は,<式2>は<式1>と同じ値に設定されます. set ispsamples も参照して下さい.


size

set size コマンドはグラフの大きさを拡大縮小します.出力装置によって は大きさを変更すると文字の位置がずれることがあります.拡大を指定する とおかしな結果が得られることもあります.縮小は多くの場合うまくいきま す.

書式:

        set size {<xscale>,<yscale>}
        show size

<xscale> と <yscale> は拡大係数です.省略時にはデフォルト値 (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 インチ高です. グラフの大きさは,軸や見出しを含んでいることに留意して下さい.グラ フ自身の描画領域はこれよりさらに小さくなります.


style

グラフは9種類の描画方法の中のいずれかで表示することができます: lines, points, linespoints, impulses, dots, steps, errorbars, boxes, boxerrorbarslines は隣合う点を直線で結びます. points は各点の位置に小さなマーカを描きます. linespointslinespointes の両方を行います. impulses はx 軸から各点へ垂線を引きます(splot に対しては格子の底から). dots は各点の位置に点を打ちます.多くの点の集合の散乱図などに適しています.

errorbars は2次元のデータファイルの plot でのみ使用できます. 関数のplotsplot で使われた場合は points として扱われます. データファイルの plot においては errorbars は,やはり points の様に 描かれますが,各点に鉛直な誤差指示線が加わる点が異なります.ある点 (x,y) に対して,誤差指示線が (x,ylow) から (x,yhigh) まで引かれます. 誤差指示線の両端には短い横線が描かれます.ylow と yhigh はデータファ イルの第3および第4引数が読み込まれます.plotusing オプション によって読み込む位置を変更することもできます.詳しくは plot errorbars を参照して下さい.

boxes は2次元のグラフでのみ利用できます.これは,与えられたx座標を 中心とし,x軸から与えられたy座標までの棒を描きます.棒の幅は3つの方法の うちのいずれか1つで得ます.もし,データファイルが第5列目を有していれば, これを棒の幅として使います.それ以外で,set boxwidth コマンドを使って幅が すでに設定されている場合は,これが使われます.それでもない場合には, 隣り合う棒と接するように各々の棒の幅が自動的に計算されます. boxerrorbars と呼ばれるもう1つのスタイルは,2次元のデータファイルからの グラフでのみ利用できます.このスタイルは boxeserrorbars スタイルの 組合せです.

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 のいずれかです.


surface

set surface によって面の表示を制御できます.等高線を単独で表示した いときに便利でしょう.set nosurface が実行されると面の孤立線や網は 引かれなくなります.set contour も参照して下さい.

書式:

        set surface
        set nosurface
        show surface


terminal

GNUPLOT は数多くのグラフィック装置をサポートしています.set terminal コマンドをつかって GNUPLOT の出力の対象となる装置の種類を選んで下さい.

書式:

        set terminal {<装置の種類>}
        show terminal

<装置の種類> が与えられなかった場合には,GNUPLOT は利用可能な端末装置 の一覧を表示します.<装置の種類> は短縮して構いません.

出力をファイルやデバイスにリダイレクトするときには set output を使 用して下さい.

いくつかの装置には追加的なオプションがあります.例えば,dumb, iris4d, hpljii, postscript などを参照して下さい.

aifm
atari ST
dumb
epson
gpic
hpljii
latex
iris4d
mf
mif
nec-cp6
pbm
pcl5
postscript
enhanced postscript
regis
table
windows


aifm

Adobe Illustrator 3.0 ドライバは多くのオプションを受け付けます.

書式:

        set terminal aifm {<color>}
                                {"<fontname>"} {<fontsize>}

default を指定すると全てのオプションをデフォルトの値に戻します. <color> は colormonochrome のいずれか. "<fontname>" 有効な PostScript フォントの名前. <fontsize> は 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


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 オプションを設定の方が 優先します.


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?


epson

このドライバの組は,Epsonのプリンタとその派生に対応しています. NEC ドライバも参照して下さい.epson は,解像度512x384の一般的な9ワイヤの プリンタです.starc は,同じ解像度のStar Colorプリンタです. epson180epson60 は,もっと新しい24ワイヤプリンタのための, 180dpi と 60dpi のドライバです.これは,バブルジェットプリンタも 含んでいます.これらの解像度は,それぞれ,1260x1080 と 480x360 です. tandy60epson60 と同一ですが,IBMモードを始めるというエスケープ シーケンスが追加されています.これらのドライバの全てでは,印刷するために PC上でバイナリコピーすることが必要です.print を使ってはいけません.

       copy file /b lpt1:


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

を使います.


hpljii

HP LaserJet II と HP DeskJet のドライバには1つオプションがあります.

書式:

        set terminal hpljii {<解像度>}
        set terminal hpdj   {<解像度>}

ここで <解像度> は出力解像度を1インチ当りのドット数(dpi)で指定します. 値は 75, 100, 150, 300 のいずれかでなければなりません. 注意: 高解像度で表現(rasterize)できるようにするには十分にメモリが なければなりません.

例:

        set terminal hpljii 150


latex

LaTeX と EMTeX ドライバでは,gnuplot のグラフの周りのラベルにフォントの種類と フォントの大きさを指定することができます.

オプションは指定する任意のサイズの

フォント:

      default          (Roman 10 point)
      courier
      roman

です(METAFONT は変な(odd)サイズを好まないことに気を付けて下さい).例えば,

      gnuplot> set term latex courier 5

使っているドライバが(dvipsのように)任意のサイズのフォントを作ることが できないのならば,標準的な10, 11, 12 ポイントのサイズにしておいて下さい.


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 番目の数の後ろにあるものはすべて無視されま す.


mf

mf 端末ドライバは,METAFONT プログラムへの入力ファイルを作ります. したがって,TeXの文書の中で図を文字と同じ方法で使うことができます.

文書の中でグラフを使うには,gnuplotからの出力ファイルを入力として METAFONTプログラムを実行しなければなりません.したがって,ユーザには, フォント作成プロセスについてと文書の中への新しいフォントの組み込みに ついての基本的な知識が要求されます.しかし,METAFONTプログラムがローカル サイトで適切に設定されていれば,経験の無いユーザでもあまりトラブル無く 操作できるでしょう.

テキストのサポートはMETAFONTの文字セットに基づいています. 現状では,Computer Modern Roman フォントセットが入力ですが, 原則として,ユーザは必要なフォントを何でも自由に選んで構いません. 選んだフォント用のMETAFONTのソースファイルは使えるようになっていなければ なりません.各々の文字はMETAFONTの中で別々のピクチャー変数に格納されます. 文字が必要な時は,これらの変数を操作(回転,伸縮など)することができます. 欠点は,METAFONTプログラムの解釈に要する時間です.ある計算機(つまりPC)では, 絵がたくさん格納されていると,使うことのできるメモリの量の上限が問題を 引き起こします.

Metafont Instructions


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 コマンドを全く使っていないからです.


mif

MIF 3.0 ドライバでは,いくつものオプションを設定できます.

書式:

     set terminal mif {<pentype>} {<curvetype>} {<help>}

<pentype> はグラフィックスの "色" を選択します.

     colour     線種 >= 0 をカラーで描画します (MIF sep. 2-7).
     monochrome 全ての線種を黒で描画します (MIF sep. 0).

<curvetype> は,"曲線" をどのように描くか選択します.

     polyline   曲線を連続直線として描きます.
     vectors    曲線をベクトルの集まりとして描きます.

<help> は標準エラー出力にオンラインヘルプを表示します.

     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


nec-cp6

nec-cp6 ドライバは1つのオプションを持っています.このドライバの解像度は 400x320です.

書式:

        set terminal nec-cp6 monochrome
        set terminal nec-cp6 color
        set terminal nec-cp6 draft


pbm

PBMplus ドライバは多くのオプションを受け付けます.

書式:

        set terminal pbm {<fontsize>} {<colormode>}

ここで <fontsize> は small, medium, large のいずれかです. また,<colormode>は 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


pcl5

pcl5 ドライバでは,3つのオプションを設定することができます. このドライバは実際には HPGL-2 を使っていますが,端末装置の中で 衝突している名前があります.

書式:

        set terminal pcl5 {<mode>} {<font>} {<fontsize>}

ここで,<mode> は landscapeportrait です.<font> は stickuniverscg_times です.また,<fontsize> はポイント単位です.

        set terminal pcl5 landscape


postscript

PostScript ドライバは多くのオプションを受け付けます.

書式:

        set terminal postscript {<mode>} {<color>} {<dashed>}
                                {"<fontname>"} {<fontsize>}

ここで <mode> は landscape, portrait, default のいずれか. default を指定すると全てのオプションをデフォルトの状態に戻します. <color> は colormonochrome のいずれか. <dashed> は soliddashed のいずれか. "<fontname>" は有効な PostScript フォントの名前. <fontsize> は 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


enhanced postscript

"Enhanced PostScript" ドライバは,正規のPostScriptドライバを越える 拡張された機能を持っています.このEnhanced PostScriptドライバは, 多くのオプションを受け付けます.

書式:

        set terminal enhpost {<mode>} {<color>} {<dashed>}
                             {<duplexing>} {"<fontname>"} {<fontsize>}

ここで <mode> は landscape, portrait, default のいずれか. default を指定すると全てのオプションをデフォルトの状態に戻します. <color> は colormonochrome のいずれか. <dashed> は soliddashed のいずれか. <duplexing> は simplexduplex のいずれか (プリンタにこの機能が ない場合には,これを指定しないで下さい). <fontsize> は 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} は無限大記号です.

制御文字は,\を使ってエスケープします.例えば, \\, \{, \}, \^, \@


regis

regis 端末装置は,4色か16色を使うオプションを持っています. デフォルトは4です.

例:

       set term regis 16


table

装置の種類を table にすると,グラフを描画する代わりに式の評価結果を X,Y,Z の値として ASCII 文字でマルチカラム出力します.絵ではなく数字 を見たい場合,このドライバを使うことによって数値を画面やファイルに出 力することができます.


windows

Windows のドライバでは3つのオプションを設定することができます.

書式:

        set terminal windows {<color>} {"<fontname>"} {<fontsize>}

<color>colormonochrome のどちらかです. "<fontname>" は有効なWnindows のフォントの名前です. <fontsize> は,ポイント単位のフォントの大きさです.

graph-menu
printing
text-menu
wgnuplot.ini
windows3.0


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 に保存します.


printing

お好みによって,以下のような方法でグラフを印刷することができます.

1. gnuplotのコマンド set terminal を使ってプリンタを選択し, set output でファイルへリダイレクト出力します.

2. gnuplot graph ウィンドウから Print... コマンドを選びます. 特別コマンド screendump は,テキストウィンドウからこれを行います.

3. set output "PRN" を使った場合は,出力は一時ファイルに収められます. gnuplot を終了するか,別の set output コマンドで出力先を変更した時に, 対話ボックスが現れ,プリンタのポートを選びます.OKを選ぶと,プリンタ マネージャを無加工で通過し,出力は選んだポートで印刷されます. あるプリンタにとって意味のある出力を,非互換のプリンタへ偶然に (または故意に) 送ることができてしまいます.


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文字までに制限されています.


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 エントリは,フォントの名前とポイント単位のサイズを指定します. BorderAxisLine エントリの5つの数は, の強度(0-255) の強度, の強度,カラーの線種モノクロの線種 を与えています. 線種 は 0=実線,1=鎖線,2=点線,3=1点鎖線,4=2点鎖線 です. 上の WGNUPLOT.INI ファイルの例では,線2 はカラーモードでは緑の実線で, モノクロモードでは鎖線です.デフォルトの線幅は1ピクセルです. Linestyle が負の場合は,実線の線幅をピクセル単位で指定します. 線1 と points スタイルで使われる線種は実線で1ピクセル幅でなければ なりません.


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. ドラッグ-ドロップ が働きません.


tics

デフォルトでは,刻みは境界の枠の 4 辺全てからグラフの内側に向かって 描かれます.set tics コマンドによって,刻みを外側に向かって,かつ, 左と下にのみに表示するように変更できます.この機能は,インパルス (impulse)で描画する際に便利です.

書式:

        set tics {<方向>}
        show tics

ここで <方向> は,inout のいずれかです.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 も参照して下さい.


time

set time を使うことによってグラフの上辺または下辺に日付と時刻を入れ ることができます.具体的な場所は出力装置に依存します.

書式:

        set time {<xoff>}{,<yoff>}
        set notime
        show time

定数 <xoff> または <yoff> を追加することによって日時表示を文字座標系 で指定したオフセット分だけ動かすことができます.

例:

        set time ,-3

とすると,文字の高さの約3倍分下方向に移動することができます.


title

set title コマンドはグラフの題名を上辺に中央ぞろえで出力します.オ プションの x, y のオフセットを指定するとその分だけ位置をずらすことが できます.これによって任意の位置に題名を表示することができます.set title と何も指定せずに使用すると題名の表示をしなくなります.

書式:

         set title {"<題名文字列>"} {<xoff>}{,<yoff>}
         show title

オプション定数 <xoff>, <yoff> をオフセットとして指定すると指定した文 字分だけ位置を動かすことができます.これはグラフの座標系ではなく文字 座標系の文字数で指定します.例えば,

         set title ,-1

とすると題名を下方向に約1文字分ずらすことになります.

(EEPIC と Imagen とLaTeX と TPIC に出力する場合は,文字列中に \\ を 入れることによって改行させることができます)


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 urangeset parametric も参照して下さい.


urange

set urangeset 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 も 参照して下さい.


variables

show variables コマンドは全てのユーザ定義変数とその値のの一覧を表示 します.

書式:

        show variables


view

set view コマンドは splot における視点を指定します.このコマンド によって3次元座標系のグラフがどのように2次元の画面に投影されるかを 制御します.このコマンドによって回転と拡大縮小を行うことができますが 射影方法は正射影のみ用意されています.

書式:

        set view <rot_x> {,{<rot_z>}{,{<scale>}{,<scale_z>}}}
        show view

ここで, <rot_x> と <rot_z> は仮想的な3次元座標系の軸に対する回転角 を度で指定します.これは画面水平方向を 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

前者は全ての値をデフォルトの値にしています.後者は全体の縮尺のみを 0.5 に設定しています.

set ticslevel も参照して下さい.


vrange

set vrange コマンドは set urange コマンドとほぼ同じです.set urange を参照して下さい.


xlabel

set xlabel コマンドは x 軸の見出しを軸の中央にそろえて表示します. オプションの x,y オフセットを指定することによって任意の位置に表示す ることもできます.引数なしに set xlabel を実行すると見出しを表示し なくなります.

書式:

         set xlabel {"<label>"} {<xoff>}{,<yoff>}
         show xlabel

オプション定数 <xoff>, <yoff> をオフセットとして指定すると指定した文 字分だけ位置を動かすことができます.これはグラフの座標系ではなく文字 座標系の文字数で指定します.例えば,

         set xlabel -1

とすると題名を左方向に約1文字分ずらすことになります.

(EEPIC と Imagen とLaTeX と TPIC に出力する場合は,文字列中に \\ を 入れることによって改行させることができます)


xrange

set xrange コマンドは表示される水平方向の変域を指定します.このコマ ンドを実行すると x 軸に対する自動縮尺機能(autoscaling)が解除されます.

この変域は plot コマンド中で直接指定することもできます.

書式:

        set xrange [{<xmin> : <xmax>}]

ここで,<xmin> と <xmax> は,定数または式です.

<xmin> と <xmax> は共に省略可能です.省略されたものは変更されません. よって

        set xrange [:10]

によって xmax は 10 になりますが xmin は変わりません.


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 の位置に刻みを入れます.

("<見出し>" <位置>, ...) 形式の指定では任意の位置に刻みを入れたり,刻 みに数値でない見出しを入れたるすることを可能にします.1組の刻は,各々 省略可能な見出し文字列を伴った数値の組で表されます.見出しは引用符に 囲まれた文字列で,"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 も参照して下さい.


xdtics

set xdtics コマンドは,x 軸の目盛のマークを曜日に変換します(0=Sun, 6=Sat). 溢れた場合は,7による剰余を曜日に変換します.

例:

       set xdtics

x 軸の目盛を曜日に設定します.

set ydticsset zdticsset noydticsset nozdtics コマンドも 同じように働きます. set format コマンドも参照して下さい.


xmtics

set xmtics コマンドは,x軸の目盛のマークを月名に変換します(1=Jan, 12=Dec). 溢れる場合は,12による剰余+1 を月名に変換します.

例:

       set xmtics

x 軸の目盛を月名に変換します.

set ymticsset zmticsset noymticsset nozmticsコマンドも 同じように働きます. set format コマンドも参照して下さい.


xzeroaxis

set xzeroaxis コマンドは x 軸を描画します.デフォルトでは軸は表示されます. set noxzerozxis コマンドは x 軸を描画しないように指示します.

書式:

        set xzeroaxis
        set noxzeroaxis
        show xzeroaxis


ylabel

set ylabel コマンドは y 軸の見出しを設定します.この見出しがどこに 表示されるかは出力装置に依存し,以下の3つのいずれかになります.また この位置は省略可能な引数によって移動することもできます.

1. グラフの左上に左ぞろえで水平方向にに表示.文字を回転して表示するこ とができない出力装置はおそらくこの方法を使用するでしょう.

2. グラフの左側に鉛直方向に表示.文字を回転して表示できる出力装置は, おそらくこの方法を使用するでしょう.

3. グラフの左側,水平方向に複数行の文字列を中央ぞろえで表示. EEPIC と LaTeX と TPIC 用のドライバはこの方法を使います. 見出し文字列がグラフと重ならないように \\ を使って改行位置を指示する 必要があります.縦方向に表示したい場合は,1文字毎に \\ を入れるという 方法もありますが,見栄えはよくならないでしょう.

書式:

         set ylabel {"<label>"} {<xoff>}{,<yoff>}
         show ylabel

何も文字列を指定しないと見出しは表示されなくなります.オプション定数 <xoff>, <yoff> をオフセットとして指定すると指定した文字分だけ位置を動 かすことができます.これはグラフの座標系ではなく文字座標系の文字数で 指定します.例えば,

         set ylabel -1

とすると,y 軸見出しの x オフセットだけを変更することになります.この 場合,デフォルトの位置から左側に約1文字分移動することになります. この機能は LaTeX 用のドライバで特に便利に使えるでしょう.

(EEPIC と Imagen とLaTeX と TPIC に出力する場合は,文字列中に \\ を 入れることによって改行させることができます)


yrange

set yrange コマンドは表示される鉛直方向の変域を指定します.このコマ ンドを実行すると y 軸に対する自動縮尺機能(autoscaling)が解除されます.

この変域は plot コマンド中で直接指定することもできます.

書式:

        set yrange [{<ymin> : <ymax>}]

ここで,<ymin> と <ymax> は,定数または式です.

<ymin> と <ymax> は共に省略可能です.省略されたものは変更されません. よって

        set yrange [:10]

によって ymax は 10 になりますが ymin は変わりません.


ytics

set yticsset noytics の両コマンドは set xticsset noxtics の 各コマンドとほぼ同じです.set xtics を参照して下さい.


ydtics

set ydticsset noydtics コマンドは set xdticsset noxdtics と 似ています.set xdtics を参照して下さい.


ymtics

set ymticsset noymtics コマンドは set xmticsset noxmtics と 似ています.set xmtics を参照して下さい.


yzeroaxis

set yzeroaxis コマンドは y 軸を描画します.デフォルトでは軸は表示されます. set noyzerozxis コマンドは y 軸を描画しないように指示します.

書式:

        set yzeroaxis
        set noyzeroaxis
        show yzeroaxis


zero

zero 値とは 0.0 に近い値に対する敷居値のことです.GNUPLOT は,数値 の虚部の絶対値がこの zero 値を越えた場合には,その点を描画しません. また,各軸方向の変域はこの zero 値よりも狭くすることはできません. デフォルトでは zero 値は 1e-8 となっていますか set zero コマンドによっ て変更することができます.

書式:

        set zero <式>
        show zero


zeroaxis

set yzeroaxis コマンドは x 軸および y 軸を描画します.デフォルトでは 軸は表示されます.set noyzerozxis コマンドは x 軸,y 軸をどちらも 描画しないように指示します. これは set noxzeroaxis; set noyzeroaxis と等価です.

書式:

        set zeroaxis
        set nozeroaxis
        show zeroaxis

set xzeroaxisset yzeroaxis も参照して下さい.


zlabel

set zlabel コマンドは x 軸の見出しを軸の中央にそろえて表示し ます.オプションの x,y オフセットを指定することによって任意の位置に 表示することもできます.引数なしに set zlabel を実行すると見出しを 表示しなくなります.

書式: set zlabel {"<label>"} {<xoff>}{,<yoff>} show zlabel

オプション定数 <xoff>, <yoff> をオフセットとして指定すると指定した文 字分だけ位置を動かすことができます.これはグラフの座標系ではなく文字 座標系の文字数で指定します.例えば,

         set zlabel ,1

とすると z 軸の見出しの y オフセットのみが変更されます.これによって 見出しは約1文字分上方に移動することになります.

z 軸の見出しは,曲面や等高線が描かれる場合には,必ず格子より高い部分に 表示されます.

(EEPIC と Imagen とLaTeX と TPIC に出力する場合は,文字列中に \\ を 入れることによって改行させることができます)


zrange

set zrange コマンドは表示される鉛直方向の変域を指定します. このコマンドを実行すると x 軸に対する自動縮尺機能(autoscaling)が解除 されます.zrange は splot でのみ有効で plot では無視されます.

この変域は splot コマンド中で直接指定することもできます.

書式:

       set zrange [{<zmin> : <zmax>}]

ここで,<zmin> と <zmax> は,定数または式です.

<zmin> と <zmax> は共に省略可能です.省略されたものは変更されません. よって

        set zrange [2:]

によって zmin は 2 になりますが zmax は変わりません.


ztics

set ztics, set noztics の両コマンドは set xtics, set noxtics の各コマンドとほぼ同じです.set xtics を参照して下さい.


zdtics

set zdticsset nozdtics コマンドは set xdticsset noxdtics と 似ています.set xdtics を参照して下さい.


zmtics

set zmticsset nozmtics コマンドは set xmticsset noxmtics と 似ています.set xmtics を参照して下さい.


shell

shell コマンドは対話的なシェルを起動します.GNUPLOT に戻るには,VMS では logout を,Unix ならば exit もしくは END-OF-FILE 文字を, AmigaDOS では endcli を,MS-DOS か OS/2 ならば exit を入力して下さい.

単一のシェルコマンドならば,コマンドラインの行頭に ! の文字( VMS では $)をつけることによっても実現できます.この場合コマンドが終了するとす ぐに制御は GNUPLOT に戻ってきます.例えば VMS, AmigaDOS, MS-DOS, OS/2 では,

     ! dir

とするとディレクトリの一覧を表示して GNUPLOT に戻ってきます.

Atari では,! コマンドは,最初にシェルが既にロードされているか調べて, 有効ならばそれを使います.例えば,GNUPLOTが gulam から起動されている 場合に,これは実用的です.


splot

GNUPLOT では splot コマンドを使うことにより3次元的曲面や等高線の描 画ができます.plot コマンドと共通の機能については plot を参照して 下さい.

他に,set contour, set cntrparam, set surface も参照してくださ い.

Binary Data


Binary Data

gnuplot は,データファイルがASCIIかバイナリかを動的に判断します. ASCII データファイルについては plot の節で論じています. 3次元に対して,単精度の浮動小数点の数値は以下のように格納されています.

      <ncols> <x0> <x1> <x2> ...
      <y0> <z0,0> <z0,1> <z0,2> ...
      <y1> <z1,0> <z1,1> <z1,2> ...

これは以下のような3つの数字の組に変換されます.

      <x0> <y0> <z0,0>
      <x0> <y1> <z0,1>
      <x0> <y2> <z0,2>

      <x1> <y0> <z1,0>
      <x1> <y1> <z1,1>
      <x1> <y2> <z1,2>

そして,これらの3つの数字の組は,gnuplotの孤立線に変換され,後の描画を 行うためにgnuplotを使います.

(Cで)行列とベクトルを扱うルーチンのコレクションが,gnubin.c の中に 提供されています.バイナリデータを書き込むルーチンは,

 int fwrite_matrix(file,m,nrl,nrl,ncl,nch,row_title,column_title)

です.これらのルーチンを使う例が,bf_test.c の中に提供されています. 対応するデモのファイルはdemo/binary.demです.


start-up

GNUPLOT が起動されるとき,初期設定ファイルを読み込もうとします.この ファイルは Unix と AmigaDOS では,.gnuplot であり,その他の処理系で は GNUPLOT.INI となっています.このファイルがカレントディレクトリに 無い場合,GNUPLOT はホームディレクトリを検索します(AmigaDOS と AtariTOS と MS-DOS と OS/2 MS-DOS では,環境変数 GNUPLOT にホーム ディレクトリに対応するディレクトリを指定します).注意: インストールの 時に NOCWDRC を定義した場合には,GNUPLOT はカレントディレクトリからは 読みません.

初期設定ファイルが見つかると,GNUPLOT はこのファイルに書かれているコ マンドを実行します.出力装置の指定や,よく使う関数や変数の定義をここ で行うと便利でしょう.


substitution

シェルコマンドをバッククォートで囲むことによってコマンド置換を行うこ とができます.このコマンドは子プロセスで実行され,その出力結果でコマ ンド(およびそれを囲んでいる引用符)を置き換えます.

子プロセスの出力中の改行文字は空白文字に置換されます.

コマンド置換は,GNUPLOT のコマンドライン中,どこででも使用可能です.

例:

以下の例は,leastsq というプログラムを実行し,その出力結果で, leastsq を(まわりの引用符こみで)置き換えます:

         f(x) = leastsq

ただし VMS では,

         f(x) = run leastsq


update

書式: update <ファイル名>

このコマンドは,fit コマンドで指定した開始パラメータファイルの 中の開始パラメータの割当を更新します.各パラメータは,現在の値に 置き換えられます.これは,収束または停止した推定を再開するために 便利です.

参照: fit


user-defined

新たにユーザ定義変数およびユーザ定義関数(引数が1つから5つもの) を定義することによって,任意の場所でそれを使うことができます.

ユーザ定義関数の書式:

        <関数名> ( <仮引数1> {,<仮引数2> {, ...} } ) =  <式>

ここで <式> は <仮引数1> から <仮引数5> で定義されます.

ユーザ定義変数の書式:

        <変数名> = <定数式>

例:

        w = 2
        q = floor(tan(pi/2 - 0.1))
        f(x) = sin(w*x)
        sinc(x) = sin(pi*x)/(pi*x)
        delta(t) = (t == 0)
        ramp(t) = (t > 0) ? t : 0
        min(a,b) = (a < b) ? a : b
        comb(n,k) = n!/(k!*(n-k)!)
        len3d(x,y,z) = sqrt(x*x+y*y+z*z)

pi はもともと定義されています.

show functionsshow variables も参照して下さい.


bugs

ベッセル(bessel)関数は複素数引数には対応していません.

ガンマ(gamma)関数は複素数引数には対応していません.

Sun OS (SunOS Sys4-3.2) の stdio ライブラリにはバグがあります. printf の "%g" が時々不正確な表示を行います(例: "2" となるべきところ を 200000.0 と表示する).これにより,Sun4 上の GNUPLOT では,座標軸の 刻の見出しが不正確になる場合があります.回避方法としては,データを定 数倍する方法と set format コマンドを使って刻の書式指定を "%7.0f" な どに変更する方法があります.この不具合は SunOS 4.0 では修正されている ようです.

バグがもう1つ: 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 はテストに使われた2つの VGA ディスプレイで正しく動作しませんでした.Microsoft C のグラフィックラ イブラリを使うために CGA, EGA, VGA の各ドライバを書きなおす必要がある でしょう.Boland C++ でコンパイルされた GNUPLOT は Turbo C グラフィック ライブラリを使っていますが,こちらは VGA ディスプレイで正常に動作して います.

VAX/VMS 4.7 C compiler release 2.4 も printf の %g の実装が貧弱です. 数字は,数値としては正しく表示されますが,時として指定した書式通りに は表示してくれません.K&R の第2版では,%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 を define するという回避方法もありますが,これはあまりお勧めできません.

NeXT OS 2.0 では定数 HUGE が不正な値に設定されています.HUGE は plot.h において 1e38 に設定されているべきです.この不具合は NeXT OS のバージョン 2.1 では修正されています.

HP プロッタの旧いモデルにはページ排出コマンド 'PG' が実装されていない ものがあります.現在の HPGL ドライバは HPGL_reset 中でこのコマンドを 使用しています.これらの旧モデルのために 'PG' コマンドを使わないよう にする必要があるかも知れません.現在の PCL5 ドライバは,HPGL/2 をグラ フィックだけでなくテキストにも使用しています.これはスケーラブルな PCL フォントを使用するように変更する必要があります.

Atari 版では,(/dev/lp を出力フェアルとして) 直接プリンタへ出力を 送ることができません.なぜなら,バイナリ出力において,復帰文字(CR)が 改行文字(LF)に付け足されてしまうからです.別の方法として,出力をファイルに 書き出して,後でシェルコマンドを使ってそれをプリンタにコピーして下さい.

バグが見つかったら bug-gnuplot@dartmouth.edu までご連絡下さい.


日本語訳について

この日本語訳は,東京大学の田丸 博晴さんが,fj.sources に投稿された gnuplot 3.2 の gnuplot.doc の日本語訳

 From: tamaru@keisu-s.t.u-tokyo.ac.jp (Hiroharu Tamaru)
 Newsgroups: fj.sources
 Subject: gnuplot 3.2.2 Japanese document (1/2)
 Message-ID: <TAMARU.92Sep16174046@meipserv.keisu-s.t.u-tokyo.ac.jp>
 Date: 16 Sep 92 08:40:46 GMT
 Distribution: fj

を,大阪大学の升谷 保博が gnuplot 3.5 用に変更したものです. 3.2 と 3.5 の間で原文に変化のない部分は(約3/4)は,原則として 田丸さんの訳をそのまま使っています.

この日本語訳の公開に先だって,鈴木 紀夫さん,伊藤 希さんに 内容のチェックをしていただきました.ありがとうございます.

なお,この文章の翻訳自体に関するバグを見つけた方は, masutani@me.es.osaka-u.ac.jp までご連絡下さい.


Created automatically by doc2html