ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

Figure ごとに複数の Axes を表示する

はじめに

関数 subplot は、指定数の Axes を作成する Position の値を計算することによって、1 つの Figure に複数の Axes を作成します。

関数 subplot は、Figure 内に多数のグラフを等間隔にレイアウトする場合に便利です。しかし、Axes をオーバーラップさせると、他の有用な効果を創り出すことができます。以下の 2 節では例を示します。

Axes の外部にテキストを配置する

MATLAB® は、常に Axes 内にテキスト オブジェクトを表示します。グラフを作成して、そのグラフの横に情報を記述したい場合は、テキストを配置するために別の座標軸を作成しなければなりません。Figure と同じサイズの Axes を作成し、それからグラフを描画するには、それより小さい Axes を作成することによって、グラフとは独立して任意の場所にテキストを表示することができます。

たとえば、2 つの Axes を定義します。

h = axes('Position',[0 0 1 1],'Visible','off');
axes('Position',[.25 .1 .7 .8])

Axes の単位は Figure に対して正規化されるので、Position[0 0 1 1] に指定するとウィンドウを全体を含む Axes が作成されます。

ここで、現在の Axes にいくつかのデータをプロットします。最後に作成した Axes が現在の Axes となり、MATLAB はそこにグラフィックス出力を行います。

t = 0:900;
plot(t,0.25*exp(-0.005*t))

テキストを定義し、ウィンドウ全体の Axes 内に表示します。

str(1) = {'Plot of the function:'};
str(2) = {' y = A{\ite}^{-\alpha{\itt}}'};
str(3) = {'With the values:'};
str(3) = {' A = 0.25'};
str(4) = {' \alpha = .005'};
str(5) = {' t = 0:900'};
set(gcf,'CurrentAxes',h)
text(.025,.6,str,'FontSize',12)

異なる拡大縮小率の複数 Axes を表示する

複数の座標軸を作成して、拡大縮小率が異なるグラフィックス オブジェクトを、これらのオブジェクトを定義するデータを変更することなく表示できます (単一の座標軸にこれらのオブジェクトを表示するためには、データの変更が必要となります) 。

h(1) = axes('Position',[0 0 1 1]);
sphere
h(2) = axes('Position',[0 0 .4 .6]);
sphere
h(3) = axes('Position',[0 .5 .5 .5]);
sphere
h(4) = axes('Position',[.5 0 .4 .4]);
sphere
h(5) = axes('Position',[.5 .5 .5 .3]);
sphere
set(h,'Visible','off')

それぞれの球面は同じデータで定義されます。しかし、親の Axes オブジェクトが異なるサイズと位置にある領域を占有するので、各球面は異なるサイズと形状で表示されます。

この情報は役に立ちましたか?