ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

インデックス付きデータとトゥルーカラー データの解釈

はじめに

パッチ カラー データは次の 2 つの方法のいずれかで解釈されます。

  • インデックス付きカラー データ - 図のカラーマップで定義されている色に割り当てられている数値

  • トゥルーカラー データ - 色を明示的に定義し、図のカラーマップを使用しない RGB 3 原色

カラー データ (CData または FaceVertexCData) の次元によって、データが解釈される情報を決めます。パッチ、面、頂点ごとに 1 つの数値しか指定しない場合、データはインデックス付データとして解釈されます。Patch、面、頂点ごとに 3 つの数値がある場合、データは RGB 値として解釈されます。

インデックス付きカラー データ

インデックス付きカラー データを、カラーマップに写像する前にスケーリングした値として、または直接カラーマップに対するインデックスとして解釈します。解釈は CDataMapping プロパティを設定することによってコントロールします。既定の設定では、データのスケーリングを行います。

スケーリングされた色

既定の設定では、カラー データのスケーリングが行われ、最小値がカラーマップの最初の色に写像され、最大値がカラーマップの最後の色に写像され、その間の値がカラーマップ全体に渡るように線形変換されます。これにより、データを変更することなく異なるサイズのカラーマップを使用することができ、またカラーマップを変更することなく任意の範囲のデータを使用することができます。

たとえば、次のパッチには合計 24 の (固有でない) 頂点をもつ 8 つの三角形面があります。カラー データは 1 ~ 24 の整数ですが、任意の値をとることができます。

変数 c には、カラー データが含まれます。これは、各列が各面の 3 つの頂点に対する色を指定する 3 行 8 列の行列です。

c = 
     1     4     7    10    13    16    19    22
     2     5     8    11    14    17    20    23
     3     6     9    12    15    18    21    24

パッチの右側のカラー バー (colorbar) は、使用されたカラーマップを示しており、どの色がそれぞれのデータ値に写像されるかを垂直軸で示しています。

caxis コマンドを使用して、カラーマップへのカラー データの写像を変更することができます。このコマンドは、2 要素ベクトル [cmin cmax] を使用して、どのデータ値をカラーマップの最初と最後に写像するかを指定し、それによってカラーの写像をシフトします。

既定の設定では、cmin を Axes 内のすべてのグラフィックス オブジェクトのカラー データの最小値に、cmax をその最大値に設定します。ただし、これらの範囲は任意の値の範囲となるように設定することができ、それによってカラーの写像をシフトすることができます。詳細は、『MATLAB® グラフィックス』ドキュメンテーションの「Axes プロパティ」で「色の範囲の計算」を参照してください。

カラー データは、整数の連続したリストである必要はなく、座標データと一致する次元をもつ任意の行列でかまいません。たとえば、次の例を考えてみましょう。

patch(x,y,z,rand(size(z)))

直接的な色

パッチの CDataMapping プロパティを direct に設定した場合、

set(patch_handle,'CDataMapping','direct')

MATLAB は各カラー データ値をカラーマップ内の直接のインデックスとして解釈します。つまり、1 の値は最初の色に写像され、2 は 2 番目の色に写像されるという具合です。

前の例のパッチはカラーマップの最初の 24 色のみを使用します。

この例は、整数のカラー データを使用します。ただし、値が整数でない場合は次の規則に従って変換されます。

  • 値が 1 未満の場合は、カラーマップの最初の色に割り当てられます。

  • 値が整数でない場合は、ゼロに近い方向の整数に丸められます。

  • 値が length(colormap) 未満の場合は、カラーマップの最後の色に割り当てられます。

スケーリングを行っていないカラー データは、通常、特定のイメージと関連するカラーマップのイメージに一般的に使用されます。

トゥルーカラー パッチ

トゥルーカラーは、Figure のカラーマップのエントリを示す代わりに、RGB 値で明示的に色を指定する手段です。トゥルーカラーは一般にカラーマップで定義できるより広範囲の色を提供します。

トゥルーカラーを使用すると、カラーマップのエントリに対するデータの写像を省略することができます。一方、(カラーマップのみを変更することとは対照的に) パッチのカラーリングを変更するためにはカラー データを再定義しなければなりません。

インデックス付きカラーとトゥルーカラーによる内挿

内挿した面のカラーリングを指定すると、頂点の色から内挿することにより各面の色が決定されます。内挿の方法は、トゥルーカラー データを指定したか、インデックス付きカラー データを指定したかによって異なります。

トゥルーカラー データを指定した場合は、頂点に定義される RGB の数値が内挿されます。これは一般に、面上で滑らかな色の変化を作ります。これとは対照的に、インデックス付きの色の内挿ではカラーマップに定義された色のみを使用します。カラーマップによっては、結果はかなり異なります。

この違いを示すために同じ頂点色をもつ、次の 2 つのパッチを定義します。円形のマーカーは、黄色、赤、青の頂点色を示します。

左側のパッチは、その隣に示す 6 要素のカラーマップから得られるインデックス付きの色を使用します。カラー データは図に示すカラーマップ要素に頂点色を写像します。このカラーマップでは、シアン色の頂点から青色の頂点までの内挿は緑、赤、黄色、マゼンタのみを含めることができ、それにより帯状になります。

RGB 空間の内挿では、カラーマップを使用しません。それは数値間の段階的な遷移に過ぎません。たとえば、シアン色の頂点から青色の頂点への内挿は次の値と類似した変換に従います。

0 1 1, 0 0.9 1, 0 0.8 1, ... 0 0.2 1, 0 0.1 1, 0 0 1

実際には、各ピクセルは異なる色なので変化はかなり小さくなります。

この情報は役に立ちましたか?