3-D Visualization | ![]() ![]() |
インデックス付きカラー -
直接やスケーリングされたカラーマッピング
MATLABは、異なる二つの方法、直接法とスケーリング法で、インデックス付きカラーデータをカラーマップにマッピングします。
直接法
直接のマッピングは、カラーデータをカラーマップの中のインデックスとして、直接使用します。たとえば、1のポイントの値は、カラーマップの最初のカラーで、2は2番目のカラー、等々です。カラーデータが整数でない場合、MATLABは、ゼロ方向に丸めます。カラーマップの中のカラーの数より大きい値は、カラーマップの中の最後のカラーと等しくします(たとえば、
length(colormap)
数)。1より小さい値は、1に設定します。
スケーリングを使用する方法
スケーリング法を使ったマッピングは、2要素ベクトル[cmin
cmax]
(これらは、コマンドcaxis
を使って、設定)
を使って、カラーデータをフィギュアカラーマップにマッピングすることをコントロールします。cmin
は、データ値をカラーマップの中の最初のカラーにマッピングし、cmax
は、カラーマップの最後のカラーにマッピングします。これらの間のデータ値は、つぎの方程式を使って、線形に変換されます。
colormap_index = fix((color_data-cmin)/(cmax-cmin)*cm_length)+1
デフォルトで、MATLABは、cmin
と cmax
を軸の中のすべてのグラフィックオブジェクトのカラーデータのレンジに広げたものです。しかし、これらの範囲を任意の範囲に設定することができます。これにより、一つのフィギュアウインドウの中に複数の軸を表すことができ、お互いにフィギュアのカラーマップの種々に異なる部分を使うことができます。カラーの範囲を使用する例題は、カラーの範囲の計算
を参照してください。
デフォルトで、MATLABは、スケーリング法を使います。直接法を使う場合、プロットを作成するときに、切り替えを行なってください。たとえば、
surf(Z,C,'CDataMapping','direct')
カラーデータの設定法の詳細は、surface
を参照してください。
インデックス付きカラーの指定
単一の行列引数を使って、サーフェスプロットを作成するとき、surf(Z)
は、たとえば、引数
Z
が、サーフェスの高さとカラーを共に指定しているとします。MATLABは、Z
をカレントのカラーマップの中のインデックスを得るために変換します。
surf(Z,C)
![]() |
カラーマップ | 例題 - サーフェスの曲率をカラーにマッピング | ![]() |