110.19 等高線 (contour)

コマンド set contour で 3 次元曲面に等高線を置くことができます。この オプションは splot でのみ有効です。これは、格子状データ (grid data) を必要とします。すなわち、一つの y-孤立線に対するすべての点が並べられ、 その次に次の y-孤立線に対するすべての点が並び、以下同様に続くデータの ファイルです。y-孤立線同士を分離するのは単一の空行 (空白以外の文字を一 切含まない行) です。詳細は以下参照: grid_data (113.2)

データが格子状になっていない場合、set dgrid3d を使って最初に適切な格 子を生成し、その格子にデータを当てはめることができます。

書式:

     set contour {base | surface | both}
     unset contour
     show contour

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

等高線の描画に影響を与えるパラメータについては、以下参照: set cntrparam (110.16)。等高線のラベルの制御に関しては、以下参照: set cntrlabel (110.15)

このオプションは、線やラベルを配置するもので、曲面自身のその他の見た目 は変えないことに注意してください。曲面の色付けを、等高線で区切られた領 域が他と区別できるような色に割り当てたい場合は、代わりに描画スタイル contourfill を使用してくだささい。以下参照: contourfill (41)

set contour が有効な場合、splot with <style> で points, lines, impulses, labels 等の描画要素を等高線に沿って配置できます。with pm3d は、pm3d 曲面を生成し、さらに等高線も書きます。 set contour が有効な際に生成する等高線に、ファイルから読み込んだラベ ルなどのその他の描画要素も混ぜたい場合は、splot コマンド内のその命令の 後ろにキーワード nocontours を追加しないといけません。

曲面をスイッチオフ (以下参照: unset surface (110.87)) にして、等高線のみのグ ラフにすることも可能です。等高線の 2 次元射影とオプションのラベルは以 下のようにして生成できます:


    set view map
    splot DATA with lines nosurface, DATA with labels

以前のバージョンの gnuplot では、以下のように、代わりとなる多段階の方 法を使って 3 次元の等高線をファイルやデータブロックに保存し、その後で それを 2 次元の plot コマンドを使用してそれを描画していました。


     set contour
     set table $datablock
     splot DATA with lines nosurface
     unset table
     # 等高線は $datablock に、1 つの等高線が 1 つの index で 
     plot for [level=0:*] $datablock index level with lines

以下も参照: splot datafile (113.1)。また、 ^ <a href="http://www.gnuplot.info/demo/contours.html"> 等高線のデモ (contours.dem) ^ </a>^ <a href="http://www.gnuplot.info/demo/discrete.html"> 等高線レベルのユーザ定義のデモ (discrete.dem) ^ </a> も参照。

竹野茂治@新潟工科大学
2023-08-29