surfc
表面プロットの下の等高線図

説明
surfc( は、現在の座標軸ではなく、ax,___)ax で指定される座標軸にプロットします。座標軸を最初の入力引数として指定します。
surfc(___, は、1 つ以上の名前と値のペアの引数を使用して、表面のプロパティを指定します。たとえば、Name,Value)'FaceAlpha',0.5 は半透明な表面を作成します。
sc = surfc(___) は、chart surface オブジェクトと contour オブジェクトを含むグラフィックス配列を返します。表面プロットと等高線図を作成後に変更するには、sc を使用します。プロパティの一覧については、Surface のプロパティ および Contour のプロパティ を参照してください。
例
同じサイズの 3 つの行列を作成します。次に、それらを表面としてプロットし、その表面プロットの下に等高線図を表示します。表面では、高さと色の両方に Z が使用されます。
[X,Y] = meshgrid(1:0.5:10,1:20); Z = sin(X) + cos(Y); surfc(X,Y,Z)

4 番目の行列入力 C を使用して、表面プロットと等高線図の色を指定します。表面プロットでは、高さに Z、色に C が使用されます。"カラーマップ" を使用して色を指定します。カラーマップは、単一の数値を使用してスペクトル上の色を表します。カラーマップを使用する場合、C は Z と同じサイズです。カラー バーをグラフに追加して、C のデータ値がカラーマップの色にどのように対応するかを示します。
[X,Y] = meshgrid(-3:.125:3); Z = peaks(X,Y); C = X.*Y; surfc(X,Y,Z,C) colorbar

名前 FaceColor と値 'b' のペアを指定して、下に等高線図をもつ青の表面プロットを作成します。その後の変更を可能にするには、surface オブジェクトと contour オブジェクトを含むグラフィックス配列を変数 sc に代入します。
[X,Y] = meshgrid(-5:.5:5); Z = Y.*sin(X) - X.*cos(Y); sc = surfc(X,Y,Z,'FaceColor','b');

表面プロットと等高線図の作成後にそれらのプロパティにアクセスして変更するために、sc にインデックスを付けます。表面プロットは sc(1) として、等高線図は sc(2) としてアクセスできます。たとえば、2 つのプロットのエッジの色を変更するには、EdgeColor プロパティを設定します。
sc(1).EdgeColor = 'r'; sc(2).EdgeColor = 'b';

等高線は、既定では最小の z レベルに表示されますが、ZLocation プロパティを設定することで位置を変更できます。
等高線を最小の z レベルにした表面プロットとして peaks データセットを表示します。関数 surfc を呼び出すときに戻り引数を指定して、Contour オブジェクトにアクセスできるようにします。
Z = peaks; sc = surfc(Z);

現在の座標軸を取得し、z 軸の上限を 15 に拡張します。次に、等高線を最大の z レベルに移動します。
ax = gca;
ax.ZLim(2) = 15;
sc(2).ZLocation = 'zmax';
入力引数
x 座標。Z と同じサイズの行列、または長さが n のベクトル ([m,n] = size(Z)) として指定します。X と Y の値を指定しない場合、surfc はベクトル (1:n) とベクトル (1:m) を使用します。
X が行列である場合、その値は 1 つの次元に沿って厳密に増加するか減少しなければならず、その他の次元に沿って一定でなければなりません。変化する次元は、Y で変化する次元と反対のものでなければなりません。行列 X と行列 Y を作成するには、関数 meshgrid を使用できます。
X がベクトルである場合、その値は厳密に増加するか減少しなければなりません。
surface オブジェクトと contour オブジェクトの XData プロパティには x 座標が保存されます。
例: X = 1:10
例: X = [1 2 3; 1 2 3; 1 2 3]
例: [X,Y] = meshgrid(-5:0.5:5)
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical
y 座標。Z と同じサイズの行列、または長さ m のベクトルとして指定します。ここで、[m,n] = size(Z) です。X と Y の値を指定しない場合、surfc はベクトル (1:n) とベクトル (1:m) を使用します。
Y が行列である場合、その値は 1 つの次元に沿って厳密に増加するか減少しなければならず、その他の次元に沿って一定でなければなりません。変化する次元は、X で変化する次元と反対のものでなければなりません。行列 X と行列 Y を作成するには、関数 meshgrid を使用できます。
Y がベクトルである場合、その値は厳密に増加するか減少しなければなりません。
surface オブジェクトと contour オブジェクトの YData プロパティには y 座標が保存されます。
例: Y = 1:10
例: Y = [1 1 1; 2 2 2; 3 3 3]
例: [X,Y] = meshgrid(-5:0.5:5)
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical
z 座標。行列として指定します。Z は少なくとも 2 行 2 列でなければなりません。
Z は、各 x-y 座標での表面プロットの高さを指定します。色を指定しない場合、Z は表面の色も指定します。
surface オブジェクトと contour オブジェクトの ZData プロパティには z 座標が保存されます。
例: Z = [1 2 3; 4 5 6]
例: Z = sin(x) + cos(y)
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical
色配列。m 行 n 列のカラーマップ インデックスの行列、または m×n×3 の RGB 3 成分の配列として指定します。ここで、Z は m 行 n 列です。
カラーマップの色を使用するには、
Cを行列として指定します。表面の各グリッド点について、Cはカラーマップ内の色を示します。surface オブジェクトのCDataMappingプロパティは、Cの値がカラーマップの色にどのように対応するかを制御します。トゥルーカラーの色を使用するには、
Cを RGB 3 成分の配列として指定します。
詳細については、カラーマップとトゥルーカラーの違いを参照してください。
surface オブジェクトの CData プロパティには色配列が保存されます。表面のカラーリングをさらに制御するには、FaceColor プロパティと EdgeColor プロパティを使用します。
プロット対象の座標軸。axes オブジェクトとして指定します。座標軸を指定しない場合、surfc は現在の座標軸にプロットします。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。
例: surfc(X,Y,Z,'FaceAlpha',0.5,'EdgeColor','none') は、エッジが描画されない半透明の表面を作成します。
メモ
ここには一部のプロパティのみを示します。完全な一覧については、Surface のプロパティ を参照してください。
エッジのラインの色。次のいずれかの値として指定します。既定の色は [0 0 0] で、これは黒色のエッジに対応します。
| 値 | 説明 |
|---|---|
'none' | エッジを描画しません。 |
'flat' |
|
'interp' |
|
| RGB 3 成分、16 進数カラー コード、色名 | 指定した色をすべてのエッジに使用します。このオプションは
|
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" | ラインなし | ラインなし |
面の色。次の表のいずれかの値として指定します。
| 値 | 説明 |
|---|---|
'flat' |
|
'interp' |
|
| RGB 3 成分、16 進数カラー コード、色名 | 指定した色をすべての面で使用します。このオプションは
|
'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" |
|
"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 進数カラー コードを取得します。
面の透明度。次の値のいずれかとして指定します。
範囲
[0,1]のスカラー — すべての面に一様な透明度を使用します。値1は完全に不透明で、値0は完全に透明です。0と1の間の値は半透明です。このオプションはAlphaDataプロパティの透明度値を使用しません。'flat'—AlphaDataプロパティの値に基づいて面ごとに異なる透明度を使用します。面全体の透明度は、最初の頂点の透明度値によって決まります。まずAlphaDataプロパティをZDataプロパティと同じサイズの行列として指定しなければなりません。FaceColorプロパティも、'flat'に設定しなければなりません。'interp'—AlphaDataプロパティの値に基づいて面ごとに内挿された透明度を使用します。頂点の値を内挿することにより、各面に異なる透明度が使用されます。まずAlphaDataプロパティをZDataプロパティと同じサイズの行列として指定しなければなりません。FaceColorプロパティも、'interp'に設定しなければなりません。'texturemap'—AlphaDataのデータを表面に適合するように変換します。
面に対する light オブジェクトの効果。次の値のいずれかとして指定します。
'flat'— 各面にライトを一様に適用します。この値は小平面で構成されたオブジェクトを表示する場合に使用します。'gouraud'— 面のライトを変化させます。各頂点のライトを計算し、面上でライトを線形内挿します。この値は曲面を表示する場合に使用します。'none'— light オブジェクトのライトを面に適用しません。
light オブジェクトを座標軸に追加するには、関数 light を使用します。
メモ
値 'phong' は削除されました。代わりに 'gouraud' を使用してください。
拡張機能
surfc 関数は GPU 配列入力をサポートしますが、次の使用上の注意および制限があります。
この関数は GPU 配列を受け入れますが、GPU 上では実行されません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
使用上の注意および制限:
この関数は分散配列に対して演算を行いますが、クライアントの MATLAB® で実行されます。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
参考
関数
プロパティ
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)



















