ドキュメンテーション

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

patch

1 つまたは複数の塗りつぶされた多角形の作成

構文

  • patch(X,Y,C)
  • patch(X,Y,Z,C)
  • patch('XData',X,'YData',Y)
  • patch('XData',X,'YData',Y,'ZData',Z)
  • patch('Faces',F,'Vertices',V)
  • patch(___,Name,Value)
  • patch(ax,___)
  • p = patch(___)

説明

patch(X,Y,C) は、X および Y の要素を各頂点の座標に使用して、1 つ以上の塗りつぶされた多角形を作成します。patch は、頂点を指定された順序で連結します。1 つの多角形を作成するには、XY をベクトルとして指定します。複数の多角形を作成するには、XY を、各列が 1 つの多角形に対応する行列として指定します。C は多角形の色を指定します。

patch(X,Y,Z,C) は、XYZ を使用して 3 次元座標の多角形を作成します。多角形を 3 次元のビューで表示するには view(3) コマンドを使用します。C は多角形の色を指定します。

patch('XData',X,'YData',Y)patch(X,Y,C) と似ていますが、2 次元座標の色データを指定する必要がありません。

patch('XData',X,'YData',Y,'ZData',Z)patch(X,Y,Z,C) と似ていますが、3 次元座標の色データを指定する必要がありません。

patch('Faces',F,'Vertices',V) は、1 つ以上の多角形を作成します。ここで V は頂点の値を指定し、F は連結する頂点を定義します。一意の頂点とその連結行列のみを指定することで、多くの多角形が存在する場合のデータ サイズを減らすことができます。1 行につき 1 つの頂点を V で指定します。1 つの多角形を作成するには、F をベクトルとして指定します。複数の多角形を作成するには、F を行列として指定し、1 つの多角形につき 1 行を含めます。各面が同じ数の頂点をもつ必要はありません。異なる数の頂点を指定するには、FNaN 値でパディングします。

patch(S) は、構造体 S を使用して 1 つ以上の多角形を作成します。構造体フィールドはパッチのプロパティ名に対応し、フィールドの値がプロパティの値に対応します。たとえば、SFacesVertices というフィールドを含めることができます。

patch(___,Name,Value) は、多角形を作成し、名前と値のペアの引数を使用して 1 つ以上のパッチ プロパティを指定します。パッチは、作成されるすべての多角形のデータを含むオブジェクトです。パッチのプロパティは、前述の構文に示した任意の入力引数の組み合わせを使用して指定できます。たとえば、'LineWidth',2 はすべての多角形の外枠の幅を 2 ポイントに設定します。

patch(ax,___) は現在の座標軸 (gca) ではなく、ax で指定された座標軸にパッチを作成します。オプションの ax は、前述の構文のすべての入力引数の組み合わせより前に指定できます。

p = patch(___) は、すべての多角形のデータを含む patch オブジェクトを返します。patch オブジェクトを作成した後でプロパティのクエリや変更を行うには、p を使用します。プロパティと説明の一覧は、Patch のプロパティ を参照してください。

すべて折りたたむ

各頂点の (x,y) 座標を指定して、1 つの多角形を作成します。この Figure に多角形を 2 つ追加します。

(0,0)(1,0)(1,1)(0,1) に頂点をもつ赤い正方形を作成します。x を頂点の x 座標、yy 座標として指定します。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')

一意の各頂点の座標と、これらの連結方法を定義する行列を指定して、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

あるいは、代わりに fv を使用しても同じ結果を得ることができます。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 を使用して多角形を作成します。cx および 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

あるいは、代わりに fv を使用しても同じ結果を得ることができます。多角形を作成するとき、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 プロパティを 01 の間の値に設定して、半透明の多角形を 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);

各頂点にマーカーが設定された複数色のラインを作成します。色を内挿し、カラー バーを使用して値のカラーマップでのマッピングを示します。

データを作成します。y の最後のエントリを NaN に設定して、patch が閉じた多角形の代わりにラインを作成します。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

頂点の 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

頂点の 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

多角形の色。スカラー、ベクトル、行列または色の文字列として指定します。入力の形式によって、すべての多角形に同じ色を使用するか、面ごとに 1 つの色を使用するか、面の色を内挿するかが決まります。

目的の効果使用できる形式結果
すべての面に単色を適用
  • 色の文字列。たとえば、赤の場合は 'r'

  • RGB 3 成分。たとえば、[0 .5 .5]

  • スカラー値。たとえば、2CDataMapping プロパティは、値をカラーマップにマッピングする方法を指定します。

例については、座標の指定を参照してください。

  • FaceColor プロパティを指定された色に設定します。

面ごとに 1 つの色
  • カラーマップの色からなる n 行 1 列のベクトル。n は面の数です。CDataMapping プロパティは、値をカラーマップにマッピングする方法を指定します。

  • RGB 値からなる n x 1 x 3 の配列。配列の最初のページは赤の成分、2 ページ目は青の成分、3 ページ目は緑の成分をそれぞれ指定します。

例については、各多角形の面に異なる色を使用を参照してください。

  • FaceColor プロパティを 'flat' に設定します。

  • 指定された色の値を使用して CData および FaceVertexCData プロパティを設定します。

面の色の内挿
  • [m,n] = size(X) であるような、カラーマップ値からなる mn 列の行列。頂点ごとに 1 つの色を指定します。

  • RGB 値からなる m x n x 3 の配列。

例については、多角形の面の色の内挿を参照してください。

  • FaceColor プロパティを 'interp' に設定します。

  • 指定された色の値を使用して CData および FaceVertexCData プロパティを設定します。

多角形の頂点。次のいずれかの形式で指定します。

  • 2 列の行列 — 各行に 1 つの頂点の (x,y) 座標を含めます。

  • 3 列の行列 — 各行に 1 つの頂点の (x,y,Z) 座標を含めます。

一意の頂点のみを指定してください。F で面を定義するときは同じ頂点を複数回参照できます。

V を指定する場合、関数 patch によって patch オブジェクトの Vertices プロパティが同じ値に設定されます。patch オブジェクトは座標データを自動的に計算し、XDataYData および 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 オブジェクトは座標データを自動的に計算し、XDataYData および ZData を適切な値に設定します。

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

パッチの定義。パッチのプロパティ名に対応するフィールドと、プロパティ値に対応するフィールド値からなる構造体として指定します。

axes オブジェクト。axes オブジェクトを指定しない場合、patch は現在の座標軸を使用します。

名前/値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: patch(x,y,c,'FaceAlpha',.5,'LineStyle',':') は、点線のエッジをもつ半透明の多角形を作成します。

ここでは、パッチ プロパティの一部だけを紹介しています。完全な一覧については、Patch のプロパティ を参照してください。

すべて折りたたむ

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

  • RGB 3 成分または色文字列 — すべての面が同じ色になります。詳細については、次の表を参照してください。

  • 'flat' — 一様な面の色です。まず、CData または FaceVertexCData を、面ごとに 1 つの色か、頂点ごとに 1 つの色を含む配列として指定します。頂点ごとに 1 つの色を指定する場合、面の色は最初に指定した頂点の色によって決まります。

  • 'interp' — 面ごとに色が内挿されます。まず、CData または FaceVertexCData を、頂点ごとに 1 つの値を含む配列として指定します。各頂点における値の双一次内挿を使用して面の色を指定します。

  • 'none' — 面は表示されません。

RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。次の表に、色の完全名および省略名のオプションと、等価の RGB 3 成分の値を示します。

完全名省略名RGB 3 成分
'yellow''y'[1 1 0]
'magenta''m'[1 0 1]
'cyan''c'[0 1 1]
'red''r'[1 0 0]
'green''g'[0 1 0]
'blue''b'[0 0 1]
'white''w'[1 1 1]
'black''k'[0 0 0]

面の透明度。次の値のいずれかとして指定します。

  • 範囲 [0,1] のスカラー — すべての面に一様な透明度を使用します。値 1 は完全に不透明で、値 0 は完全に透明です。このオプションは FaceVertexAlphaData プロパティの透明度値を使用しません。

  • 'flat'FaceVertexAlphaData プロパティの値に基づいて面ごとに異なる透明度を使用します。まず、FaceVertexAlphaData プロパティを、面または頂点ごとに 1 つの透明度値を含むベクトルとして指定しなければなりません。面全体の透明度は、最初の頂点の透明度値によって決まります。

  • 'interp'FaceVertexAlphaData プロパティの値に基づいて面ごとに内挿された透明度を使用します。まず、FaceVertexAlphaData プロパティを、頂点ごとに 1 つの透明度値を含むベクトルとして指定しなければなりません。頂点の値を内挿することにより、各面に一様でない透明度が使用されます。

エッジの色。次の表のいずれかの値として指定します。エッジの既定色は黒で、RGB 3 成分値 [0 0 0] で指定されます。複数の多角形で共有されるエッジの場合、その表示色は最後に描画された多角形によって決まります。

説明結果

RGB 3 成分または色文字列

すべてのエッジに 1 つの色を使用します。詳細については、次の表を参照してください。

'flat'

エッジごとに異なる色を使用します。エッジの色を設定するには、その前の頂点の色を指定します。まず、頂点ごとに 1 つの色を含む配列として CData または FaceVertexCData を指定しなければなりません。エッジの色は、頂点を指定した順序によって決まります。

'interp'

内挿されたエッジの色。まず、頂点ごとに 1 つの色を含む配列として CData または FaceVertexCData を指定しなければなりません。エッジの色を指定するには、2 つの境界頂点の値を線形内挿します。

'none'エッジは表示されません。

エッジは表示されません。

RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。次の表に、色の完全名および省略名のオプションと、等価の RGB 3 成分の値を示します。

完全名省略名RGB 3 成分
'yellow''y'[1 1 0]
'magenta''m'[1 0 1]
'cyan''c'[0 1 1]
'red''r'[1 0 0]
'green''g'[0 1 0]
'blue''b'[0 0 1]
'white''w'[1 1 1]
'black''k'[0 0 0]

ライン スタイル。次の表に挙げるライン スタイル値のいずれかとして指定します。

説明結果
'-'実線

'--'破線

':'点線

'-.'一点鎖線

'none'ラインなしラインなし

出力引数

すべて折りたたむ

patch オブジェクト。スカラーとして返されます。各 patch オブジェクトは 1 つ以上の多角形から構成される場合があります。patch オブジェクトを作成した後でプロパティのクエリや変更を行うには、p を使用します。

参考

関数

プロパティ

R2006a より前に導入

この情報は役に立ちましたか?