Main Content

グラフィックス オブジェクトの階層

MATLAB グラフィックス オブジェクト

グラフィックス オブジェクトは、MATLAB® がデータをグラフィカルに表示するために使用するビジュアル コンポーネントです。たとえば、グラフは Figure ウィンドウに表示されるライン、テキストおよび座標軸のすべてを含むことができます。

各オブジェクトには、"ハンドル" と呼ばれる固有の識別子があります。このハンドルを使用し、オブジェクトの "プロパティ" を設定して、既存のグラフィックス オブジェクトの特性を操作できます。また、グラフィックス オブジェクトの作成時にプロパティに対する値を指定できます。通常、グラフィックス オブジェクトを作成するには、plotbarscatter などのプロット関数を使用します。

特定のオブジェクトから構成されるグラフ

関数 plot の呼び出しなどによってグラフを作成する場合、MATLAB ではグラフを作成するためのいくつかの手順が自動的に実行されます。この手順には、オブジェクトを作成することと、オブジェクトのプロパティをグラフに適した値に設定することが含まれます。

グラフィックス オブジェクトの構成

次の図に示すように、グラフィックス オブジェクトは階層構造にまとめられます。

グラフィックス オブジェクトが階層構造を成しているのは、オブジェクトが他のオブジェクトに含まれているためです。各オブジェクトはグラフィックスの表示で特定の役割を果たします。

たとえば、関数 plot を使用して線グラフを作成する場合を考えます。axes オブジェクトはデータを表すラインに対して参照のフレームを定義します。Figure はグラフを表示するウィンドウです。この Figure には座標軸が含まれ、さらに座標軸にはライン、テキスト、凡例などグラフを表すために使用されるオブジェクトが含まれます。

メモ

"axes" は X、Y、Z 軸のスケール、目盛、軸ラベルなどを表す単一のオブジェクトです。

簡単なグラフを次に示します。

このグラフのオブジェクトは階層構造になっています。

親オブジェクトと子オブジェクトの関係

オブジェクト間の関係は、Parent および Children プロパティに保持されます。たとえば、axes の親は figure です。座標軸の Parent プロパティには、座標軸が含まれている Figure のハンドルが含まれています。

同様に、Figure の Children プロパティには、Figure に含まれるすべての座標軸が含まれています。また、Figure の Children プロパティには、凡例やユーザー インターフェイス オブジェクトなど、Figure に含まれるその他すべてのオブジェクトのハンドルも含まれています。

親オブジェクトと子オブジェクトの関係を使用して、オブジェクトのハンドルを検索できます。たとえば、プロットを作成すると、現在の座標軸の Children プロパティにはすべてのラインのハンドルが格納されます。

plot(rand(5))
ax = gca;
ax.Children
ans = 

  5x1 Line array:

  Line
  Line
  Line
  Line
  Line

オブジェクトの親オブジェクトを指定することもできます。たとえば、グループ オブジェクトを作成し、座標軸のラインをそのグループの子オブジェクトにします。

hg = hggroup;
plot(rand(5),'Parent',hg)