Main Content

TiledChartLayout のプロパティ

タイル表示チャート レイアウトの外観と動作

R2019b 以降

タイル表示チャート レイアウトは、Figure 内でプロットのタイルを表示するためのコンテナーです。各タイルは、プロットを表示するための axes オブジェクトを 1 つ含むことができます。プロパティの値を変更することによって、レイアウトの特定の要素を変更できます。

t = tiledlayout(2,2);
t.TileSpacing = 'compact';

レイアウト

すべて展開する

グリッド サイズ。[m n] の形式のベクトルとして指定します。ここで m は行数、n は列数です。このプロパティは、レイアウトのすべてのタイルが空である場合のみ設定できます。このプロパティを設定したとき、MATLAB®TileArrangement プロパティを 'fixed' に設定します。

TileArrangement プロパティが 'flow' に設定されているレイアウトでは、このプロパティの値が自動的に変わることがあります。たとえば、親コンテナーのサイズが変更されるか、レイアウト内の座標軸の数が変化すると、その変化に合わせてグリッド サイズが更新されます。

この プロパティ は読み取り専用です。

タイル配置。次のいずれかの値が返されます。

  • "fixed" — レイアウトは、GridSize プロパティによって決定される固定数の行と列をもつグリッドです。このタイル配置をもつ mn 列のレイアウトは、最大 m*n 個のプロットを表示できます。

  • "flow" — レイアウトは、可変数の行と列をもつグリッドです。nexttile を呼び出すたびに、すべてのタイルの縦横比を約 4:3 に維持しながら、新しい座標軸が収まるようにレイアウトが必要に応じてリフローします。

  • "vertical" — レイアウトは座標軸の垂直スタックを保持します。nexttile を呼び出すごとに、新しい axes オブジェクトがスタックの下に追加されます。 (R2023a 以降)

  • "horizontal" — レイアウトは座標軸の水平スタックを保持します。nexttile を呼び出すごとに、新しい axes オブジェクトがスタックの右側に追加されます。 (R2023a 以降)

GridSize プロパティを手動で設定した場合、MATLAB はこのプロパティの値を "fixed" に設定します。

タイル配置を設定するには、関数 tiledlayout の呼び出し時に arrangement 引数を指定します。

タイルの間隔。"loose""compact""tight"、または "none" として指定します。このプロパティを使用して、タイルの間隔を制御します。

次の表に、それぞれの値が 22 列のレイアウトの外観にどのような影響を与えるかを示します。

外観

"loose"

Tiled chart layout with "loose" tile spacing.

"compact"

Tiled chart layout with "compact" tile spacing.

"tight"

Tiled chart layout with "tight" tile spacing.

"none"

Tiled chart layout with "none" tile spacing.

レイアウトの周囲のパディング。"loose""compact" または "tight" として指定します。このプロパティの値にかかわらず、このレイアウトには軸ラベルなどのすべての装飾にそのためのスペースがあります。

次の表に、それぞれの値が 22 列のレイアウトの外観にどのような影響を与えるかを示します。

外観

"loose"

Tiled chart layout with "loose" padding.

"compact"

Tiled chart layout with "compact" padding.

"tight"

Tiled chart layout with "tight" padding.

タイルのインデックス方式。次の表の値として指定します。関数 nexttile は、このインデックス方式に従ってタイルを設定します。設定されたレイアウトのタイルのインデックス方式を変更すると、新しい方式に合わせてタイルの位置が変わります。インデックス方式は、nexttile を呼び出して特定のタイルに axes オブジェクトを取得する際に MATLAB で返される axes オブジェクトにも影響します。

説明
'rowmajor'

タイル番号は、行を左から右に横方向に増加します。たとえば、次の図は、2 行 2 列のレイアウトに対する行優先のタイル インデックスを示しています。

Four numbered tiles with the 'rowmajor' indexing scheme

'columnmajor'

タイル番号は下方向に増加します。たとえば、次の図は、2 行 2 列のレイアウトに対する列優先のタイル インデックスを示しています。

Four numbered tiles with the 'columnmajor' indexing scheme

ラベル

すべて展開する

共有タイトルの Text オブジェクト。共有タイトルを追加するには、Text オブジェクトの String プロパティを設定します。フォント スタイルや色などのタイトルの外観を変更するには、他のプロパティを設定します。たとえば、2 行 2 列のレイアウトの共有タイトルを太字で作成します。

t = tiledlayout(2,2);
t.Title.String = 'My Title';
t.Title.FontWeight = 'bold';

あるいは、TiledChartLayout オブジェクトを関数 title に渡します。

title(t,'My Title','FontWeight','normal')

指定可能なプロパティの完全な一覧については、Text のプロパティ を参照してください。

メモ

Text オブジェクトはレイアウトの Children プロパティに含まれないため、関数 findobj によって返すことができません。

共有サブタイトルの text オブジェクト。サブタイトルを追加するには、text オブジェクトの String プロパティを設定します。フォントの角度など、その外観を変更するには、他のプロパティを設定します。完全な一覧については、Text のプロパティ を参照してください。

t = tiledlayout(2,2);
t.Subtitle.String = 'An Insightful Subtitle';
t.Subtitle.FontAngle = 'italic';

あるいは、関数 subtitle を使用してサブタイトルを追加し、外観を制御します。

subtitle('An Insightful Subtitle','FontAngle','italic')

または、関数 title を使用し、2 つの文字ベクトル入力引数と 2 つの出力引数を指定します。次に、関数から返される 2 番目の text オブジェクトのプロパティを設定します。

[tt,s] = title(t,'Clever Title','An Insightful Subtitle');
s.FontAngle = 'italic';

メモ

この text オブジェクトは座標軸の Children プロパティには含まれていません。そのため、findobj で返すことはできず、text オブジェクトに定義されている既定値は使用されません。

共有 x 軸ラベルの Text オブジェクト。共有 x 軸ラベルを追加するには、text オブジェクトの String プロパティを設定します。フォント サイズなどのラベルの外観を変更するには、他のプロパティを設定します。たとえば、2 行 2 列のレイアウトの共有 x 軸ラベルを 14 ポイントのフォントで作成します。

t = tiledlayout(2,2);
t.XLabel.String = 'My x-Axis Label';
t.XLabel.FontSize = 14;

あるいは、TiledChartLayout オブジェクトを関数 xlabel に渡します。

xlabel(t,'My x-Axis Label','FontSize',14)

指定可能なプロパティの完全な一覧については、Text のプロパティ を参照してください。

メモ

Text オブジェクトは座標軸の Children プロパティに含まれていないため、findobj によって返すことができません。

共有 y 軸ラベルの Text オブジェクト。共有 y 軸ラベルを追加するには、text オブジェクトの String プロパティを設定します。フォント サイズなどのラベルの外観を変更するには、他のプロパティを設定します。たとえば、2 行 2 列のレイアウトの共有 y 軸ラベルを 14 ポイントのフォントで作成します。

t = tiledlayout(2,2);
t.YLabel.String = 'My y-Axis Label';
t.YLabel.FontSize = 14;

あるいは、TiledChartLayout オブジェクトを関数 ylabel に渡します。

ylabel(t,'My y-Axis Label','FontSize',14)

指定可能なプロパティの完全な一覧については、Text のプロパティ を参照してください。

メモ

Text オブジェクトは座標軸の Children プロパティに含まれていないため、findobj によって返すことができません。

位置

すべて展開する

タイトルや軸ラベルなどの装飾用の余白を含む、外側のサイズと位置。[left bottom width height] の形式の 4 要素ベクトルとして指定します。ベクトルの値は、Units プロパティで指定した単位で表されます。既定値 [0 0 1 1] は、コンテナーの内側全体になります。

  • left 要素と bottom 要素は、コンテナー (通常は Figure、パネルまたはタブ) の左下隅から位置境界の左下隅までの距離を定義します。

  • width 要素と height 要素は、外側の位置境界の寸法です。

以下のレイアウトで、青色の四角形は OuterPosition プロパティを、赤色の四角形は InnerPosition プロパティおよび Position プロパティ (同じ値) を示しています。

2-by-2 layout with a blue rectangle that surrounds the four axes and labels. A red rectangle surrounds the four plot boxes only.

メモ

親コンテナーが TiledChartLayout オブジェクトの場合、このプロパティを設定しても効果はありません。

タイトルや軸ラベルなどの装飾用の余白を除いた、内側のサイズと位置。[left bottom width height] の形式の 4 要素ベクトルとして指定します。このプロパティは、Position プロパティと等価です。

メモ

親コンテナーが TiledChartLayout オブジェクトの場合、このプロパティを設定しても効果はありません。

タイトルや軸ラベルなどの装飾用の余白を除いた、内側のサイズと位置。[left bottom width height] の形式の 4 要素ベクトルとして指定します。ベクトルの値は、Units プロパティで指定した単位で表されます。

  • left 要素と bottom 要素は、コンテナー (通常は Figure、パネルまたはタブ) の左下隅から位置境界の左下隅までの距離を定義します。

  • width 要素と height 要素は、位置境界の寸法です。3 次元表示の座標軸では、Position プロパティは座標軸を囲む最小の四角形です。

以下のレイアウトで、青色の四角形は OuterPosition プロパティを、赤色の四角形は InnerPosition プロパティおよび Position プロパティ (同じ値) を示しています。

2-by-2 layout with a blue rectangle that surrounds the four axes and labels. A red rectangle surrounds the four plot boxes only.

メモ

親コンテナーが TiledChartLayout オブジェクトの場合、このプロパティを設定しても効果はありません。

装飾の追加、削除または変更を行うときに一定に保つ位置プロパティ。次の値のいずれかとして指定します。

  • "outerposition" — タイトルや軸ラベルなどの装飾の追加、削除、または変更を行うときに、OuterPosition プロパティが一定に保たれます。位置の調整が必要な場合、MATLAB は InnerPosition プロパティを調整します。

  • "innerposition" — タイトルや軸ラベルなどの装飾の追加、削除、または変更を行うときに、InnerPosition プロパティが一定に保たれます。位置の調整が必要な場合、MATLAB は OuterPosition プロパティを調整します。

メモ

親コンテナーが TiledChartLayout オブジェクトの場合、このプロパティを設定しても効果はありません。

位置の単位。次の表のいずれかの値を指定します。

Units説明
'normalized' (既定)親コンテナー (通常は Figure) を基準に正規化されます。Figure の左下隅が (0,0) にマップされ、右上隅が (1,1) にマップされます。
'inches'インチ。
'centimeters'センチメートル。
'characters'

既定のシステム フォントの文字サイズを基準にします。

  • 文字の幅 = 文字 x の幅。

  • 文字の高さ = 2 行のテキストのベースライン間の距離。

'points'ポイント。1 ポイントは 1/72 インチです。
'pixels'

ピクセル。

  • Windows® システムの 1 ピクセルは 1/96 インチです。

  • Macintosh システムの 1 ピクセルは 1/72 インチです。

  • Linux® システムでは、ピクセルのサイズは使用しているシステムの解像度によって決まります。

すべての単位は、親コンテナーの左下隅から測定されます。

このプロパティは、Position プロパティなどの他のプロパティに影響を与えます。単位を変更した場合、既定値を前提としている他の関数に影響を及ぼさないように、計算終了後に単位を元の既定値に戻してください。

オブジェクトの作成時に Position プロパティと Units プロパティを Name,Value のペアとして指定する場合は、指定する順序が重要です。たとえば、特定の単位で位置を設定するには、Position プロパティの前に Units プロパティを設定しなければなりません。

レイアウト オプション。TiledChartLayoutOptions オブジェクトとして指定します。このプロパティを使用して、親レイアウト内に入れ子にされたレイアウトを配置します。たとえば、別のタイル表示チャート レイアウト内にレイアウトを配置するには、TiledChartLayoutOptions オブジェクトの Tile プロパティと TileSpan プロパティを設定します。

たとえば、次のコードは layout1 の 3 番目のタイルに layout2 を配置します。

layout1 = tiledlayout(2,2);
layout2 = tiledlayout(layout1,1,3);
layout2.Layout.Tile = 3;

複数のタイルにわたって入れ子にされたレイアウトを広げるには、TileSpan プロパティを 2 要素ベクトルとして指定します。たとえば、このコードにより、layout2 はタイルの 1 つの行と 2 つの列にわたります。

layout2.Layout.TileSpan = [1 2];
両方のレイアウトのすべてのタイルを埋めた場合、複合レイアウトは以下のようになります。

2-by-2 layout with a nested 1-by-3 layout in the second row.

レイアウトが別のレイアウトの子ではない場合 (たとえば、Figure またはパネルの子である場合)、このプロパティは空で、効果はありません。

対話機能

すべて展開する

共有データ探索ツール バー。関数 axtoolbar によって返される AxesToolbar オブジェクトとして指定します。レイアウトにカーソルを合わせると、レイアウトの右上隅にツール バーが表示されます。

既定では、共有ツール バーがなく、個々の axes オブジェクトに固有のツール バーがあります。共有ツール バーを作成すると、個々の axes オブジェクト上のツール バーが非表示になります。すべてのツール バーをレイアウトに表示しない場合は、このプロパティを空のままにして、各座標軸について AxesToolbar オブジェクトの Visible プロパティを 'off' に設定します。

t = tiledlayout(2,1);
ax = nexttile;
ax.Toolbar.Visible = 'off';

可視性の状態。"on" または "off"、もしくは数値または logical 1 (true) または 0 (false) として指定します。"on" の値は true と等価であり、"off"false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

  • "on" — オブジェクトを表示します。

  • "off" — オブジェクトを削除せずに非表示にします。非表示のオブジェクトのプロパティには引き続きアクセスできます。

コールバック

すべて展開する

R2022b 以降

グリッド サイズが変更されたときのコールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む string スカラーまたは文字ベクトル (アプリでは非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

TileArrangement プロパティが "fixed" に設定されているレイアウトでは、レイアウトが空である場合以外は、グリッド サイズを変更できないことに注意してください。このコールバックは、GridSize プロパティが変更された後に実行されます。通常、TileArrangement プロパティを "flow" に設定した後に、タイルを追加または削除するか、Figure のサイズを変更すると、グリッド サイズが変更されます。

GridSizeChangedFcn コールバック関数は、グリッド サイズに関する特定の情報にアクセスできます。MATLAB は、この情報を GridSizeChanged オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer でのアプリの開発においては、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.NewGridSize は新しいグリッド サイズを返します。GridSizeChanged オブジェクトは、string または文字ベクトルとして指定されているコールバック関数では使用できません。

次の表に、GridSizeChanged オブジェクトのプロパティを示します。

プロパティ

説明

NewGridSize

新しいグリッド サイズを含む 2 要素ベクトル

OldGridSize

前のグリッド サイズを含む 2 要素ベクトル

Source

コールバックを実行する TiledChartLayout オブジェクト

EventName

'GridSizeChanged'

GridSizeChangedFcn コールバックの例については、Colorbar That Adjusts as Tiles Reflowを参照してください。アプリでのコールバックの記述の詳細については、App Designer のコールバックを参照してください。

オブジェクト作成関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、グラフィックス オブジェクトのコールバックの作成を参照してください。

このプロパティは、MATLAB がオブジェクトを作成するときに実行されるコールバック関数を指定します。MATLAB は CreateFcn コールバックを実行する前に、すべてのプロパティ値を初期化します。CreateFcn プロパティを指定しない場合、MATLAB は既定の作成関数を実行します。

既存のコンポーネントに CreateFcn プロパティを設定しても効果はありません。

このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、作成中のオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo を使用してオブジェクトにアクセスします。

オブジェクト削除関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、グラフィックス オブジェクトのコールバックの作成を参照してください。

このプロパティは、MATLAB がオブジェクトを削除するときに実行されるコールバック関数を指定します。MATLAB は、オブジェクトのプロパティを破棄する前に DeleteFcn コールバックを実行します。DeleteFcn プロパティを指定しない場合、MATLAB は既定の削除関数を実行します。

このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、削除されるオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo を使用してオブジェクトにアクセスします。

コールバック実行制御

すべて展開する

コールバックの割り込み。'on' または 'off'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

このプロパティは実行中のコールバックが割り込み可能かどうかを決定します。次の 2 つのコールバックの状態について考慮する必要があります。

  • "実行中" コールバックは、現在実行しているコールバックです。

  • "割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。

MATLAB は、コールバック キューを処理するコマンドを実行するたびにコールバックの割り込み動作を判別します。これらのコマンドには、drawnowfigureuifiguregetframewaitforpause があります。

実行中コールバックにこれらのコマンドが含まれていない場合、割り込みは発生しません。MATLAB は、実行中コールバックの実行を先に終了させ、その後に割り込みコールバックを実行します。

実行中コールバックにこれらのいずれかのコマンドが含まれている場合、実行中コールバックを所有するオブジェクトの Interruptible プロパティに応じて割り込みが発生するかどうかが決まります。

  • Interruptible の値が 'off' の場合、割り込みは発生しません。代わりに、割り込みコールバックを所有するオブジェクトの BusyAction プロパティに応じて、割り込みコールバックが破棄されるかコールバック キューに追加されるかが決まります。

  • Interruptible の値が 'on' の場合、割り込みが発生します。MATLAB は、コールバック キューの次回処理時に、実行中コールバックの実行を停止し、割り込みコールバックを実行します。割り込みコールバックが完了した後、MATLAB は実行中だったコールバックの実行を再開します。

メモ

コールバックの割り込みと実行は、以下の状況では動作が異なります。

  • 割り込みコールバックが DeleteFcnCloseRequestFcn または SizeChangedFcn コールバックの場合、Interruptible プロパティの値にかかわらず割り込みが発生します。

  • 実行中のコールバックが関数 waitfor を現在実行している場合、Interruptible プロパティの値にかかわらず割り込みが発生します。

  • 割り込みコールバックが Timer オブジェクトで所有されている場合、Interruptible プロパティの値にかかわらずスケジュールに従ってコールバックが実行されます。

メモ

MATLAB は、割り込みが発生したときにプロパティの状態や表示を保存しません。たとえば、gca コマンドや gcf コマンドから返されたオブジェクトは、別のコールバックを実行するときに変更されている可能性があります。

コールバック キューイング。'queue' または 'cancel' として指定します。BusyAction プロパティは MATLAB による割り込みコールバックの実行の処理方法を決定します。次の 2 つのコールバックの状態について考慮する必要があります。

  • "実行中" コールバックは、現在実行しているコールバックです。

  • "割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。

BusyAction プロパティによってコールバック キューイングの動作が決まるのは、次の両方の条件を満たす場合のみです。

  • 実行中コールバックに drawnowfigureuifiguregetframewaitforpause などのコールバック キューを処理するコマンドが含まれている。

  • 実行中コールバックを所有するオブジェクトの Interruptible プロパティの値が 'off' である。

これらの条件に当てはまる場合、割り込みコールバックを所有するオブジェクトの BusyAction プロパティに応じて MATLAB による割り込みコールバックの処理方法が決まります。BusyAction プロパティは次の値を取ることができます。

  • 'queue' — 割り込みコールバックをキューに入れ、実行中のコールバックが終了した後に処理されるようにします。

  • 'cancel' — 割り込みコールバックを実行しません。

この プロパティ は読み取り専用です。

削除状態。matlab.lang.OnOffSwitchState 型の on/off logical 値として返されます。

MATLAB は、DeleteFcn コールバックが実行を開始すると、BeingDeleted プロパティを 'on' に設定します。コンポーネント オブジェクトが存在しなくなるまで BeingDeleted プロパティは 'on' に設定されたままです。

クエリや変更の前にオブジェクトが削除されようとしていないか確認するために BeingDeleted プロパティの値をチェックします。

親/子

すべて展開する

親コンテナー。FigurePanelTab、または TiledChartLayout オブジェクトとして指定します。

子。グラフィックス オブジェクトの配列として返されます。このプロパティは、子のリストの参照や子の並べ替えに使用します。子を並べ替えるには、このプロパティ自体で値の順序を並べ替えます。

Children プロパティを使用して子の追加や削除を行うことはできません。このリストに子を追加するには、子グラフィックス オブジェクトの Parent プロパティを TiledChartLayout オブジェクトに設定します。

親の Children プロパティ内でのオブジェクト ハンドルの可視性。次の値のいずれかとして指定します。

  • "on" — オブジェクト ハンドルは常に表示されます。

  • "off" — オブジェクト ハンドルは常に非表示です。このオプションは、他の関数による意図しない変更を防止するために役立ちます。HandleVisibility"off" に設定すると、その関数の実行中にハンドルが一時的に非表示になります。

  • "callback" — オブジェクト ハンドルはコールバック内から、あるいはコールバックにより呼び出される関数から参照できます。しかし、コマンド ラインから呼び出される関数からは参照できません。このオプションを使用すると、コマンド ラインからのオブジェクトへのアクセスがブロックされますが、コールバック関数からのアクセスは許可されます。

オブジェクトが親の Children プロパティ内にリストされない場合、オブジェクト階層の検索またはハンドル プロパティのクエリによってオブジェクト ハンドルを取得する関数は、そのオブジェクト ハンドルを返しません。こうした関数の例としては、関数 getfindobjgcagcfgconewplotclaclf、および close などが挙げられます。

非表示のオブジェクト ハンドルは有効なままです。ルートの ShowHiddenHandles プロパティを "on" に設定すると、HandleVisibility プロパティの設定にかかわらず、すべてのオブジェクト ハンドルがリストされます。

識別子

すべて展開する

この プロパティ は読み取り専用です。

グラフィックス オブジェクトのタイプ。'tiledlayout' として返されます。

オブジェクト識別子。文字ベクトルまたは string スカラーとして指定します。オブジェクトの識別子として機能する一意の Tag 値を指定できます。コードの他の部分からオブジェクトにアクセスする必要がある場合、関数 findobj を使用して Tag 値に基づいてオブジェクトを検索できます。

ユーザー データ。任意の MATLAB 配列として指定します。たとえば、スカラー、ベクトル、行列、cell 配列、文字配列、table、または構造体を指定できます。このプロパティを使用して、任意のデータをオブジェクトに保存します。

App Designer を使用している場合は、UserData プロパティを使用する代わりに、アプリでパブリック プロパティまたはプライベート プロパティを作成してデータを共有します。詳細については、App Designer アプリ内でのデータの共有を参照してください。

バージョン履歴

R2019b で導入

すべて展開する