このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
fcontour
等高線をプロット
構文
説明
fcontour(
は、f
,[xmin xmax ymin ymax]
)f
を区間 xmin
< x
< xmax
および ymin
< y
< ymax
でプロットします。関数 fcontour
は symvar
を使用して、変数を並べ替え、区間を割り当てます。
fcontour(___,
は、1 つ以上の Name,Value
)Name,Value
引数ペアを使用して、ラインのプロパティを指定します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。Name,Value
ペアの設定はプロットされたすべてのラインに適用されます。個々のプロットにオプションを設定するには、fcontour
によって返されるオブジェクトを使用します。
fcontour(
は、現在の axes オブジェクト ax
,___)gca
ではなく axes オブジェクト ax
にプロットします。
は、関数等高線オブジェクトを返します。このオブジェクトを使用して、特定の等高線図のプロパティのクエリと変更を行います。詳細は、FunctionContour のプロパティ を参照してください。fc
= fcontour(___)
例
シンボリック式の等高線をプロット
の等高線を既定区間 および にプロットします。カラー バーを表示します。等高線の色とカラー バーの値を一致させて、等高線のレベルを判定します。
syms x y fcontour(sin(x) + cos(y)) colorbar
シンボリック関数の等高線のプロット
の等高線を既定区間 および にプロットします。
syms f(x,y)
f(x,y) = sin(x) + cos(y);
fcontour(f)
プロット区間の指定
プロット区間を fcontour
の 2 番目の引数に与えることで、 を区間 と にプロットします。
syms x y f = sin(x) + cos(y); fcontour(f,[-pi/2 pi/2 0 5])
ライン スタイル、色、幅の変更
入力 LineSpec
を指定して、 の等高線を青い破線としてプロットします。LineWidth
を 2
に指定します。マーカーは fcontour
ではサポートされていません。
syms x y fcontour(x^2 - y^2,'--b','LineWidth',2)
同じ Figure への複数の等高線図のプロット
入力をベクトルとして渡すか、または hold on
を使用すると、複数の等高線図を連続して同じ Figure にプロットできます。LineStyle
および名前と値の引数を指定すると、すべての等高線図に適用されます。各プロットに別々の LineStyle
および名前と値の引数ペアを指定することはできません。
subplot
を使用して、Figure を 2 つのサブプロットに分割します。第 1 サブプロットで、ベクトル入力を使用して と をプロットします。第 2 サブプロットで、hold on
を使用して同じ式をプロットします。
syms x y subplot(2,1,1) fcontour([sin(x)+cos(y) x-y]) title('Multiple Contour Plots Using Vector Inputs') subplot(2,1,2) fcontour(sin(x)+cos(y)) hold on fcontour(x-y) title('Multiple Contour Plots Using Hold Command') hold off
等高線図の作成後の変更
の等高線をプロットします。fcontour
がプロット オブジェクトを返すように出力を指定します。
syms x y f = exp(-(x/3)^2-(y/3)^2) + exp(-(x+2)^2-(y+2)^2); fc = fcontour(f)
fc = FunctionContour with properties: Function: exp(- x^2/9 - y^2/9) + exp(- (x + 2)^2 - (y + 2)^2) LineColor: 'flat' LineStyle: '-' LineWidth: 0.5000 Fill: off LevelList: [0.2000 0.4000 0.6000 0.8000 1 1.2000 1.4000] Show all properties
ドット表記を使用してオブジェクト fc
のプロパティを設定し、LineWidth
を 1
に、LineStyle
を破線に変更します。LevelList
を [1 0.9 0.8 0.2 0.1]
に設定して、0
と 1
に近い等高線を可視化します。
fc.LineStyle = '--';
fc.LineWidth = 1;
fc.LevelList = [1 0.9 0.8 0.2 0.1];
colorbar
等高線間の領域の塗りつぶし
fcontour
の Fill
入力を 'on'
に設定して、等高線間の領域を塗りつぶします。代わりに内挿シェーディングが必要な場合、オプション 'EdgeColor'
を 'none'
に設定して関数 fsurf
を使用した後に、コマンド view(0,90)
を実行します。
以下の等高線を塗りつぶして、夕日のように見えるプロットを作成します。
syms x y f = erf((y+2)^3) - exp(-0.65*((x-2)^2+(y-2)^2)); fcontour(f,'Fill','on')
等高線のレベルの指定
'LevelList'
オプションを使用して、fcontour
で等高線を描画する値を設定します。
syms x y f = sin(x) + cos(y); fcontour(f,'LevelList',[-1 0 1])
等高線の解像度の制御
'MeshDensity'
オプションを使用して、等高線の解像度を制御します。'MeshDensity'
を増やすとプロットがより滑らかで正確になり、減らすとプロット速度が上がります。
subplot
を使用して、Figure を 2 つに分割します。最初のサブプロットでは、 の等高線をプロットします。これでは四角形の角が合いません。これを修正するには、第 2 サブプロットで 'MeshDensity'
を 200
に増やします。これで角が合います。これは、'MeshDensity'
を増やすとプロットの解像度が向上することを示します。
syms x y subplot(2,1,1) fcontour(sin(x).*sin(y)) title('Default MeshDensity = 71') subplot(2,1,2) fcontour(sin(x).*sin(y),'MeshDensity',200) title('Increased MeshDensity = 200')
タイトルと座標軸ラベルの追加、および目盛りの書式設定
をプロットします。タイトルと座標軸ラベルを追加します。x 軸の範囲を pi/2
の間隔にして、x 軸の目盛りを作成します。XTick
プロパティを使用して、これらの目盛りを表示します。arrayfun
を使用して texlabel
を S
に適用して、x 軸ラベルを作成します。XTickLabel
プロパティを使用して、これらのラベルを表示します。以上の手順を、y 軸について繰り返します。
プロットに LaTeX を使用する方法については、latex
を参照してください。
syms x y fcontour(x*sin(y)-y*cos(x), [-2*pi 2*pi]) grid on title('xsin(y)-ycos(x) for -2\pi < x < 2\pi and -2\pi < y < 2\pi') xlabel('x') ylabel('y') ax = gca; S = sym(ax.XLim(1):pi/2:ax.XLim(2)); ax.XTick = double(S); ax.XTickLabel = arrayfun(@texlabel, S, 'UniformOutput', false); S = sym(ax.YLim(1):pi/2:ax.YLim(2)); ax.YTick = double(S); ax.YTickLabel = arrayfun(@texlabel, S, 'UniformOutput', false);
アニメーションの作成
アニメーションを作成するには、表示されている式を関数ハンドルの Function
プロパティを使用して変更した後、drawnow
を使用してプロットを更新します。GIF にエクスポートする方法については、imwrite
を参照してください。
変数 i を –π/8 から π/8 まで変えることによって、パラメトリックな曲線 isin(x) + icos(y) をアニメーション化します。
syms x y fc = fcontour(-pi/8.*sin(x)-pi/8.*cos(y)); for i=-pi/8:0.01:pi/8 fc.Function = i.*sin(x)+i.*cos(y); drawnow pause(0.05) end
入力引数
出力引数
アルゴリズム
fcontour
は f
のシンボリック変数を x
軸に、次に y
軸に割り当て、symvar
は割り当てられる変数の順番を決定します。そのため、変数名と軸名が対応しない場合があります。fcontour
が x または y を対応する軸に割り当てるように強制するには、プロットするシンボリック関数を作成し、そのシンボリック関数を fcontour
に渡します。
たとえば、次のコードは表面 f(x,y) = sin(y) の等高線を 2 つの方法でプロットします。1 つ目の方法では、y 軸に対して波形を振動させます。2 つ目の方法では、y を x 軸に割り当てます。これがシンボリック関数内で最初の (および唯一の) 変数であるためです。
syms x y; f(x,y) = sin(y); figure; subplot(2,1,1) fcontour(f); subplot(2,1,2) fcontour(f(x,y)); % Or fcontour(sin(y));

バージョン履歴
R2016a で導入