Main Content

グラフ表示のコントロール

コントロール可能な要素

MATLAB® では、セッション中、多くの Figure ウィンドウを同時に開くことができます。MATLAB がプロット関数の結果の表示に使用する Figure および座標軸をコントロールできます。MATLAB がターゲットとなる Figure および座標軸のプロパティのどの範囲までをクリア、リセットするかもコントロールできます。

MATLAB のプロット関数の動作は変更できます。また、作成するプロット関数に特定の動作を実装することができます。

以下の点を確認してください。

  • 特定の Figure や座標軸がグラフ表示のターゲットにならないようにすることができますか。

  • より多くのデータを既存のグラフにプロットすると、そのグラフでどのようなことが起こりますか。既存のグラフが新しいグラフに置き換えられますか。あるいは、既存のグラフに新しいグラフィックス オブジェクトが追加されますか。

特定の Figure や座標軸をターゲットにする

既定では、MATLAB のプロット関数は、現在の Figure と現在の座標軸 (それぞれgcfgca から返されるオブジェクト) にグラフを表示します。別の Figure や座標軸に出力するには、以下のようにします。

  • プロット関数を使用して、ターゲットとなる座標軸を明示的に指定する。

  • ターゲットとなる座標軸を現在の座標軸にする。

ターゲットとなる座標軸の指定

ax1ax2 の 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 のハンドルである場合には、それを現在の座標軸にします。