ドキュメンテーション

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

surf

構文

surf(X,Y,Z)
surf(X,Y,Z,C)
surf(Z)
surf(Z,C)
surf(ax,___)
surf(___,Name,Value)
s = surf(___)

説明

surf(X,Y,Z) は 3 次元の表面プロットを作成します。この関数は行列 Z の値を、XY で定義される x-y 平面のグリッドの上の高さとしてプロットします。この関数は Z をカラー データとしても使用するため、色は高さに比例して変化します。

surf(X,Y,Z,C) は表面の色も指定します。

surf(Z) は表面を作成し、Z の要素の列インデックスと行インデックスをそれぞれ x 座標および y 座標として使用します。

surf(Z,C) は表面の色も指定します。

surf(ax,___) は、現在の座標軸ではなく、ax で指定される座標軸にプロットします。座標軸を最初の入力引数として指定します。

surf(___,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して、表面のプロパティを指定します。たとえば、'FaceAlpha',0.5 は半透明な表面を作成します。名前と値のペアは他のすべての入力引数の後で指定します。

s = surf(___) は chart surface オブジェクトを返します。表面を作成した後で変更を加えるには、s を使用します。一覧については、Surface のプロパティ を参照してください。

すべて折りたたむ

XYZ を同じサイズの行列として作成します。その後、データを表面としてプロットします。表面では、高さと色の両方のデータに Z が使用されます。

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
surf(X,Y,Z)

4 番目の行列入力 C を使用して、表面プロットの色を指定します。CZ と同じサイズの行列として指定することで、カラーマップの色を使用します。カラー バーをグラフに追加して、C のデータ値がカラーマップの色にどうマッピングされるかを示します。

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
C = X.*Y;
surf(X,Y,Z,C)
colorbar

4 番目の行列入力 CO を使用して、表面プロットの色を指定します。CO を RGB 3 成分の値からなる m x n x 3 の配列 (Z は m 行 n 列) として作成することで、トゥルーカラーを使用します。配列の最初のページは各色の赤の成分を表し、2 番目のページは緑の成分を、3 番目のページは青の成分を表します。

[X,Y,Z] = peaks(25);
CO(:,:,1) = zeros(25); % red
CO(:,:,2) = ones(25).*linspace(0.5,0.6,25); % green
CO(:,:,3) = ones(25).*linspace(0,1,25); % blue
surf(X,Y,Z,CO)

FaceAlpha プロパティを名前と値のペア引数として設定することで、半透明の表面を作成します。surface オブジェクトを変数 s に代入します。

[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
s = surf(X,Y,Z,'FaceAlpha',0.5)

s = 
  Surface with properties:

       EdgeColor: [0 0 0]
       LineStyle: '-'
       FaceColor: 'flat'
    FaceLighting: 'flat'
       FaceAlpha: 0.5000
           XData: [21x21 double]
           YData: [21x21 double]
           ZData: [21x21 double]
           CData: [21x21 double]

  Show all properties

surface オブジェクトの作成後にそのプロパティにアクセスし、変更を加えるには、s を使用します。たとえば、EdgeColor プロパティを設定して、エッジの表示をオフにします。

s.EdgeColor = 'none';

入力引数

すべて折りたたむ

x 座標。Z と同じサイズの行列または長さが n のベクトル ([m,n] = size(Z)) として指定します。任意の領域で行列を作成するには、関数 meshgrid を使用します。

surface オブジェクトの XData プロパティには x の値が保存されます。

例: [X,Y] = meshgrid(-5:0.5:5)

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

y 座標。Z と同じサイズの行列または長さが m のベクトル ([m,n] = size(Z)) として指定します。任意の領域で行列を作成するには、関数 meshgrid を使用します。

surface オブジェクトの YData プロパティには y の値が保存されます。

例: [X,Y] = meshgrid(-5:0.5:5)

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

z 座標。行列として指定されます。色を指定しない場合、Z は表面の色も設定します。

surface オブジェクトの 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 | datetime | duration

各頂点の色。Z と同じサイズの行列または m x n x 3 の RGB 3 成分配列 (Zmn 列) として指定します。

  • カラーマップの色を使用する場合は、C を行列として指定します。surface オブジェクトの CDataMapping プロパティは、C の値をカラーマップの色にどうマッピングするかを制御します。

  • トゥルーカラーを使用する場合は、C を RGB 3 成分の配列として指定します。

surface オブジェクトの CData プロパティにはカラー データが保存されます。表面のカラーリングをさらに制御するには、FaceColor プロパティと EdgeColor プロパティを使用します。

プロットする座標軸。axes オブジェクトとして指定します。座標軸を指定しない場合、surf は現在の座標軸にプロットします。

名前と値のペアの引数

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

例: surf(X,Y,Z,'FaceAlpha',0.5,'EdgeColor','none') は、エッジが描画されない半透明の表面を作成します。

メモ

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

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

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

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

'interp'

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

RGB 3 成分または色名

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

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]

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

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

'--'破線

':'点線

'-.'一点鎖線

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

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

説明
'flat'

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

'interp'

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

RGB 3 成分または色名

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

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

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]

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

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

  • 'flat'AlphaData プロパティの値に基づいて面ごとに異なる透明度を使用します。面全体の透明度は、最初の頂点の透明度値によって決まります。まず AlphaData プロパティを ZData プロパティと同じサイズの行列として指定しなければなりません。FaceColor プロパティも、'flat' に設定しなければなりません。

  • 'interp'AlphaData プロパティの値に基づいて面ごとに内挿された透明度を使用します。頂点の値を内挿することにより、各面に異なる透明度が使用されます。まず AlphaData プロパティを ZData プロパティと同じサイズの行列として指定しなければなりません。FaceColor プロパティも、'interp' に設定しなければなりません。

  • 'texturemap'AlphaData のデータを表面に適合するように変換します。

面に対する light オブジェクトの効果。次の値のいずれかとして指定します。

  • 'flat' — 各面にライトを一様に適用します。この値は小平面で構成されたオブジェクトを表示する場合に使用します。

  • 'gouraud' — 面のライトを変化させます。各頂点のライトを計算し、面上でライトを線形内挿します。この値は曲面を表示する場合に使用します。

  • 'none' — light オブジェクトのライトを面に適用しません。

light オブジェクトを座標軸に追加するには、関数 light を使用します。

メモ

'phong' は削除されました。代わりに 'gouraud' を使用してください。

拡張機能

R2006a より前に導入