ドキュメンテーション

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

pcolor

疑似カラー プロット

説明

pcolor(C) は行列 C 内の値を使用して疑似カラー プロットを作成します。疑似カラー プロットには色の付いたセル ("面" と呼ばれます) の配列として行列データが表示されます。MATLAB® は、x-y 平面でフラットな表面としてこのプロットを作成します。表面は、面の隅 (または頂点) に対応する x 座標と y 座標のグリッドによって定義されます。このグリッドは、領域 X=1:nY=1:m ([m,n] = size(C)) をカバーします。行列 C は頂点で色を指定します。各面の色はその周囲の 4 個の頂点のいずれかの色に依存します。4 個の頂点のうち、x-y グリッドの最初の頂点が面の色を決定します。

pcolor(X,Y,C) は、頂点の x 座標および y 座標を指定します。C のサイズは x-y 座標グリッドのサイズと同じでなければなりません。たとえば、XY が m 行 n 列のグリッドを定義する場合、C は m 行 n 列の行列でなければなりません。

pcolor(ax,___) はプロットのターゲット座標軸を指定します。前述の任意の構文で、最初の引数として ax を指定します。

s = pcolor(___)Surface オブジェクトを返します。s を使用して、プロットの作成後にそのプロパティを設定します。プロパティの一覧については、Surface のプロパティ を参照してください。

すべて折りたたむ

座標ベクトル X および Y と、赤、緑、青、黄、黒の 5 色を含む mymap と呼ばれるカラーマップを作成します。

X = [1 2 3; 1 2 3; 1 2 3];
Y = X';
mymap = [1 0 0; 0 1 0; 0 0 1; 1 1 0; 0 0 0];

カラーマップの色を 9 個の頂点にマッピングする行列 C を作成します。9 個の頂点のうち 4 個によって面の色が決定します。これらの頂点で、面が赤 (1)、緑 (2)、青 (3)、黄 (4) になるように色をそれぞれ指定します。その他の頂点の色を黒 (5) に設定します。

C = [3 4 5; 1 2 5; 5 5 5];

面をプロットし、関数 colormap を呼び出して既定のカラーマップを mymap で置き換えます。

pcolor(X,Y,C)
colormap(mymap)

アダマール行列は、1 または -1 の要素をもちます。この行列を可視化する優れた方法は、2 色のカラーマップを使用することです。

20 行 20 列のアダマール行列を作成します。次に、モノクロのカラーマップを使用して行列をプロットします。関数 axis を使用して y 軸の方向を反転し、軸のラインを同じ長さに設定します。

C = hadamard(20);
pcolor(C)
colormap(gray(2))
axis ij
axis square

色行列 C を作成します。次に、C の疑似カラー プロットを作成して、Surface オブジェクトを戻り引数 s に格納します。

C = [1 2 3; 4 5 6; 7 8 9];
s = pcolor(C);

sEdgeColor プロパティを設定して、境界線の色を変更します。LineWidth プロパティを設定して、境界線を太くします。

s.EdgeColor = [1 0.7 0.3];
s.LineWidth = 6;

色行列 C を作成します。次に、C の疑似カラー プロットを作成して、Surface オブジェクトを戻り引数 s に格納します。

C = [5 13 9 7 12; 11 2 14 8 10; 6 1 3 4 15];
s = pcolor(C);

面全体で色を内挿するには、sFaceColor プロパティを 'interp' に設定します。

s.FaceColor = 'interp';

頂点が等間隔のグリッドを定義する行列 XY を作成します。行列 LYY のログとして計算します。次に、カラー インデックスの行の組が交互に含まれる行列 C を作成します。

[X,Y] = meshgrid(1:20);
LY = log(Y);
colorscale = [1:20; 20:-1:1];
C = repmat(colorscale,10,1);

C で指定した色を使用して、XLY をプロットします。次に、y 軸で目盛りラベルを調整します。

s = pcolor(X,LY,C);
tickvals = LY(2:2:20,1)';
set(gca,'YTick',tickvals);

頂点が等間隔のグリッドを定義する行列 XY を作成します。行列 XXYYXY の関数として計算します。次に、カラー インデックスの行の組が交互に含まれる行列 C を作成します。

[X,Y] = meshgrid(-3:6/17:3);
XX = 2*X.*Y;
YY = X.^2 - Y.^2;
colorscale = [1:18; 18:-1:1];
C = repmat(colorscale,9,1);

C の色を使用して XXYY をプロットします。

pcolor(XX,YY,C);

関数 subplot を使用して 2 つの座標軸 ax1ax2 を作成します。この座標軸を pcolor に対する最初の引数として指定し、2 つの疑似カラー プロットを作成します。

% Left plot
ax1 = subplot(1,2,1);
C1 = rand(20,10);
pcolor(ax1,C1)

% Right plot
ax2 = subplot(1,2,2);
C2 = rand(50,10);
pcolor(ax2,C2)

入力引数

すべて折りたたむ

カラーマップへのインデックスが含まれる色行列。C の値はカラーマップ配列の色を各面の周辺の頂点にマッピングします。面の色はその 4 個の頂点のいずれかの色に依存します。4 個の頂点のうち、XY の最初の頂点が面の色を決定します。XY を指定しない場合、MATLAB は X=1:nY=1:m ([m,n] = size(C)) を使用します。頂点の色と面の色のこの関係によって、C の最後の行と列の値はどれもプロットで表されません。

メモ

面の最初の頂点は対応する行列の左上隅に最も近くなります。ただし、y 軸は下から上に増加するため、プロットに表示される最初の頂点は通常、面の左下隅になります。必要な効果を実現するために、y 軸の方向または行列 C の方向を変更しなければならない場合があります。

C の値はカラーマップの範囲全体にスケーリングされます。C の最小値は、カラーマップ配列の最初の行にマッピングされます。C の最大値はカラーマップ配列の最後の行にマッピングされます。C の中間の値はカラーマップ配列の中間の行に線形にマッピングされます。関数 caxis を使用してこのマッピングを調整できます。

Surface オブジェクトの CData プロパティに C の値が格納されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

x 座標。C と同じサイズの行列または長さが n のベクトル ([m,n] = size(C)) として指定します。X の既定値はベクトル (1:n) です。

頂点の四角形グリッドを作成するには、X を次のいずれかとして指定します。

  • 増加または減少する値が含まれるベクトル。

  • 1 つの次元に沿って増加または減少し、それ以外の次元に沿って一定である行列。行列 Y で変化する次元とは反対に変化する次元を設定します。行列 X と行列 Y を作成するには、関数 meshgrid を使用できます。

パラメトリックなグリッドを作成するには、四角形グリッドを作成し、数学関数を使用してそれを渡します。

例: X = 1:10

例: X = [1 2 3; 1 2 3; 1 2 3]

例: [X,Y] = meshgrid(1:10)

Surface オブジェクトの XData プロパティに x 座標が格納されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

y 座標。C と同じサイズの行列または長さが m のベクトル ([m,n] = size(C)) として指定します。Y の既定値はベクトル (1:m) です。

頂点の四角形グリッドを作成するには、Y を次のいずれかとして指定します。

  • 増加または減少する値が含まれるベクトル。

  • 1 つの次元に沿って増加または減少し、それ以外の次元に沿って一定である行列。行列 X で変化する次元とは反対に変化する次元を設定します。行列 X と行列 Y を作成するには、関数 meshgrid を使用できます。

パラメトリックなグリッドを作成するには、四角形グリッドを作成し、数学関数を使用してそれを渡します。

例: Y = 1:10

例: Y = [1 1 1; 2 2 2; 3 3 3]

例: [X,Y] = meshgrid(1:10)

Surface オブジェクトの YData プロパティに y 座標が格納されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

ターゲット座標軸。Axes オブジェクトとして指定します。座標軸を指定しない場合、pcolor は現在の座標軸にプロットします。

アルゴリズム

関数 pcolor、関数 image、関数 imagesc を使用して、色付きセルの方形配列を表示します。色行列 C と色付きセル間の関係は、それぞれの場合で異なります。

  • pcolor(C)C の値を使用し、カラーマップの範囲全体に値をスケーリングして頂点の色を定義します。C のサイズが頂点の数を決定します。C の値は現在のカラーマップから各セルの周辺の頂点に色をマッピングします。

  • image(C)C を使用してセルの色を定義します。値は直接カラーマップにマッピングされます。C のサイズがセルの数を決定します。

  • imagesc(C)C を使用し、カラーマップの範囲全体に値をスケーリングしてセルの色を定義します。C のサイズがセルの数を決定します。

拡張機能

R2006a より前に導入