patch
色付きの多角形のパッチを作成する
構文
説明
patch(___,
は、多角形を作成し、名前と値のペアの引数を使用して 1 つ以上のパッチ プロパティを指定します。パッチは、作成されるすべての多角形のデータを含むオブジェクトです。パッチのプロパティは、前述の構文に示した任意の入力引数の組み合わせを使用して指定できます。たとえば、Name,Value
)'LineWidth',2
はすべての多角形の外枠の幅を 2 ポイントに設定します。
patch(
は現在の座標軸 (ax
,___)gca
) ではなく、ax
で指定された座標軸にパッチを描画します。オプションの ax
は、前述の構文のすべての入力引数の組み合わせより前に指定できます。
は、すべての多角形のデータを含む patch オブジェクトを返します。patch オブジェクトを作成した後でプロパティのクエリや変更を行うには、p
= patch(___)p
を使用します。プロパティと説明の一覧については、Patch のプロパティ を参照してください。
例
各頂点の (x,y) 座標を指定して、1 つの多角形を作成します。この Figure に多角形を 2 つ追加します。
(0,0)
、(1,0)
、(1,1)
、(0,1)
に頂点をもつ赤い正方形を作成します。x
を頂点の x 座標、y
を y 座標として指定します。patch
は、最後の (x,y) 座標を最初の (x,y) 座標に自動的に連結します。
x = [0 1 1 0];
y = [0 0 1 1];
patch(x,y,'red')
x
および y
を 2 列の行列として指定して、2 つの多角形を作成します。各列が 1 つの多角形の座標を定義します。patch
は、座標軸をクリアせずに、現在の座標軸に多角形を追加します。
x2 = [2 5; 2 5; 8 8];
y2 = [4 0; 8 2; 4 0];
patch(x2,y2,'green')
X
を categorical 値のベクトルとして定義し、Y
を duration 値のベクトルとして定義します。関数 patch
はカテゴリの並べ替えられたリストを使用するため、x 軸に期待どおりの順序で表示されない場合があります。順序を指定するには、関数 reordercats
を呼び出します。次に、赤いパッチを作成してデータを可視化します。
X = categorical({'Freezing','Cold','Warm','Hot','Boiling','Boiling','Freezing'}); X = reordercats(X,{'Freezing','Cold','Warm','Hot','Boiling'}); Y = minutes([0 15 20 47 50 0 0]); patch(X,Y,'red')
一意の各頂点の座標と、これらの連結方法を定義する行列を指定して、1 つの多角形を作成します。この Figure に多角形を 2 つ追加します。
(0,0)
、(1,0)
、(1,1)
、(0,1)
に角をもつ赤い正方形を作成します。各行が 1 つの頂点 (x,y) の座標を定義するように、v
を指定します。その後、連結する頂点として f
を指定します。FaceColor
プロパティを指定して色を設定します。
v = [0 0; 1 0; 1 1; 0 1]; f = [1 2 3 4]; patch('Faces',f,'Vertices',v,'FaceColor','red')
f
を 2 行の行列として指定し、多角形を 2 つ作成します。ここでは各行が 1 つのパッチの面を定義します。
v2 = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0]; f2 = [1 2 3; 4 5 6]; patch('Faces',f2,'Vertices',v2,'FaceColor','green')
2 つの多角形を作成し、各多角形の面に異なる色を指定します。色をカラーマップにマッピングする方法を指定するには、カラー バーを使用します。
行列 x
および y
を使用して多角形を作成します。2 つの多角形面があるので、c
を 2 要素の列ベクトルとして指定し、カラー バーを追加します。
x = [2 5; 2 5; 8 8]; y = [4 0; 8 2; 4 0]; c = [0; 1]; figure patch(x,y,c) colorbar
あるいは、代わりに f
と v
を使用しても同じ結果を得ることができます。2 つの多角形面があるので、多角形を作成するときに FaceVertexCData
を 2 要素の列ベクトルに設定します。FaceColor
を 'flat'
に設定します。
v = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0]; f = [1 2 3; 4 5 6]; col = [0; 1]; figure patch('Faces',f,'Vertices',v,'FaceVertexCData',col,'FaceColor','flat'); colorbar
多角形の面の色を内挿するには、多角形の各頂点に 1 つの色を指定し、カラー バーを使用して色のマッピングを示します。
行列 x
および y
を使用して多角形を作成します。c
を x
および y
と同じサイズの行列として指定して頂点ごとに 1 つの色を定義し、カラー バーを追加します。
x = [2 5; 2 5; 8 8]; y = [4 0; 8 2; 4 0]; c = [0 3; 6 4; 4 6]; figure patch(x,y,c) colorbar
あるいは、代わりに f
と v
を使用しても同じ結果を得ることができます。多角形を作成するとき、FaceVertexCData
を頂点ごとに 1 つの値をもつ列ベクトルに設定し、FaceColor
を 'interp'
に設定します。
v = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0]; f = [1 2 3; 4 5 6]; col = [0; 6; 4; 3; 4; 6]; figure patch('Faces',f,'Vertices',v,'FaceVertexCData',col,'FaceColor','interp'); colorbar
緑のエッジをもつ、面が表示されない多角形を作成します。その後、エッジごとに色が異なる 2 つ目の多角形を作成します。
v = [0 0; 1 0; 1 1]; f = [1 2 3]; figure patch('Faces',f,'Vertices',v,... 'EdgeColor','green','FaceColor','none','LineWidth',2);
エッジごとに異なる色を使用するには、各頂点に 1 つの色を指定して、EdgeColor
を 'flat'
に設定します。
v = [2 0; 3 0; 3 1]; f = [1 2 3]; c = [1 0 0; % red 0 1 0; % green 0 0 1]; % blue patch('Faces',f,'Vertices',v,'FaceVertexCData',c,... 'EdgeColor','flat','FaceColor','none','LineWidth',2);
構造体を使用して 2 つの多角形を作成します。まず、パッチのプロパティ名に一致するフィールド名をもつ構造体を作成します。次に、この構造体を使用して多角形を作成します。
clear S S.Vertices = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0]; S.Faces = [1 2 3; 4 5 6]; S.FaceVertexCData = [0; 1]; S.FaceColor = 'flat'; S.EdgeColor = 'red'; S.LineWidth = 2; figure patch(S)
FaceAlpha
プロパティを 0
と 1
の間の値に設定して、半透明の多角形を 2 つ作成します。
v1 = [2 4; 2 8; 8 4]; f1 = [1 2 3]; figure patch('Faces',f1,'Vertices',v1,'FaceColor','red','FaceAlpha',.3); v2 = [2 4; 2 8; 8 8]; f2 = [1 2 3]; patch('Faces',f2,'Vertices',v2,'FaceColor','blue','FaceAlpha',.5);
各頂点にマーカーが設定された複数色のラインを作成します。色を内挿し、カラー バーを使用して値のカラーマップでのマッピングを示します。
データを作成します。patch
が閉じた多角形の代わりにラインを作成するよう y
の最後のエントリを NaN
に設定します。y
値を使用して各頂点の色を定義します。c
内の値は、カラーマップにある色にマッピングされます。
x = linspace(1,10,15); y = sin(x); y(end) = NaN; c = y;
ラインを作成します。各頂点のマーカーを表示し、EdgeColor
を 'interp'
に設定して頂点の間の色を内挿します。カラー バーを追加します。
figure patch(x,y,c,'EdgeColor','interp','Marker','o','MarkerFaceColor','flat'); colorbar;
入力引数
頂点の x 座標。次のいずれかの形式で指定します。
ベクトル — 1 つの多角形を作成します。
行列 —
[m,n] = size(X)
であるような、それぞれがm
個の頂点をもつn
個の多角形を作成します。行列の各列が 1 つの多角形に対応します。
データが閉じた多角形を定義しない場合、patch
によって多角形が閉じられます。1 つの多角形のエッジが自己交差する場合、部分的に塗りつぶされた多角形が作成されることがあります。その場合、patch オブジェクトをより小さい多角形に分割することをお勧めします。
X
を指定する場合、関数 patch
によって patch オブジェクトの XData
プロパティが同じ値に設定されます。patch オブジェクトは自動的に面と頂点のデータを計算し、Faces
および Vertices
プロパティを適切な値に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
頂点の y 座標。次のいずれかの形式で指定します。
ベクトル — 1 つの多角形を作成します。
行列 —
[m,n] = size(Y)
であるような、それぞれがm
個の頂点をもつn
個の多角形を作成します。行列の各列が 1 つの多角形に対応します。
データが閉じた多角形を定義しない場合、patch
によって多角形が閉じられます。1 つの多角形のエッジが自己交差する場合、部分的に塗りつぶされた多角形が作成されることがあります。その場合、patch オブジェクトをより小さい多角形に分割することをお勧めします。
Y
を指定する場合、関数 patch
によって patch オブジェクトの YData
プロパティが同じ値に設定されます。patch オブジェクトは自動的に面と頂点のデータを計算し、Faces
および Vertices
プロパティを適切な値に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
頂点の z 座標。次のいずれかの形式で指定します。
ベクトル — 1 つの多角形を作成します。
行列 —
[m,n] = size(Z)
であるような、それぞれがn
個の頂点をもつm
個の多角形を作成します。行列の各列が 1 つの多角形に対応します。
Z
を指定する場合、関数 patch
によって patch オブジェクトの ZData
プロパティが同じ値に設定されます。patch オブジェクトは自動的に面と頂点のデータを計算し、Faces
および Vertices
プロパティを適切な値に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
多角形の色。スカラー、ベクトル、行列または色名として指定します。入力の形式によって、すべての多角形に同じ色を使用するか、面ごとに 1 つの色を使用するか、面の色を内挿するかが決まります。
目的の効果 | 使用できる形式 | 結果 |
---|---|---|
すべての面に単色を適用 |
例については、座標の指定を参照してください。 |
|
面ごとに 1 つの色 |
例については、各多角形の面に異なる色を使用を参照してください。 |
|
面の色の内挿 |
例については、多角形の面の色の内挿を参照してください。 |
|
RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1]
の範囲でなければなりません。たとえば [0.4 0.6 0.7]
のようになります。あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、色の完全名および省略名のオプションと、等価の RGB 3 成分の値を示します。
オプション | 説明 | 等価の RGB 3 成分 |
---|---|---|
'red' または 'r' | 赤 | [1 0 0] |
'green' または 'g' | 緑 | [0 1 0] |
'blue' または 'b' | 青 | [0 0 1] |
'yellow' または 'y' | 黄 | [1 1 0] |
'magenta' または 'm' | マゼンタ | [1 0 1] |
'cyan' または 'c' | シアン | [0 1 1] |
'white' または 'w' | 白 | [1 1 1] |
'black' または 'k' | 黒 | [0 0 0] |
多角形の頂点。次のいずれかの形式で指定します。
2 列の行列 — 各行に 1 つの頂点の (x,y) 座標を含めます。
3 列の行列 — 各行に 1 つの頂点の (x,y,Z) 座標を含めます。
一意の頂点のみを指定してください。F
で面を定義するときは同じ頂点を複数回参照できます。
V
を指定する場合、関数 patch
によって patch オブジェクトの Vertices
プロパティが同じ値に設定されます。patch オブジェクトは座標データを自動的に計算し、XData
、YData
および ZData
を適切な値に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
面の定義。次のいずれかの形式で指定します。
行ベクトル — 1 つの多角形を作成します。
行列 — 複数の多角形を作成します。各行が 1 つの多角形を表します。
たとえば次のコードは、V
に 3 つの頂点を定義し、頂点 1 を 2 に、2 を 3 に、そして 3 を 1 に連結して多角形を 1 つ作成します。
V = [1 1; 2 1; 2 2]; F = [1 2 3 1]; patch('Faces',F,'Vertices',V)
F
を指定する場合、関数 patch
によって patch オブジェクトの Faces
プロパティが同じ値に設定されます。patch オブジェクトは座標データを自動的に計算し、XData
、YData
および ZData
を適切な値に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
パッチの定義。パッチのプロパティ名に対応するフィールドと、プロパティ値に対応するフィールド値からなる構造体として指定します。
プロットする座標軸。Axes
オブジェクトまたは PolarAxes
オブジェクトとして指定します。座標軸を指定しない場合、patch
は現在の座標軸にプロットするか Axes
オブジェクト (直交座標軸) を作成します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: patch(x,y,c,'FaceAlpha',.5,'LineStyle',':')
は、点線のエッジをもつ半透明の多角形を作成します。
ここでは、パッチ プロパティの一部だけを紹介しています。完全な一覧については、Patch のプロパティ を参照してください。
面の色。'interp'
、'flat'
RGB 3 成分、16 進数カラー コード、色名、または省略名として指定します。
各面に異なる色を作成するには、面ごとに 1 つの色または頂点ごとに 1 つの色を含む配列として CData
または FaceVertexCData
プロパティを指定します。色は面ごとに周囲の頂点の色から内挿することも、一様にすることもできます。内挿された色の場合、このプロパティを 'interp'
として指定します。一様な色の場合、このプロパティを 'flat'
として指定します。頂点ごとに 'flat'
と異なる色を指定すると、指定する最初の頂点の色によって面の色が決まります。
すべての面に単色を指定するには、このプロパティを 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 進数カラー コード | 外観 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" | |
"none" | 該当なし | 該当なし | 該当なし | 色なし |
次の表に、ライト テーマとダーク テーマでのプロットの既定のカラー パレットを示します。
パレット | パレットの色 |
---|---|
R2025a より前: ほとんどのプロットで、これらの色が既定で使用されます。 |
|
|
|
orderedcolors
関数と rgb2hex
関数を使用すると、これらのパレットの RGB 3 成分および 16 進数カラー コードを取得できます。たとえば、"gem"
パレットの RGB 3 成分を取得し、16 進数カラー コードに変換します。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);
R2023b より前: RGB = get(groot,"FactoryAxesColorOrder")
を使用して、RGB 3 成分を取得します。
R2024a より前: H = compose("#%02X%02X%02X",round(RGB*255))
を使用して、16 進数カラー コードを取得します。
面の透明度。次の値のいずれかとして指定します。
範囲
[0,1]
のスカラー — すべての面に一様な透明度を使用します。値1
は完全に不透明で、値0
は完全に透明です。このオプションはFaceVertexAlphaData
プロパティの透明度値を使用しません。'flat'
—FaceVertexAlphaData
プロパティの値に基づいて面ごとに異なる透明度を使用します。まず、FaceVertexAlphaData
プロパティを、面または頂点ごとに 1 つの透明度値を含むベクトルとして指定しなければなりません。面全体の透明度は、最初の頂点の透明度値によって決まります。'interp'
—FaceVertexAlphaData
プロパティの値に基づいて面ごとに内挿された透明度を使用します。まず、FaceVertexAlphaData
プロパティを、頂点ごとに 1 つの透明度値を含むベクトルとして指定しなければなりません。頂点の値を内挿することにより、各面に異なる透明度が使用されます。
エッジの色。次の表のいずれかの値として指定します。エッジの既定色は黒で、[0 0 0]
の値で指定されます。複数の多角形で共有されるエッジの場合、その表示色は最初に描画された多角形によって決まります。
値 | 説明 | 結果 |
---|---|---|
RGB 3 成分、16 進数カラー コード、色名 | すべてのエッジに 1 つの色を使用します。詳細については、次の表を参照してください。 |
|
'flat' | エッジごとに異なる色を使用します。エッジの色を設定するには、その前の頂点の色を指定します。まず、頂点ごとに 1 つの色を含む配列として |
|
'interp' | 内挿されたエッジの色。まず、頂点ごとに 1 つの色を含む配列として |
|
'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" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
次の表に、ライト テーマとダーク テーマでのプロットの既定のカラー パレットを示します。
パレット | パレットの色 |
---|---|
R2025a より前: ほとんどのプロットで、これらの色が既定で使用されます。 |
|
|
|
orderedcolors
関数と rgb2hex
関数を使用すると、これらのパレットの RGB 3 成分および 16 進数カラー コードを取得できます。たとえば、"gem"
パレットの RGB 3 成分を取得し、16 進数カラー コードに変換します。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);
R2023b より前: RGB = get(groot,"FactoryAxesColorOrder")
を使用して、RGB 3 成分を取得します。
R2024a より前: H = compose("#%02X%02X%02X",round(RGB*255))
を使用して、16 進数カラー コードを取得します。
ライン スタイル。次の表にリストされたオプションのいずれかとして指定します。
ライン スタイル | 説明 | 結果として得られる線 |
---|---|---|
"-" | 実線 |
|
"--" | 破線 |
|
":" | 点線 |
|
"-." | 一点鎖線 |
|
"none" | ラインなし | ラインなし |
出力引数
patch オブジェクト。スカラーとして返されます。各 patch オブジェクトは 1 つ以上の多角形から構成される場合があります。patch オブジェクトを作成した後でプロパティのクエリや変更を行うには、p
を使用します。
拡張機能
patch
関数は GPU 配列入力をサポートしますが、次の使用上の注意および制限があります。
この関数は GPU 配列を受け入れますが、GPU 上では実行されません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
使用上の注意および制限:
この関数は分散配列に対して演算を行いますが、クライアントの MATLAB® で実行されます。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入極座標で塗りつぶされたパッチを作成するには、patch
関数の最初の引数として PolarAxes
オブジェクトを指定します。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)