パッチ データをカラーマップに関係付ける方法
Patch
オブジェクトを使用するグラフィックスを作成する場合、関数 colormap
を呼び出すことで、カラー スキーム全体を制御できます。また、次の方法でも、カラーマップとパッチ間の関係を制御することができます。
面に特定の色を割り当てる
各面の周囲の頂点に特定の色を割り当てる
これらの関係を制御する方法は、パッチを x、y、および z 座標として指定するか、面-頂点データとして指定するかによって異なります。
カラーマップと x、y、z 座標配列の関係
Patch
オブジェクトを x、y、および z 座標配列を使用して作成する場合、Patch
オブジェクトの CData
プロパティにはインデックス配列 C
が含まれます。この配列は、カラーマップとパッチ間の関係を制御します。面に色を割り当てるには、次の特徴をもつ配列として C
を指定します。
C
は n 行 1 列の配列 (n は面の数)。C(i)
の値は、面i
の色を制御する。
以下に C
および、カラーマップと 3 つの面に対する関係の例を示します。C(i)
の値は、頂点 (X(i,:)
, Y(i,:)
) によって定義された面の色を制御します。
C
の最小値は 0
です。これは、カラーマップの最初の行にマッピングされます。C
の最大値は、1
であり、カラーマップの最後の行にマッピングされます。C
の中間の値は、カラーマップの中間の行に線形にマッピングされます。この場合、C(2)
は、カラーマップの先頭からほぼ 2/3 に位置する色にマッピングされます。次のコードによって、前の図に示されている Patch
オブジェクトが作成されます。
X = [0 0 5; 0 0 5; 4 4 9]; Y = [0 4 0; 3 7 3; 0 4 0]; C = [0; .6667; 1]; p = patch(X,Y,C); colorbar
頂点にカラーを割り当てるには、次の特徴をもつ配列として C
を指定します。
C
は m 行 n 列の配列 (m は面あたりの頂点の数、n は面の数)。C(i,j)
の値は、面j
の頂点i
の色を制御する。
ここでは、C
および、カラーマップと 6 つの頂点に対する関係の例を示します。C(i,j)
の値は、(X(i,j)
, Y(i,j)
) の頂点の色を制御します。
パッチ面と同様に、MATLAB® によって C
の値がカラーマップの行数に対してスケーリングされます。この場合、最小値は C(2,2)=1
で、カラーマップの最初の行にマッピングされます。最大値は、C(3,1)=6
であり、カラーマップの最後の行にマッピングされます。
次のコードによって、前の図に示されている Patch
オブジェクトが作成されます。FaceColor
プロパティは 'interp'
に設定され、頂点の色がそれぞれの面で混ざり合います。
clf X = [0 3; 0 3; 5 6]; Y = [0 3; 5 6; 0 3]; C = [5 4; 2 0; 6 3]; p = patch(X,Y,C,'FaceColor','interp'); colorbar
カラーマップと面-頂点データの関係
面-頂点データを使用してパッチを作成した場合、Patch
オブジェクトの FaceVertexCData
プロパティにはインデックス配列 C
が含まれます。この配列は、カラーマップとパッチ間の関係を制御します。
面に色を割り当てるには、次の特徴をもつ配列として C
を指定します。
C
は n 行 1 列の配列 (n は面の数)。C(i)
の値は、面i
の色を制御する。
以下に C
および、カラーマップと 3 つの面に対する関係の例を示します。
C
の最小値は 0
で、カラーマップの最初の行にマッピングされます。C
の最大値は 1
で、カラーマップの最後の値にマッピングされます。C
の中間の値は、カラーマップの中間の行に線形にマッピングされます。この場合、C(2)
は、カラーマップの下からほぼ 2/3 に位置する色にマッピングされます。
次のコードによって、前の図に示されている Patch
オブジェクトが作成されます。FaceColor
プロパティが 'flat'
に設定され、既定の色である黒の代わりに、カラーマップの色が表示されます。
clf vertices = [0 0; 0 3; 4 0; 0 4; 0 7; 4 4; 5 0; 5 3; 9 0]; faces = [1 2 3; 4 5 6; 7 8 9]; C = [0; 0.6667; 1]; p = patch('Faces',faces,'Vertices',vertices,'FaceVertexCData',C); p.FaceColor = 'flat'; colorbar
頂点に色を割り当てるには、Patch
オブジェクトの FaceVertexCData
プロパティを、次の特徴をもつ配列 C
として指定します。
C
は n 行 1 列の配列 (n は頂点の数)。C(i)
の値は、頂点i
の色を制御する。
ここでは、C
および、カラーマップと 6 つの頂点に対する関係の例を示します。
パッチ面と同様に、MATLAB によって C
の値がカラーマップの行数に対してスケーリングされます。この場合、最小値は C(2)=1
で、カラーマップの最初の行にマッピングされます。最大値は、C(6)=6
であり、カラーマップの最後の行にマッピングされます。
次のコードによって、前の図に示されている Patch
オブジェクトが作成されます。FaceColor
プロパティは 'interp'
に設定され、頂点の色がそれぞれの面で混ざり合います。
clf vertices = [0 0; 0 5; 5 0; 3 3; 3 6; 6 3]; faces = [1 2 3; 4 5 6]; C = [5; 1; 4; 3; 2; 6]; p = patch('Faces',faces,'Vertices',vertices,'FaceVertexCData',C); p.FaceColor = 'interp'; colorbar