メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

pcolor

疑似カラー プロット

  • Pseudocolor plot

説明

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 座標グリッドのサイズと同じでなければなりません。たとえば、XYmn 列のグリッドを定義する場合、Cmn 列の行列でなければなりません。

pcolor(___,Name=Value) は、1 つ以上の名前と値の引数を使用してプロットのプロパティを設定します。たとえば、プロットの色を指定することや、プロットのメッシュ ラインを非表示にすることができます。プロパティの一覧については、Surface のプロパティ を参照してください。 (R2024b 以降)

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)

Figure contains an axes object. The axes object contains an object of type surface.

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

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

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

Figure contains an axes object. The axes object contains an object of type surface.

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

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

Figure contains an axes object. The axes object contains an object of type surface.

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

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

Figure contains an axes object. The axes object contains an object of type surface.

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

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

Figure contains an axes object. The axes object contains an object of type surface.

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

s.FaceColor = 'interp';

Figure contains an axes object. The axes object contains an object of type surface.

頂点が等間隔のグリッドを定義する行列 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);

Figure contains an axes object. The axes object contains an object of type surface.

頂点が等間隔のグリッドを定義する行列 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);

Figure contains an axes object. The axes object contains an object of type surface.

関数 tiledlayout を呼び出して、1 行 2 列のタイル表示チャート レイアウトを作成します。関数 nexttile を呼び出して、axes オブジェクト ax1 および ax2 を作成します。この座標軸を pcolor に対する最初の引数として指定し、2 つの疑似カラー プロットを作成します。

tiledlayout(1,2)

% Left plot
ax1 = nexttile;
C1 = rand(20,10);
pcolor(ax1,C1)

% Right plot
ax2 = nexttile;
C2 = rand(50,10);
pcolor(ax2,C2)

Figure contains 2 axes objects. Axes object 1 contains an object of type surface. Axes object 2 contains an object of type surface.

入力引数

すべて折りたたむ

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

2-by-2 pseudocolor plot with four faces and a different colored dot at each of the nine vertices. The color of each face is determined by the color of its lower-left vertex. The five vertices along the top and right edges of the plot do not determine the color of any face.

メモ

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

頂点と面の色の関係を示す簡単な例については、4 色を使用した 4 面のプロットを参照してください。

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

R2022a より前: 関数 caxis を使用します。その構文と引数は clim と同じです。

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 | categorical | datetime | duration

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 | categorical | datetime | duration

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

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: pcolor([1 2 3; 4 5 6; 7 8 9],FaceColor="interp") は、面全体で色を内挿します。

メモ

ここには一部のプロパティのみを示します。完全な一覧については、Surface のプロパティ を参照してください。

面の色。次の表のいずれかの値として指定します。

説明
'flat'

CData プロパティの値に基づいて面ごとに異なる色を使用します。まず、CData プロパティを ZData と同じサイズの行列として指定しなければなりません。各面の最初の頂点 (正の x 方向と y 方向) のカラー値が、面全体の色を決定します。この値は FaceAlpha プロパティが 'interp' に設定されている場合は使用できません。

Sample of a surface with each face a different color based on sample values in the CData property

'interp'

CData プロパティの値に基づいて、面ごとに内挿によるカラーリングを使用します。まず、CData プロパティを ZData と同じサイズの行列として指定しなければなりません。頂点のカラー値を内挿することにより、各面の端から端へと色が変化します。この値は FaceAlpha プロパティが 'flat' に設定されている場合は使用できません。

Sample of a surface with each face showing different interpolated coloring based on sample values in the CData property

RGB 3 成分、16 進数カラー コード、色名

指定した色をすべての面で使用します。このオプションは CData プロパティのカラー値を使用しません。

Sample of a surface with all faces shown in red

'texturemap'CData のカラー データを表面に適合するように変換します。
'none'面を描画しません。

RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。この値は大文字と小文字を区別しません。したがって、カラー コード "#FF8800""#ff8800""#F80"、および "#f80" は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

エッジのラインの色。次のいずれかの値として指定します。既定の色は [0 0 0] で、これは黒色のエッジに対応します。

説明
'none'エッジを描画しません。
'flat'

CData プロパティの値に基づいてエッジごとに異なる色を使用します。まず、CData プロパティを ZData と同じサイズの行列として指定しなければなりません。各面の最初の頂点 (正の x 方向と y 方向) のカラー値が、隣接するエッジの色を決定します。この値は EdgeAlpha プロパティが 'interp' に設定されている場合は使用できません。

Sample of a surface with each edge a different color based on sample values in the CData property

'interp'

CData プロパティの値に基づいて、エッジごとに内挿によるカラーリングを使用します。まず、CData プロパティを ZData と同じサイズの行列として指定しなければなりません。頂点でのカラー値を線形内挿することにより、各エッジの端から端に向かって色が変化します。この値は EdgeAlpha プロパティが 'flat' に設定されている場合は使用できません。

Sample of a surface with each edge showing different interpolated coloring based on sample values in the CData property

RGB 3 成分、16 進数カラー コード、色名

指定した色をすべてのエッジに使用します。このオプションは CData プロパティのカラー値を使用しません。

Sample of a surface with all edges shown in red

RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。この値は大文字と小文字を区別しません。したがって、カラー コード "#FF8800""#ff8800""#F80"、および "#f80" は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

ライン スタイル。次の表にリストされたオプションのいずれかとして指定します。

ライン スタイル説明結果として得られる線
"-"実線

Sample of solid line

"--"破線

Sample of dashed line

":"点線

Sample of dotted line

"-."一点鎖線

Sample of dash-dotted line, with alternating dashes and dots

"none"ラインなしラインなし

アルゴリズム

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

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

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

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

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

すべて展開する