Main Content

contourf

塗りつぶし 2 次元等高線図

  • Filled contour plot

説明

contourf(Z) は行列 Z の等値線を含む塗りつぶし等高線図を作成します。Z には x-y 平面上の高さの値が含まれます。MATLAB® は表示する等高線を自動的に選択します。Z の列と行のインデックスは、それぞれ平面の x 座標と y 座標です。

contourf(X,Y,Z) は、Z の値に x 座標および y 座標を指定します。

contourf(___,levels) は、前述の任意の構文における最後の引数として、表示する等高線を指定します。スカラー値 n として levels を指定し、自動的に選択されたレベル (高さ) n の等高線を表示します。特定の高さの等高線を描画するには、単調増加する値のベクトルとして levels を指定します。1 つの高さ (k) の等高線を描画するには、levels を 2 要素の行ベクトル [k k] として指定します。

contourf(___,LineSpec) は、等高線のスタイルと色を指定します。

contourf(___,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して、等高線図の追加のオプションを指定します。オプションは他のすべての入力引数の後に指定します。プロパティの一覧については、Contour のプロパティ を参照してください。

contourf(ax,___) は、ターゲット座標軸に等高線図を表示します。前述の任意の構文で、最初の引数として座標軸を指定します。

M = contourf(___) は、各レベルの頂点の (x, y) 座標を含む等高線行列 M を返します。

[M,c] = contourf(___) は、等高線行列と contour オブジェクト c を返します。等高線図の表示後にプロパティを設定するには、c を使用します。

すべて折りたたむ

Z を 2 変数関数として定義します。この例では、関数 peaks を呼び出して Z を作成します。その後、Z の塗りつぶし等高線図を表示して、等高線のレベルを MATLAB® に選択させます。

Z = peaks;
contourf(Z)

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

Z を 2 変数 XY の関数として定義します。その後、Z の 10 レベルの等高線を表示します。

x = linspace(-2*pi,2*pi);
y = linspace(0,4*pi);
[X,Y] = meshgrid(x,y);
Z = sin(X) + cos(Y);
contourf(X,Y,Z,10)

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

ZXY の関数として定義します。この例では、関数 peaks を呼び出して XYZ を作成します。その後、レベル 2 およびレベル 3 の等高線を表示します。

白の領域は、2 未満の高さに対応します。紫の領域は、23 の間の高さに対応します。さらに黄の領域は、3 を超える高さに対応します。

[X,Y,Z] = peaks(50);
contourf(X,Y,Z,[2 3],'ShowText','on')

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

R2022b 以降

小数点以下 1 桁の後に文字 m が続くラベルを表示する、等高線図を作成します。FaceAlpha プロパティを 0.25 に設定して、一部透明な塗りつぶし色を指定します。

contourf(peaks,[-4 0 2],"ShowText",true,"LabelFormat","%0.1f m", ...
    "FaceAlpha",0.25)

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

R2022b 以降

値の計算が必要な場合に、ラベル形式を設定する関数を指定できます。たとえば、複数の単位でラベル値を計算する関数を定義できます。

次の関数を、mylabelfun.m というプログラム ファイルで定義します。この関数は入力をメートルからフィートに変換し、メートル単位の各値と、かっこで囲んだフィート単位での等価値を含む string ベクトルを返します。

function labels = mylabelfun(vals)
feetPerMeter = 3.28084;
feet = round(vals.*feetPerMeter);
labels = vals + " m (" + feet + " ft)";
labels(vals == 0) = "0 m";
end

次に、等高線図を作成し、LabelFormat プロパティを mylabelfun のハンドルとして指定します。FaceAlpha の値を 0.25 に設定して、一部透明な塗りつぶし色を指定します。

contourf(peaks,[-4 0 2],"ShowText",true,"LabelFormat",@mylabelfun, ...
    "FaceAlpha",0.25)

ZXY の関数として定義します。この例では、関数 peaks を呼び出して XYZ を作成します。その後、Z = 2 の等高線を表示します。

[X,Y,Z] = peaks;
contourf(X,Y,Z,[2 2])

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

等高線図を作成し、破線のライン スタイルを指定します。

[X,Y,Z] = peaks;
contourf(X,Y,Z,'--')

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

塗りつぶし等高線図を作成します。LineWidth プロパティを 3 に設定して、等高線を太くします。

Z = peaks;
[M,c] = contourf(Z);
c.LineWidth = 3;

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

表面の不連続な位置に NaN 値を挿入します。関数 contourf はこれらの領域に等高線を描画しません。

行列 Z を関数 peaks のサンプリングとして定義します。列 26 のすべての値を NaN 値に置き換えます。その後、変更した Z 行列で等高線をプロットします。

Z = peaks;
Z(:,26) = NaN;
contourf(Z)

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

入力引数

すべて折りたたむ

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

X が行列である場合、その値は 1 つの次元に沿って厳密に増加するか減少しなければならず、その他の次元に沿って一定でなければなりません。変化する次元は、Y で変化する次元と反対のものでなければなりません。行列 X と行列 Y を作成するには、関数 meshgrid を使用できます。

X がベクトルである場合、その値は厳密に増加するか減少しなければなりません。

例: X = 1:10

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

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

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

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

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

Y が行列である場合、その値は 1 つの次元に沿って厳密に増加するか減少しなければならず、その他の次元に沿って一定でなければなりません。変化する次元は、X で変化する次元と反対のものでなければなりません。行列 X と行列 Y を作成するには、関数 meshgrid を使用できます。

Y がベクトルである場合、その値は厳密に増加するか減少しなければなりません。

例: Y = 1:10

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

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

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

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

z 座標。行列として指定します。この行列には、少なくとも 2 行と 2 列がなければならず、少なくとも 2 つの異なる値が含まれなければなりません。

例: Z = peaks(20)

Contour オブジェクトの ZData プロパティに z 座標が格納されます。

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

等高線のレベル。0 または正の整数のスカラー、あるいはベクトルとして指定します。この引数を使用して等高線の数と位置を制御します。レベルを指定しない場合、関数 contourf はレベルを自動的に選択します。

  • 自動的に選択された n 個の高さに等高線を描画するには、levels をスカラー値 n として指定します。

  • 特定の高さの等高線を描画するには、単調増加する値のベクトルとして levels を指定します。

  • 単一の高さ k に等高線を描画するには、levels を 2 要素の行ベクトル [k k] として指定します。

関数 contourf は、現在のカラーマップを使用して、プロットのレベル間の空白を塗りつぶします。最初の色は、最低レベルと次に高いレベルとの間の空白を塗りつぶします。最後の色は、プロットの最高レベルより大きい Z 値に対応します。プロットに表示される最低レベルよりも小さい値が Z に含まれる場合、最低レベルと Z の最小値との間の領域は白になります。

例: contourf(peaks,10) は、関数 peaks の自動的に選択された 10 個の高さに等高線を描画します。

例: contourf(peaks,[-4 0 4]) は、関数 peaks の特定の 3 つの高さ -40、および 4 に等高線を描画します。

例: contourf(peaks,[3 3]) は、関数 peaks の高さが 3 の位置を示す等高線を描画します。

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

ラインのスタイルと色。文字と記号を含む文字ベクトルまたは string スカラーとして指定します。文字と記号の順番は任意です。ライン スタイル、ラインの色、またはその両方を指定できます。'o' などのマーカー記号は無視されます。

例: '--g' は緑色の破線です。

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

Sample of solid line

"--"破線

Sample of dashed line

":"点線

Sample of dotted line

"-."一点鎖線

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

色名省略名外観
'red''r'

Sample of the color red

'green''g'

Sample of the color green

'blue''b'

Sample of the color blue

'cyan' 'c'

Sample of the color cyan

'magenta''m'

Sample of the color magenta

'yellow''y'

Sample of the color yellow

'black''k'

Sample of the color black

'white''w'

Sample of the color white

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

名前と値の引数

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

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: contourf(Z,'ShowText','on') は、等高線のラベルを表示します。

メモ

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

等高線のラベル。'on' または 'off' もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

  • 'on' — 等高線に沿って高さの値を表示します。

  • 'off' — 等高線にラベルを付けません。

等高線の幅。ポイント単位の正の値として指定します。1 ポイントは 1/72 インチです。

等高線に沿ったラベルの間隔。ポイント単位のスカラー値として指定します。1 ポイントは 1/72 インチです。このプロパティを使用して、等高線に沿った等高線のラベル数を制御します。値が小さいほどラベル数が多くなります。

LabelSpacing プロパティを有効にするには、ShowText プロパティを 'on' に設定しなければなりません。

関数 clabel を使用してラベルを表示する場合、LabelSpacing プロパティは無効になり、プロットはラインごとに 1 つのラベルを表示します。

出力引数

すべて折りたたむ

等高線行列。次の形式の 2 行の行列として返されます。

Z1, x1,1, x1,2, ..., x1,N1, Z2, x2,1, x2,2, ..., x2,N2, Z3, ...
N1, y1,1, y1,2, ..., y1,N1, N2, y2,1, y2,2, ..., y2,N2, N3, ...

この行列の各列は等高線を定義します。各等高線は Z 値と N 値を含む列で始まります。

  • Zi — i 番目の等高線の高さ

  • Ni — i 番目の等高線の頂点の数

  • (xij, yij) — i 番目の等高線の頂点の座標 (j は 1 ~ Ni の範囲)

Contour オブジェクト。等高線図が表示された後にプロパティを設定するには、このオブジェクトを使用します。

拡張機能

バージョン履歴

R2006a より前に導入