set cntrparamは等高線の生成方法、およびそれを滑らかに描画する方法を制御します。show contourは 現在のcontourの設定だけでなくcntrparamの設定をも表示します。
書式:
set cntrparam { { linear
| cubicspline
| bspline
| points <n>
| order <n>
| levels { auto {<n>} | <n>
| discrete <z1> {,<z2>{,<z3>...}}
| incremental <start>, <incr> {,<end>}
} }
} show contour
このコマンドは2 つの機能を持っています。一つは等高線上の点(データ点の線形補間、あるいは関数の標本
化(isosample)による点)でのzの値の設定で、もう一つは、そのように決定されたzが等しい点同士を等高
線で結ぶ方法の制御です。<n>は整数型の定数式、<z1>,<z2>... は任意の定数式です。各オプション変数 の意味は次の通りです:
linear,cubicspline,bspline—近似(補間)方法を指定します。linear ならば、等高線は曲面から得られた 値を区分的に直線で結びます。cubicspline(3次スプライン)ならば、区分的な直線はいくぶんなめらかな等 高線が得られるように補間されますが、多少波打つ可能性があります。bspline(B-spline)は、より滑らかな 曲線を描くことが保証されますが、これはzの等しい点の位置を近似しているだけです。
points — 最終的には、全ての描画は、区分的な直線で行われます。ここで指定する数は、bspline または
cubicspline での近似に使われる線分の数を制御します。実際にはcubicsplineと bsplineの区間 (曲線線分)
の数はpointsと線分の数の積に等しくなります。
order— bspline近似の次数です。この次数が大きくなるにつれて、等高線はなめらかになります(もちろん、
高次のbspline曲線になるほど、元の区分的直線からは離れていきます)。このオプションはbsplineモード
でのみ有効です。指定できる値は、2 (直線)から10までの整数です。
levels—等高線のレベルの数は、auto (デフォルト), discrete,incrementalと等高線のレベル数<n>で 制御します。
autoでは、<n>は仮のレベルの数であり、実際のレベルの数は、簡単なラベルを生成するように調節されま す。曲面のz座標がzminからzmanの範囲にあるとき、等高線はその間のdzの整数倍になるように生成さ れます。ここで、dzは 10 のあるべき乗の 1, 2, 5倍、のいずれかです (2 つの目盛りの間を丁度割り切るよ うに)。
levels discreteでは、等高線は指定された z =<z1>,<z2>... に対して生成されます。指定した個数が等 高線のレベルの個数となります。discreteモードでは、set cntrparams levels<n>という指定は常に無視 されます。
incrementalでは、等高線はz =<start>から始まり、<increment>ずつ増えて行き限界の個数に達するま で書かれます。<end> はその等高線の数を決定するのに使われますが、これは後のset cntrparam levels
<n>によって常に変更されます。z軸が対数軸の場合、set zticsの場合と同様に、<increment>は倍数とし
て解釈されます。
コマンドset cntrparam が引数なしに呼ばれた場合は、次のデフォルトの値が使われます: linear, 5 points, order 4, 5 auto levels
例:
set cntrparam bspline set cntrparam points 7 set cntrparam order 10
以下はレベルの基準が合えば5個のレベルがに自動的に選択されます:
set cntrparam levels auto 5 以下は.1, .37, .9にレベルを設定します:
set cntrparam levels discrete .1,1/exp(1),.9 以下は0 から4 まで、1ずつ増やすレベルを設定します:
set cntrparam levels incremental 0,1,4
以下はレベルの数を10に設定します(増加の最後の値(end)または自動で設定されるレベルの数は変更され ます):
set cntrparam levels 10
以下はレベルの数は保持したままレベルの開始値と増分値を設定します:
set cntrparam levels incremental 100,50
等高線を描く場所の制御に関しては、以下参照: set contour (p.108)。等高線のラベルの書式と線種の制御 に関しては、以下参照: set clabel (p. 105)。
以下も参照してください。
等高線のデモ (contours.dem) および
ユーザ定義レベルの等高線のデモ (discrete.dem).
カラーボックス (colorbox)
色の一覧表、すなわちpm3dのpaletteのmin zからmax zまでの滑らかな色の勾配は、unset colorbox が使われていない限りカラーボックス(colorbox)に描かれます。
set colorbox set colorbox {
{ vertical | horizontal } { default | user }
{ origin x, y } { size x, y } { front | back }
{ noborder | bdefault | border [line style] } }
show colorbox unset colorbox
カラーボックスの位置は、defaultまたはuserで指定でき、後者の場合その位置や大きさをorigin やsize コマンドで設定します。カラーボックスは、グラフや曲面の後(front)あるいは先(back)に描画させること もできます。
色勾配の方向は、オプションverticalとhorizontalで切替えることが可能です。
origin x, yと size x, yはuser オプションとの組でのみ使用されます。x, y の値は、デフォルトではスク リーン座標と解釈されますが、これは3次元描画用のかしこまったオプションに過ぎません。set view map
によるsplotを含む2次元描画では、任意の座標系での指定が可能です。例えば以下を試してみてください:
set colorbox horiz user origin .1,.02 size .8,.04 これは水平方向の色勾配をグラフの下の辺りに描画します。
borderは境界描画をONにします(デフォルト)し、noborderは境界描画をOFFにします。borderの後 ろに正の整数を与えると、それを境界を描画する時のline styleのタグとして使います。例えば:
set style line 2604 linetype -1 linewidth .4 set colorbox border 2604
はline style2604、すなわち細い線のデフォルトの境界色(-1)で境界を描画します。bdefault(デフォルト)
は、カラーボックスの境界の描画にデフォルトの境界のline style を使います。
カラーボックスの軸は cb と呼ばれ、通常の軸のコマンドで制御されます。すなわち set/unset/show で cbrange, [m]cbtics, format cb, grid [m]cb, cblabel などが、そして多分 cbdata, [no]cbdtics, [no]cbmticsなども使えるでしょう。
パラメータ無しのset colorboxはデフォルトの位置へ切替えます。unset colorboxはカラーボックスのパ ラメータをデフォルト値にリセットし、その上でカラーボックスをOFFにします。
以下も参照: set pm3d (p.137),set palette (p.140),x11 pm3d (p.235),set style line (p. 152)。
色名 (colornames)
gnuplot は限定された個数の色の名前を持っています。これらは、pm3dパレットでつながれる色の範囲を定
義するのに、あるいは個々の線種やラインスタイルの色を出力形式に依存しない形で定義したりするのに使え ます。gnuplot の持つ色名の一覧を見るには、コマンドshow colornamesを使用してください。例:
set style line 1 linecolor rgb "sea-green"
等高線 (contour)
コマンド set contourは曲面の等高線を引くことを指示します。このオプションは splot でのみ有効です。
これは、格子状データ(grid data)を必要とします。詳細は、以下参照: grid data (p. 174)。非格子状デー タで等高線を描きたい場合は、格子を生成するためにset dgrid3dを使用します。
書式:
set contour {base | surface | both}
unset contour show contour
これらの3つのオプションは等高線をどこに引くかを指定します。baseでは等高線をx/y軸の刻みのある底 面に描かれ、surfaceでは等高線はその曲面自体の上に描かれ、bothでは底面と曲面上の両方に描かれます。
オプションが指定されていない場合はbaseであると仮定されます。
等高線の描画に影響を与えるパラメータについては、以下参照:set cntrparam (p. 105)。等高線のラベルの 制御に関しては、以下参照:set clabel (p. 105)。
等高線のみのグラフを得るために、曲面自身の描画をしないようにすることもできます(以下参照: set surface (p. 154))。set sizeを使って、グラフを画面一杯に描画することも可能ですが、そういった出力形式よりも、
等高線のデータをファイルに書き出し、それを再び2次元データとして読み込んで描画すればよりよい制御が 可能になります:
unset surface set contour set cntrparam ...
set table ’filename’
splot ...
unset table
# contour info now in filename set term <whatever>
plot ’filename’
等高線を描くためには、データは格子状データ("grid data")である必要があります。そのようなファイルで は、一つのy-孤立線上の全ての点が順に並べられていきます。そして隣のy-孤立線上の点が順に並べられ、そ して隣、と続いていきます。y-孤立線同士を分離するには一行の空行(空白、復帰、改行以外の文字を含まな い行)を挟みます。以下参照: splot datafile (p. 171)。
以下も参照してください。
等高線のデモ (contours.dem) および
ユーザ定義レベルの等高線のデモ (discrete.dem).