可視化手法 | ![]() ![]() |
MATLABは、インデックス付きカラーデータを、カラーマップに写像する前にスケーリングした値として、または直接カラーマップに対するインデックスとして解釈します。解釈は、CDataMapping
プロパティを設定することによって制御します。デフォルトでは、データのスケーリングを行います。
スケーリングされたカラー
デフォルトでは、MATLABはカラーデータのスケーリングを行い、最小値がカラーマップの最初のカラーに写像され、最大値がカラーマップの最後のカラーに写像され、その間の値がカラーマップ全体にわたるように線形変換します。これによって、データを変更することなく異なるサイズのカラーマップを使用することができ、またカラーマップを変更することなく任意の範囲の値のデータを使用することができます。
たとえば、つぎのpatchには、合計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
patchの右側のカラーバー(colorbar
)は、使用されたカラーマップを示しており、どの色がそれぞれのデータ値に写像されるかを垂直軸で示しています。
caxis
コマンドを使って、カラーマップへのカラーデータの写像を変更することができます。このコマンドは、2要素ベクトル [cmin
cmax
] を使って、どのデータ値をカラーマップの最初と最後に写像するかを指定し、それによってカラーの写像をシフトします。
デフォルトでは、MATLABは、cmin
をaxes内のすべてのグラフィックスオブジェクトのカラーデータの最小値に、cmax
をその最大値に設定します。しかし、これらの範囲は任意の値の範囲となるように設定することができ、それによってカラーの写像をシフトすることができます。詳細は、カラーの範囲の計算を参照してください。
カラーデータは、整数の連続したリストである必要はなく、座標データと一致する次元をもつ任意の行列でかまいません。たとえば、つぎの通りです。
patch(x,y,z,rand(size(z)))
直接的なカラー
patchの CDataMapping
プロパティを off
に設定すると、
set(patch_handle,'CDataMapping','off')
MATLABは、各カラーデータ値をカラーマップ内の直接のインデックスとして解釈します。つまり、1の値は、最初のカラーに写像され、2は2番目のカラーに写像されるという具合です。
前の例のpatchは、カラーマップの最初の24色のみを使用します。
この例は、整数のカラーデータを使用します。しかし、値が整数でない場合、MATLABはつぎの規則に従って変換します。
length(colormap)
の場合、カラーマップの最後のカラーに写像します。スケーリングを行っていないカラーデータは、通常、特定のイメージと関連するカラーマップをもつイメージに対して、より一般的に使用されます。
![]() | MATLABでのカラーデータの解釈法 | トゥルーカラーpatch | ![]() |