99.14 等高線制御 (cntrparam)

set cntrparam は等高線の生成方法、およびそれを滑らかに描画する方法を 制御します。show contour は現在の contour の設定だけでなく cntrparam の設定をも表示します。

書式:

     set cntrparam { { linear
                     | cubicspline
                     | bspline
                     | points <n>
                     | order <n>
                     | levels { <n>
                                | auto {<n>}
                                | discrete <z1> {,<z2>{,<z3>...}}
                                | incremental <start>, <incr> {,<end>}
                              }
                       {{un}sorted}
                       {firstlinetype N}
                     }
                   }
     show cntrparam

このコマンドは 2 つの機能を持っています。一つは等高線上の点を決めるた めの 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 — これがデフォルトです。<n> は仮のレベルの数であり、実 際のレベルの数は、簡単なラベルを生成するように調節されます。曲面の z 座標が zmin から zman の範囲にあるとき、等高線はその間の dz の整数倍に なるように生成されます。ここで、dz は 10 のあるべき乗の 1, 2, 5 倍、の いずれかです (2 つの目盛りの間を丁度割り切るように)。

levels discrete — 等高線は指定された z = <z1>, <z2> ... に対して生 成されます。指定した個数が等高線のレベルの個数となります。discrete モードでは、set cntrparams levels <n> という指定は常に無視されます。

levels incremental — 等高線は z = <start> から始まり、<increment> ずつ増えて行き限界の個数に達するまで書かれます。<end> はその等高線の数 を決定するのに使いますが、これは後の set cntrparam levels <n> によっ て常に変更されます。z 軸が対数軸の場合、set ztics の場合と同様に、 <increment> は倍数として解釈し、<end> は使用しません。

等高線の線種の割り当てを制御するキーワード:

デフォルトでは、等高線は指定の逆順に生成します (unsorted)。すわなち、 set cntrparam levels increment 0, 10, 100 は、100 から始まって、0 で 終わる 11 本の等高線を作ります。キーワード sorted を追加すると、数値 の増加方向の順の生成に変更し、例えば今の例では、最初に 0 の等高線を書 くようになります。

デフォルトでは、等高線は、対応する曲面に使用した線種の、次からの線種列 で描きます。すなわち、splot x*y lt 5 の最初の等高線は線種 6 です。 hidden3d モードが有効な場合、各曲面には 2 つの線種を使うので、デフォ ルトの設定では、最初の等高線と曲面の裏面の描画に同じ線種を使ってしまい ますが、これは望ましくありません。これを避けるには、以下の 2 つの方法があります。 (1) set hidden3d offset N により、曲面の裏面の線種を変更すること。 offset -1 とするのがいいですが、これならすべての等高線の線種とぶつか りません。 (2) オプション set cntrparam firstlinetype N により、曲面で使用する 線種とは独立な、等高線で使用する線種群を指定すること。これは、特に等高 線の線種をカスタマイズしたい場合には有用でしょう。N <= 0 の場合はデフ ォルトに戻ります。

コマンド set cntrparam を引数無しで使用すると、指定したすべてのオプ ション値をデフォルトにリセットします。

     set cntrparam order 4 points 5
     set cntrparam levels auto 5 unsorted
     set cntrparam firstlinetype 0



Subsections
竹野茂治@新潟工科大学
2020-12-08