等高線図を作成する

Video Image.png 関連する動画はこちら

等高線図は2Dで表される表面グラフです。 等高線図の表示は、XY平面から垂直な点で3D曲面図を表示するのと同じです。 等高線図では、Z値の範囲は、異なる色またはグレースケールレベル、等高線ラベルで区別されます。

A Note about Contour Graphs-01.png

等高線グラフの種類

Originは7種類の等高線図を提供しています。

グラフの種類 ワークシートのXYZ列 行列ウィンドウ ワークシートの仮想行列
  • 等高線 - カラーマップ
  • 等高線:線+ラベル
  • グレースケール等高線
  • ヒートマップ
はい (ヒートマップ以外) はい はい
  • θrZ極座標等高線
はい はい いいえ
  • rθZ極座標等高線
  • 三点等高線図
不可 いいえ

『(作図の詳細) カラーマップ/等高線』、『ラベル』タブを使って、等高線図を編集します。

Originの等高線図は、行列データとワークシートデータ、つまり仮想行列データから作成できます。ワークシートから直接等高線図を作成するよりも、行列から等高線図を作成するほうが高速なので、大きなデータを扱うには行列の手法の方がおすすめです。一方、XYZワークシートから等高線グラフを作成する場合、三角分割法を使って等高線を生成するので、行列を生成する必要はありません。

Note: 生のXYでプロットする等高線の三角法アルゴリズムはOrigin 2016で実行されました。以前のバージョンでは、X,Yデータに対する正規化が作図の前にいくつか行われていました。バージョン2016以降、XYZワークシートデータでの等高線図及び3D曲面は、 以前のバージョンで作成された同じデータとは、異なっています。この変更は、X値とY値の間でスケール範囲が大きく異なる場合に顕著に現れてきます。詳細は FAQ-822 をご覧ください


他に、XYZワークシートから等高線を作成することには次のようなメリットがあります。

  1. レイヤ境界、データ境界、カスタム境界, をサポート
    A Note about Contour Graphs-03.png
  2. 三点等高線図をサポート
    Contour Graphs 10.png

XYZデータあるいは仮想行列から作成された等高線図は非線形のX/Y軸をサポートしています。行列ウィンドウから作成された等高線図は線形軸のみサポートします。

Origin 2018より前は、カスタム境界を適用すると境界マージンに不完全な色塗りが生成されることがありました。これはバージョン2018で改善されました。システム変数 @TCSMを使って、以前の不具合現象を修正することが可能です。

Tri contour smooth mode.png

等高線グラフの作成および編集方法

行列データから等高線図を作成するには、対応するボタンをクリックするか、作図メニューから対応する項目を選択します。 XYZデータから等高線図を作成するには、Z列を作成するかどの列も選択しない状態で上記2つの方法のうち、片方を実行します。仮想行列で等高線図を作成するには、ワークシート内の全ての元データを選択してから上記方法の片方を実行します。すると、Originは内部的仮想行列とグラフを作成するダイアログを開きます。 仮想行列からグラフを作成することについての詳細は、仮想行列から3Dおよび等高線図を作成するをご覧ください。 各等高線図の種類については、等高線図で詳細を参照してください。

等高線図の編集に関してはダイアログと作図の詳細ダイアログで行われます。ダイアログの詳細については、グラフ軸をご確認ください。作図の詳細ダイアログについての詳細は、 グラフを編集するをご覧ください。

等高線グラフの主な機能

等高線図には特殊な機能がいくつかあります。

XYZ等高線図からグリッドを作成

XYZデータから等高線図を作成すると、等高線上で右クリックしてグリッドを作成を選択すると、グリッドを作成: xyzgridダイアログを利用できます。X、Y方向のグリッドサイズと範囲を指定して、指定したポイントでの補間データを、XYZまたは行列形式で新しいブックに出力できます。

アルゴリズムにあるように、指定されたグリッド点は三角分割法で計算され線形補間されます。 入力データ範囲の外側にある等高線の値は欠損値に設定されます。

Generate Grid XYZ Contour.png

グリッドを作成ダイアログのダイアログコントロール

Xグリッドサイズ X方向のグリッド点の数を指定します。
Yグリッドサイズ Y方向のグリッド点の数を指定します。
グリッド範囲

入力データ範囲の境界を指定します。デフォルトでは、すべてのデータポイントが含まれています。不良データポイントどを除外するために、最小と最大のXY座標を編集することで入力データの制限が可能です(Note: 入力データ範囲外の等高線値は欠損値として扱われます。)

X最小
出力XYZ/行列データの最小のX値
X最大
出力XYZ/行列データの最大のX値
Y最小
出力XYZ/行列データの最小のY値
Y最大
出力XYZ/行列データの最大のY値
出力先

出力データの形式を指定します。

XYZデータ
補間された等高線値をXYZデータ形式で出力します。
行列
補間された等高線値を行列形式で出力します。

等高線レベルの追加と削除

  • 複数の等高線にラベルを追加するには、作図の詳細ダイアログにある、カラーマップ/ タブを使います。または、等高線図をクリックし、ミニツールバーの等高線ラベルを表示ボタンButton MT add label.pngから、主レベル上のみ表示をオンにします。
  • 1つまたは2つの等高線のみに追加する場合は、次のように行います。
  1. Ctrl + Shiftキーを押しながら、ラベルを付ける等高線を正確にクリックします。選択した等高線を右クリックして、 等高線ラベルの付加 を選択します。
  2. ドラッグしてラベルの位置を調整します。
A Note about Contour Graphs-09.png


等高線ラベルの削除(非表示):

  • カラーマップ/等高線タブを使います。ミニツールバーの等高線ラベルを表示ボタンButton MT add label.pngをクリックして、等高線ラベルの表示を切り替えることもできます。
  • または、等高線レベルからすべてのラベルを削除するには、Ctrlキーを押しながらレベルを正確にクリックし、右クリックして等高線ラベルの削除を選択します。1つの等高線から(等高線レベル内で)ラベルを削除するには、CTRL + SHIFTを押して等高線を選択し、右クリックして等高線ラベルの削除を選択します。

等高線データの抽出

等高線データの抽出 では、Z値とXY座標、等高線に囲まれた面積を新規のワークシートに出力します。この面積は、 the Polygon Area (polyarea) X-Function によって計算されます。Polygon Area は同じZ値の等高線で囲まれた面積を返します。等高線に囲まれた面積の減算はありません。

等高線データを抽出するには:

  • 1回 クリックすると、全ての等高線が選択されます。
  • 2回クリックすると、同じZ値にある全ての等高線が選択されます。
  • 3回 目のクリックでは、1つの等高線が選択されます。

選択した等高線で右クリックし、 等高線データの抽出 を選択します。多角形面積を含むデータが、新規のワークブックに出力されます。

ワークシートから等高線を作成するアルゴリズム

等高線図は、グリッディングせずに (x, y, z) 座標(直交座標)または (r, \theta, z) 座標(極座標)から直接作成することができます。 データが (r, \theta, z) 座標にある場合、Originは、まず、等高線を作成する前にデータをXYZ空間に変換します。(x, y, z)座標 と (r, \theta, z) 座標の変換は、次式で行われます。

r=\sqrt{x^2+y^2}

\theta =\tan ^{-1}\left( \frac yx\right)

z=z\,\!

さらに

x=r\cos\theta \,\!

y=r\sin\theta\,\!

z=z\,\!

A Note about Contour Graphs-04.png

直交座標では、4つのステップで等高線を作成します。

  • 三角分割
  • 線形補間
  • 等高線の描画
  • 接続とスムージング

三角分割法

すべてのデータポイントは接続され、XY平面上でティーセン(ドローネー)の三角形を作成します。三角形は、出来る限り等角になるように作成されます。さらに、2つの三角形が交わることはありません。 三角形の辺がメッシュの端でなければ、それは2つの三角形で共有されます。

A Note about Contour Graphs-05.png

線形補間

等高線と三角形の辺の交点を見つけるために線形補間が行われます。

等高線レベルzcを指定すると、Originは、すべての三角形を横断し、このレベルの等高線が三角形と交わるかどうかを調べます。三角形の一辺が、等高線と交わると、それが指標の辺として印が付けられます。そして、交点の座標は、この文書内で指標の点として参照され、線形補間で計算されます。

三角形の2つの頂点 I(xi, yi, zi) と J(xj, yj, zj)を結ぶ三角形の辺に対して、以下のことが真であるかどうかを調べます。

\left( z_i-z_c\right) *\left( z_j-z_c\right) <0

z_i=z_i-\varepsilon

z_j=z_j-\varepsilon

真の場合、この辺が指標の辺であるということができます。 さらに、不等式の左側の積が0の場合、等高線が少なくとも頂点の1つを通るということになります。この場合、zi と zj は、小さな値 \varepsilon を減算することによって調整され、指標の点は頂点ではなくなります。調整は以下のように行われます。

上記において、\varepsilon = 1e^{-15}です。

A Note about Contour Graphs-06.png

この辺が指標の辺の場合、その上にある指標の点の座標は次の方法で線形補間され計算されます。

x_c=x_i+\frac{x_j-x_i}{z_j-z_i}\left( z_c-z_i\right)

y_c=y_i+\frac{y_j-y_i}{z_j-z_i}\left( z_c-z_i\right)

Originは、今後利用するために、すべての指標の辺と指標の点の座標を記録します。

三角形が等高線と交わる場合、2つの指標の辺があるということです。

等高線の描画

等高線を描画するには、その上にすべての指標の点をトレースする必要があります。

三角メッシュの境界線上に指標の点がある場合、その点からトレースを開始します。 それ以外の場合、いずれかの指標の点からトレースを開始します。

等高線で遮断する三角形は2つの指標の辺を持ち、メッシュの端にない辺は2つの三角形で共有されなければならないことを思い出して下さい。ですから、ある指標の一辺(次の図でSide A)から同じ三角形の別の指標の辺(次の図でSide B)にトレースすることができます。後者が、三角メッシュの端にない場合、現在の三角形 (次の図のTriangle 1)でこの辺を共有する別の三角形(次の図のTriangle 2)を見つけます。そして、この新しい三角形の別の辺(次の図でSide C)の指標の点を見つけることができます。 このようにして、メッシュの端または既にトレースを行った指標の点に達するまで、トレースを続けます。(前者の場合、等高線は閉じませんが、後者の場合、等高線は閉じます。)トレースされる指標の点の数がこのレベルでの指標の点の合計数と比較されます。 それらが等しくない場合、いくつかの指標の点がトレースされていないということになります。 すべての指標の点がトレースされるまでトレースが続きます。

A Note about Contour Graphs-071.png

接続とスムージング

トレースが終わったら、指標の点が直線で接続されます。スムージングは、作図の詳細ダイアログの等高線設定スムージングのチェックが付いているワークシートからの等高線図で利用可能です。スムージングパラメータや、ワークシートから作成された等高線図に使用される TPSアルゴリズムについての情報を確認してください。


A Note about Contour Graphs-08.png

行列から等高線を作成するアルゴリズム

行列(または仮想行列)から等高線図を作図する際も同様ですが、アルゴリズムはよりシンプルで、次の3つのステップで行われます。

  • 線形補間
  • 等高線の描画
  • 線の接続

線形補間において、等高線の描画は、ワークブックから等高線図を作図するのと同じアルゴリズムが使用されます。

行列から作成される等高線図の線の接続では、直線で特性点を結びます。後にスムージングは実行されません。


参考

  1. Robert J. Renka.Interpolation of Data on the Surface of a Sphere.ACM Transactions on Mathematical Software, Vol. 10, No. 4, December 1984, Pages 417-436.
  2. Fen Yuan, Automatic Drawing of Equal Quantity Curve.Computer Aided Engineering, No. 3 Sept. 1998.