このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
3 次元表面をプロット
fsurf(
は、指定された区間にプロットします。f
,xyinterval
)x
とy
の両方で同じ区間を使用するには、[min max]
の形式をもつ 2 要素ベクトルとしてxyinterval
を指定します。異なる区間を使用するには、[xmin xmax ymin ymax]
の形式をもつ 4 要素ベクトルを指定します。
fsurf(
は、指定された区間にプロットします。funx
,funy
,funz
,uvinterval
)u
とv
の両方で同じ区間を使用するには、[min max]
の形式をもつ 2 要素ベクトルとしてuvinterval
を指定します。異なる区間を使用するには、[umin umax vmin vmax]
の形式をもつ 4 要素ベクトルを指定します。
fsurf(___,
は、ライン スタイル、マーカー記号および表面の色を設定します。たとえば、LineSpec
)'-r'
は赤のラインを指定します。このオプションは、前述した任意の入力引数の組み合わせの後に使用します。
fsurf(___,
は1つ以上の名前と値のペアの引数を使用して,表面のプロパティを指定します。このオプションは,前述の構文における任意の入力引数が組み合わされてから使用します。Name,Value
)
fsurf(
は、現在の座標軸 (ax
,___)gca
) ではなくax
で指定される座標軸にプロットします。
は、入力に応じてfs
= fsurf(___)FunctionSurface
オブジェクトまたはParameterizedFunctionSurface
オブジェクトを返します。特定の表面のプロパティについてクエリや変更を行うには、fs
を使用します。プロパティの一覧については、FunctionSurface のプロパティまたはParameterizedFunctionSurface のプロパティを参照してください。
区分的な式
を にプロットします。
プロット区間をfsurf
の 2 番目の入力引数として指定します。同じ座標軸の異なる区間に複数の表面をプロットする場合、すべてのデータが含まれるように軸の範囲が調整されます。
f1 = @(x,y) erf(x)+cos(y); fsurf(f1,[-5 0 -5 5]) holdonf2 = @(x,y) sin(x)+cos(y); fsurf(f2,[0 5 -5 5]) holdoff
パラメーター化された表面
を
かつ
についてテストします。camlight
を使用して表面にライトを追加します。
r = @(u,v) 2 + sin(7.*u + 5.*v); funx = @(u,v) r(u,v).*cos(u).*sin(v); funy = @(u,v) r(u,v).*sin(u).*sin(v); funz = @(u,v) r(u,v).*cos(v); fsurf(funx,funy,funz,[0 2*pi 0 pi]) camlight
と について から まで、3 次元表面 をプロットします。タイトルおよび軸ラベルを追加し、座標軸の外枠を表示します。
fsurf(@(x,y) y.*sin(x)-x.*cos(y),[-2*pi 2*pi]) title('ysin(x) - xcos(y) for x and y in [-2\pi,2\pi]') xlabel('x'); ylabel('y'); zlabel('z'); boxon
axes オブジェクトのXTickLabel
プロパティとXTick
プロパティを使用して、x軸の目盛り値および関連するラベルを設定します。gca
を使用して axes オブジェクトにアクセスします。同様に、y軸の目盛り値および対応するラベルを設定します。
ax = gca; ax.XTick = -2*pi:pi/2:2*pi; ax.XTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0','\pi/2','\pi','3\pi/2','2\pi'}; ax.YTick = -2*pi:pi/2:2*pi; ax.YTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0','\pi/2','\pi','3\pi/2','2\pi'};
異なる
値に異なるライン スタイルを使用して、パラメトリックな表面
、
、
をプロットします。
では、表面のエッジに緑の破線を使用します。
では、EdgeColor
プロパティを'none'
に設定してエッジをオフにします。
funx = @(u,v) u.*sin(v); funy = @(u,v) -u.*cos(v); funz = @(u,v) v; fsurf(funx,funy,funz,[-5 5 -5 -2],'--','EdgeColor','g') holdonfsurf(funx,funy,funz,[-5 5 -2 2],'EdgeColor','none') holdoff
次のパラメトリックな表面をプロットします。
パラメーター化された関数 surface オブジェクトを変数に割り当てます。
x = @(u,v) exp(-abs(u)/10).*sin(5*abs(v)); y = @(u,v) exp(-abs(u)/10).*cos(5*abs(v)); z = @(u,v) u; fs = fsurf(x,y,z)
fs = ParameterizedFunctionSurface with properties: XFunction: @(u,v)exp(-abs(u)/10).*sin(5*abs(v)) YFunction: @(u,v)exp(-abs(u)/10).*cos(5*abs(v)) ZFunction: @(u,v)u EdgeColor: [0 0 0] LineStyle: '-' FaceColor: 'interp' Show all properties
オブジェクトのURange
プロパティを設定して、u
のプロット区間を[-30 30]
に変更します。FaceAlpha
プロパティを 0 (透明) から 1 (不透明) の間の値に設定して、表面に透明度を加えます。
fs.URange = [-30 30];
fs.FaceAlpha = .5;
'ShowContours'
オプションを'on'
に設定して、表面プロットの下に等高線を表示します。
f = @(x,y) 3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)...- 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2)...- 1/3*exp(-(x+1).^2 - y.^2); fsurf(f,[-3 3],'ShowContours','on')
'MeshDensity'
オプションを使用して、表面プロットの解像度を制御します。'MeshDensity'
を大きくするとより滑らかで正確なプロットが得られますが、この値を小さくするとプロットの速度が上がります。
タイル表示チャート レイアウトで 2 つのプロットを作成します。最初のプロットで、パラメトリックな表面
、
、
を表示します。表面には大きな隙間があります。2 番目のプロットでは'MeshDensity'
を40
に増加して、この問題を修正します。fsurf
が隙間を埋め、'MeshDensity'
の増加によって解像度が上がったことが示されます。
tiledlayout(2,1) nexttile fsurf(@(s,t) sin(s), @(s,t) cos(s), @(s,t) t/10.*sin(1./s)) view(-172,25) title('Default MeshDensity = 35') nexttile fsurf(@(s,t) sin(s), @(s,t) cos(s), @(s,t) t/10.*sin(1./s),'MeshDensity',40) view(-172,25) title('Increased MeshDensity = 40')
f
—プロット対象の 3 次元関数プロット対象の 3 次元関数。名前付き関数または無名関数の関数ハンドルとして指定します。
z = f(x,y)
の形式の関数を指定します。関数は 2 つの行列の入力引数を受け入れ、同じサイズの行列の出力引数を 1 つ返さなければなりません。最高のパフォーマンスを得るには、行列演算子ではなく、配列演算子を使用します。たとえば、* (mtimes
) ではなく.*
(times
) を使用します。
例:f = @(x,y) sin(x) + cos(y);
xyinterval
—x
およびy
のプロット区間[-5 5 -5 5]
(既定値) |[min max]
形式のベクトル|[xmin xmax ymin ymax]
形式のベクトルx
およびy
のプロット区間。次のいずれかの形式で指定します。
[min max]
形式のベクトル —x
およびy
の両方に区間[min max]
を使用します。
[xmin xmax ymin ymax]
形式のベクトル —x
に区間[xmin xmax]
、y
に区間[ymin ymax]
を使用します。
funx
—x 座標のパラメトリック関数x座標のパラメトリック関数。名前付き関数または無名関数の関数ハンドルとして指定します。
x = funx(u,v)
の形式の関数を指定します。関数は 2 つの行列の入力引数を受け入れ、同じサイズの行列の出力引数を 1 つ返さなければなりません。最高のパフォーマンスを得るには、行列演算子ではなく、配列演算子を使用します。たとえば、* (mtimes
) ではなく.*
(times
) を使用します。
例:funx = @(u,v) u.*sin(v);
funy
—y 座標のパラメトリック関数y座標のパラメトリック関数。名前付き関数または無名関数の関数ハンドルとして指定します。
y = funy(u,v)
の形式の関数を指定します。関数は 2 つの行列の入力引数を受け入れ、同じサイズの行列の出力引数を 1 つ返さなければなりません。最高のパフォーマンスを得るには、行列演算子ではなく、配列演算子を使用します。たとえば、* (mtimes
) ではなく.*
(times
) を使用します。
例:funy = @(t) @(u,v) -u.*cos(v);
funz
—z 座標のパラメトリック関数z座標のパラメトリック関数。名前付き関数または無名関数の関数ハンドルとして指定します。
z = funz(u,v)
の形式の関数を指定します。関数は 2 つの行列の入力引数を受け入れ、同じサイズの行列の出力引数を 1 つ返さなければなりません。最高のパフォーマンスを得るには、行列演算子ではなく、配列演算子を使用します。たとえば、* (mtimes
) ではなく.*
(times
) を使用します。
例:funz = @(u,v) v;
uvinterval
—u
およびv
のプロット区間[-5 5 -5 5]
(既定値) |[min max]
形式のベクトル|[umin umax vmin vmax]
形式のベクトルu
およびv
のプロット区間。次のいずれかの形式で指定します。
[min max]
形式のベクトル —u
およびv
の両方に区間[min max]
を使用します。
[umin umax vmin vmax]
形式のベクトル —u
に区間[umin umax]
、v
に区間[vmin vmax]
を使用します。
ax
—axes オブジェクトaxes オブジェクト。axes オブジェクトを指定しない場合、fsurf
は現在の座標軸を使用します。
LineSpec
—ライン スタイル、マーカー、色ライン スタイル、マーカーおよび色。記号を含む文字ベクトルまたは string として指定します。記号の順番は任意です。3 つの特性 (ライン スタイル、マーカーおよび色) をすべて指定する必要はありません。たとえば、ライン スタイルを省略してマーカーを指定する場合、プロットはラインなしでマーカーのみを表示します。
例:'--or'
は丸いマーカーをもった赤い破線
ライン スタイル | 説明 |
---|---|
- |
実線 |
-- |
破線 |
: |
点線 |
-. |
一点鎖線 |
マーカー | 説明 |
---|---|
'o' |
円 |
'+' |
プラス記号 |
'*' |
アスタリスク |
'.' |
点 |
'x' |
十字 |
'_' |
水平線 |
'|' |
垂直線 |
's' |
正方形 |
'd' |
菱形 |
“^” |
上向き三角形 |
'v' |
下向き三角形 |
'>' |
右向き三角形 |
'<' |
左向き三角形 |
'p' |
星形五角形 |
'h' |
星形六角形 |
色 | 説明 |
---|---|
|
黄 |
|
マゼンタ |
|
シアン |
|
赤 |
|
緑 |
|
青 |
|
白 |
|
黒 |
オプションのName,Value
の引数ペアをコンマ区切りで指定します。Name
は引数名で、Value
は対応する値です。Name
は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN
のように、複数の名前と値のペアの引数を任意の順序で指定できます。
'Marker','o','MarkerFaceColor','red'
ここでは、プロパティの一部だけを紹介しています。完全な一覧については、FunctionSurface のプロパティまたはParameterizedFunctionSurface のプロパティを参照してください。
MeshDensity
—方向ごとの評価点の数方向ごとの評価点の数。数値として指定します。既定値は35
です。fsurf
オブジェクトでは適応評価を使用するため、評価点の実際の数はそれより多くなります。
例:One hundred.
ShowContours
—プロットの下に等高線図を表示'off'
(既定値) |on/off logical 値プロットの下への等高線図の表示。'on'
または'off'
、もしくは数値または logical1
(true
) または0
(false
) として指定します。'on'
の値は true と等価であり、'off'
はfalse
と等価です。したがって、このプロパティの値を logical 値として使用できます。値はmatlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
EdgeColor
—ラインの色[0 0 0]
(既定値) |'interp'
|RGB 3 成分|16 進数カラー コード|'r'
|'g'
|'b'
| ...ラインの色。'interp'
、RGB 3 成分、16 進数カラー コード、色名、または省略名として指定します。既定の RGB 3 成分の値[0 0 0]
は、黒に相当します。'interp'
値では、ZData
の値に基づいてエッジに着色します。
カスタム色を使用する場合は、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' |
|
'none' |
該当なし | 該当なし | 該当なし | 色なし |
MATLAB®の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。
RGB 3 成分 | 16 進数カラー コード | 外観 |
---|---|---|
[0 0.4470 0.7410] |
'#0072BD' |
|
[0.8500 0.3250 0.0980] |
'#D95319' |
|
[0.9290 0.6940 0.1250] |
'#EDB120' |
|
[0.4940 0.1840 0.5560] |
'#7E2F8E' |
|
[0.4660 0.6740 0.1880] |
'#77AC30' |
|
[0.3010 0.7450 0.9330] |
'#4DBEEE' |
|
[0.6350 0.0780 0.1840] |
'#A2142F' |
|
LineStyle
—ライン スタイル'-'
(既定値) |'--'
|':'
|'-.'
|'none'
ライン スタイル。次の表にリストされたオプションのいずれかとして指定します。
ライン スタイル | 説明 | 結果として得られる線 |
---|---|---|
'-' |
実線 |
|
'--' |
破線 |
|
':' |
点線 |
|
'-.' |
一点鎖線 |
|
'none' |
ラインなし | ラインなし |
LineWidth
—ライン幅0.5
(既定値) |正の値ライン幅。ポイント単位の正の値として指定します。1 ポイントは 1/72 インチです。ラインがマーカーをもつ場合、ライン幅はマーカー エッジにも影響します。
ライン幅をピクセルの幅より細くすることはできません。システムでライン幅をピクセルの幅より細い値に設定すると、ラインは 1 ピクセル幅で表示されます。
Marker
—マーカー記号'none'
(既定値) |'o'
|'+'
|'*'
|'.'
| ...マーカー記号。次の表に挙げる値のいずれかとして指定します。既定では、オブジェクトはマーカーを表示しません。マーカー記号を指定すると、各データ点または各頂点にマーカーが追加されます。
値 | 説明 |
---|---|
'o' |
円 |
'+' |
プラス記号 |
'*' |
アスタリスク |
'.' |
点 |
'x' |
十字 |
'_' |
水平線 |
'|' |
垂直線 |
'square' または's' |
正方形 |
'diamond' または'd' |
菱形 |
“^” |
上向き三角形 |
'v' |
下向き三角形 |
'>' |
右向き三角形 |
'<' |
左向き三角形 |
'pentagram' または'p' |
星形五角形 |
'hexagram' または'h' |
星形六角形 |
'none' |
マーカーなし |
MarkerSize
—マーカー サイズ6
(既定値) |正の値マーカー サイズ。ポイント単位の正の値として指定します。1 ポイントは 1/72 インチです。
fs
— 1 つ以上のFunctionSurface
オブジェクトまたはParameterizedFunctionSurface
オブジェクト1 つ以上のFunctionSurface
オブジェクトまたはParameterizedFunctionSurface
オブジェクト。スカラーまたはベクトルとして返されます。
fsurf(f)
の構文、あるいはこの構文の変形を使用した場合、fsurf
はFunctionSurface
オブジェクトを返します。
fsurf(funx,funy,funz)
の構文、あるいはこの構文の変形を使用した場合、fsurf
はParameterizedFunctionSurface
オブジェクトを返します。
これらのオブジェクトは、特定表面のプロパティのクエリと変更に使用できます。プロパティの一覧については、FunctionSurface のプロパティおよびParameterizedFunctionSurface のプロパティを参照してください。
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
Selectweb siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.