グラフ表示のコントロール
コントロール可能な要素
MATLAB® では、セッション中、多くの Figure ウィンドウを同時に開くことができます。MATLAB がプロット関数の結果の表示に使用する Figure および座標軸をコントロールできます。MATLAB がターゲットとなる Figure および座標軸のプロパティのどの範囲までをクリア、リセットするかもコントロールできます。
MATLAB のプロット関数の動作は変更できます。また、作成するプロット関数に特定の動作を実装することができます。
以下の点を確認してください。
特定の Figure や座標軸がグラフ表示のターゲットにならないようにすることができますか。
より多くのデータを既存のグラフにプロットすると、そのグラフでどのようなことが起こりますか。既存のグラフが新しいグラフに置き換えられますか。あるいは、既存のグラフに新しいグラフィックス オブジェクトが追加されますか。
特定の Figure や座標軸をターゲットにする
既定では、MATLAB のプロット関数は、現在の Figure と現在の座標軸 (それぞれgcf
と gca
から返されるオブジェクト) にグラフを表示します。別の Figure や座標軸に出力するには、以下のようにします。
プロット関数を使用して、ターゲットとなる座標軸を明示的に指定する。
ターゲットとなる座標軸を現在の座標軸にする。
ターゲットとなる座標軸の指定
ax1
と ax2
の 2 つの座標軸をもつ Figure を作成するとします。
tiledlayout(1,2) ax1 = nexttile; ax2 = nexttile;
最初の引数に axes オブジェクトを指定して、plot
を呼び出します。
plot(ax1,1:10)
最初の引数として座標軸をサポートしないプロット関数の場合は、Parent
プロパティを設定します。
t = 0:pi/5:2*pi; patch(sin(t),cos(t),'y','Parent',ax2)
ターゲットを現在の Figure にする
ターゲットを指定するには、特定の Figure を現在の Figure にし、その Figure の座標軸を現在の座標軸にすることができます。既定では、現在の Figure とその現在の座標軸がプロット関数で使用されます。現在の Figure に現在の座標軸がない場合は、MATLAB により現在の座標軸が作成されます。
fig
が特定の Figure のハンドルである場合、次のステートメントは以下のことを行います。
figure(fig)
fig
を現在の Figure にします。fig
を再スタックし、最前面に表示される Figure にします。fig
が可視でない場合は可視にします (Visible
プロパティを'on'
に設定)。Figure の表示を更新し、保留中のすべてのコールバックを処理します。
同じ動作が座標軸に適用されます。ax
が座標軸のハンドルである場合、次のステートメントは以下のことを行います。
axes(ax)
ax
を現在の座標軸にします。ax
を再スタックし、最前面に表示される座標軸にします。ax
が可視でない場合は可視にします。座標軸を含む Figure を更新し、保留中のすべてのコールバックを処理します。
他の状態を変更せずに Figure や座標軸を現在の状態にする
他のオブジェクトの縦横比の状態を変えることなく Figure や座標軸を現在の状態にすることができます。ルートの CurrentFigure
プロパティまたは figure オブジェクトの CurrentAxes
プロパティを、ターゲットとする Figure または座標軸のハンドルに設定します。
fig
が既存の Figure のハンドルである場合、次のステートメント
r = groot; r.CurrentFigure = fig;
fig
を現在の Figure にします。同様に、ax
が axes オブジェクトのハンドルである場合、次のステートメント
fig.CurrentAxes = ax;
は、fig
が座標軸の親 Figure のハンドルである場合には、それを現在の座標軸にします。