Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

TiledChartLayout 属性

分块图布局的外观和行为

分块图布局是用于在图窗中以分块方式显示绘图的容器。每个图块可以包含一个用于显示绘图的坐标区对象。通过更改属性值,您可以修改布局的特定方面。

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

布局

全部展开

网格大小,指定为 [m n] 形式的向量,其中 m 是行数,n 是列数。仅当布局中的所有图块都为空时,才能设置此属性。当您设置此属性时,MATLAB® 会将 TileArrangement 属性设置为 'fixed'

对于 TileArrangement 属性设置为 'flow' 的布局,此属性的值可能会自动更改。例如,如果父容器的大小进行了调整或布局中的坐标区数发生了变化,则网格大小也会更新以适应这些变化。

此属性为只读

图块排列,返回为下列值之一:

  • 'fixed' - 布局有固定的行数和列数,它们由 GridSize 属性决定。采用此图块排列的 m×n 布局最多可显示 m*n 个绘图。

  • 'flow' - 布局具有不定数量的行和列,可以显示任意数量的绘图。每次您调用 nexttile 时,布局都会根据需要进行调整以适应新坐标区,同时保持所有图块的纵横比约为 4:3。

如果您手动设置 GridSize 属性,则 MATLAB 会将此属性的值设置为 'fixed'

图块间距,指定为 'loose''compact''tight''none'。使用此属性控制图块之间的间距。

下表显示每个值如何影响 2×2 布局的外观。

外观

'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'。不管此属性使用哪个值,布局都会为所有装饰元素(如轴标签)提供空间。

下表显示每个值如何影响 2×2 布局的外观。

外观

'loose'

Tiled chart layout with 'loose' padding.

'compact'

Tiled chart layout with 'compact' padding.

'tight'

Tiled chart layout with 'tight' padding.

图块索引方案,指定为下表中的一个值。nexttile 函数根据此索引方案填充图块。如果更改已填充布局的图块索引方案,则图块位置会发生变化以匹配新方案。当您调用 nexttile 以获取特定图块中的坐标区对象时,索引方案还会对 MATLAB 返回的坐标区对象产生影响。

说明
'rowmajor'

图块编号按照从左到右的顺序逐行递增。例如,下图显示 2×2 布局的行优先图块索引。

'columnmajor'

图块编号按照从上到下的顺序逐列递增。例如,下图显示 2×2 布局的列优先图块索引。

标签

全部展开

共享标题的 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 属性

注意

布局的 Children 属性中不包含 Text 对象,因此 findobj 函数无法返回该对象。

共享副标题的文本对象。要添加副标题,请设置文本对象的 String 属性。要更改其外观,如字体角度,请设置其他属性。有关完整列表,请参阅 Text 属性

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

也可以使用 subtitle 函数添加副标题并控制外观。

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

或者使用 title 函数,指定两个字符向量输入参数和两个输出参数。然后设置该函数返回的第二个文本对象的属性。

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

注意

此文本对象不包含在坐标区的 Children 属性中,它不能由 findobj 返回,也不使用为文本对象定义的默认值。

共享 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] 形式的四元素向量。向量中的值采用 Units 属性指定的单位。[0 0 1 1] 的默认值包括容器的整个内部。

  • leftbottom 元素定义从容器(通常为图窗、面板或选项卡)左下角到外部位置边界左下角之间的距离。

  • widthheight 元素是外边界尺寸。

在以下布局中,蓝色矩形表示 OuterPosition 属性,红色矩形表示 InnerPositionPosition 属性(它们具有相同的值)。

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] 形式的四元素向量。此属性等同于 Position 属性。

注意

当父容器为 TiledChartLayout 时,设置此属性不起作用。

内部大小和位置,不包括标题和轴标签等装饰元素的边距,指定为 [left bottom width height] 形式的四元素向量。向量中的值采用 Units 属性指定的单位。

  • leftbottom 元素定义从容器(通常为图窗、面板或选项卡)左下角到位置边界左下角之间的距离。

  • widthheight 元素是位置边界维度。对于三维视图中的坐标区,Position 属性是包围坐标区的最小矩形。

在以下布局中,蓝色矩形表示 OuterPosition 属性,红色矩形表示 InnerPositionPosition 属性(它们具有相同的值)。

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'(默认值)相对于父容器(通常为图窗)进行归一化。图窗的左下角映射到 (0,0),右上角映射到 (1,1)
'inches'英寸。
'centimeters'厘米。
'characters'

基于默认系统字体的字符大小。

  • 字符宽度 = 字母 x 的宽度。

  • 字符高度 = 两个文本行的基线之间的距离。

'points'磅。一磅等于 1/72 英寸。
'pixels'

像素。

  • 在 Windows® 系统上,一个像素是 1/96 英寸。

  • Macintosh 系统上,一个像素是 1/72 英寸。

  • 在 Linux® 系统上,一个像素的大小由系统分辨率确定。

所有单位都是从父容器的左下角进行测量的。

此属性会影响其他属性,例如 Position 属性。如果您更改了单位,最好在完成计算后将单位恢复为默认值,以避免影响其他采用默认值的函数。

如果您在创建对象时以 Name,Value 对组的形式指定 PositionUnits 属性,则指定顺序很重要。例如,要以特定单位设置位置,则必须在 Position 属性之前设置 Units 属性。

布局选项,指定为 TiledChartLayoutOptions 对象或 GridLayoutOptions 对象。使用此属性将嵌套布局定位在其父布局中。例如,要将一个布局定位在另一个分块图布局中,请设置 TiledChartLayoutOptions 对象的 TileTileSpan 属性。

例如,以下代码将 layout2 定位在 layout1 的第三个图块中。

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

要使该嵌套布局占据多个图块,请将 TileSpan 属性指定为二元素向量。例如,以下代码使 layout2 占据一行两列图块。

layout2.Layout.TileSpan = [1 2];
如果填充这两个布局中的所有图块,则复合布局如下所示:

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

要将布局放入某一 App 的网格布局中,请将此属性指定为 GridLayoutOptions 对象。有关在 App 中使用网格布局的详细信息,请参阅 uigridlayout

如果布局不是另一个布局的子级(例如,如果它是图窗或面板的子级),则此属性为空且不起作用。

交互性

全部展开

共享数据探查工具栏,指定为 axtoolbar 函数返回的 AxesToolbar 对象。当您将鼠标悬停在布局上时,工具栏会显示在布局的右上角。

默认情况下,没有共享工具栏,每个单独的坐标区对象都有自己的工具栏。创建共享工具栏时,单个坐标区对象上的工具栏会变为隐藏。如果您不希望布局中有任何工具栏,请将此属性留空,并将每个坐标区的 AxesToolbar 对象的 Visible 属性设置为 'off'

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

可见性状态,指定为 'on''off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

  • 'on' - 显示对象。

  • 'off' - 隐藏对象而不删除它。您仍然可以访问不可见对象的属性。

回调

全部展开

对象创建函数,指定为下列值之一:

  • 函数句柄。

  • 第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。

  • 包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。

有关将回调指定为函数句柄、元胞数组或字符向量的详细信息,请参阅回调定义

此属性指定要在 MATLAB 创建对象时执行的回调函数。MATLAB 将在执行 CreateFcn 回调之前初始化所有属性值。如果不指定 CreateFcn 属性,则 MATLAB 执行默认的创建函数。

对现有组件设置 CreateFcn 属性没有任何作用。

如果将此属性指定为函数句柄或元胞数组,则可以使用回调函数的第一个参数访问正在创建的对象。否则,使用 gcbo 函数访问该对象。

对象删除函数,指定为下列值之一:

  • 函数句柄。

  • 第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。

  • 包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。

有关将回调指定为函数句柄、元胞数组或字符向量的详细信息,请参阅回调定义

此属性指定在 MATLAB 删除对象时要执行的回调函数。MATLAB 在销毁对象的属性之前执行 DeleteFcn 回调。如果不指定 DeleteFcn 属性,则 MATLAB 执行默认的删除函数。

如果将此属性指定为函数句柄或元胞数组,则可以使用回调函数的第一个参数访问要删除的对象。否则,使用 gcbo 函数访问该对象。

回调执行控件

全部展开

回调中断,指定为 'on''off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

此属性确定是否可以中断运行中回调。有以下两种回调状态要考虑:

  • 运行中回调是当前正在执行的回调。

  • 中断回调是试图中断运行中回调的回调。

每当 MATLAB 调用回调时,回调都会试图中断正在运行的回调(如果存在)。运行中回调所属对象的 Interruptible 属性决定着是否允许中断。

  • 'on' 允许其他回调中断对象的回调。中断发生在 MATLAB 处理队列的下一个位置,例如当存在 drawnowfigureuifiguregetframewaitforpause 命令时。

    • 如果运行中回调包含以上命令之一,则 MATLAB 将在该时刻停止执行回调并执行中断回调。当中断回调完成时,MATLAB 将恢复执行运行中回调。

    • 如果运行中回调不包含以上命令之一,则 MATLAB 执行完当前回调,不会出现任何中断。

  • 'off' 阻止所有中断尝试。由中断回调所属的对象的 BusyAction 属性决定是放弃该中断回调还是将其放入队列中。

注意

回调的中断和执行在以下情况下会有不同的表现:

  • 如果中断回调是 DeleteFcnCloseRequestFcnSizeChangedFcn 回调,则无论是否存在 Interruptible 属性值都会发生中断。

  • 如果运行中回调当前正在执行 waitfor 函数,则无论是否存在 Interruptible 属性值都会发生中断。

  • Timer 对象根据排定时间执行,而不管 Interruptible 属性值如何。

发生中断时,MATLAB 不保存属性状态或显示内容。例如,gcagcf 命令返回的对象可能会在另一个回调执行时发生改变。

回调排队,指定为 'queue''cancel'BusyAction 属性决定 MATLAB 如何处理中断回调的执行。有以下两种回调状态要考虑:

  • 运行中回调是当前正在执行的回调。

  • 中断回调是试图中断运行中回调的回调。

无论何时 MATLAB 调用回调,该回调都会试图中断运行中回调。运行中回调所属对象的 Interruptible 属性决定着是否允许中断。如果不允许中断,则中断回调所属对象的属性 BusyAction 将决定是放弃该回调还是将回调放入队列中。以下是 BusyAction 属性的可能值:

  • 'queue' - 将中断回调放入队列中,以便在运行中回调执行完毕后进行处理。

  • 'cancel' - 不执行中断回调。

此属性为只读

删除状态,以 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值形式返回。

DeleteFcn 回调开始执行时,MATLAB 会将 BeingDeleted 属性设置为 'on'BeingDeleted 属性将一直保持 'on' 设置状态,直到组件对象不再存在为止。

在查询或修改对象之前,请先检查其 BeingDeleted 属性的值,以确认它不是待删除项。

父级/子级

全部展开

父容器,指定为 FigurePanelTabTiledChartLayoutGridLayout 对象。

子级,以图形对象数组形式返回。使用该属性可查看子级列表,或重新排列子级顺序(通过将该属性设置为自身的置换来完成)。

不能使用 Children 属性添加或删除子级。要向此列表中添加子级,请将子图形对象的 Parent 属性设置为 TiledChartLayout 对象。

父级的 Children 属性中对象句柄的可见性,指定为下列值之一:

  • 'on' - 对象句柄始终可见。

  • 'off' - 对象句柄始终不可见。该选项用于防止另一函数无意中对其进行更改。将 HandleVisibility 设置为 'off' 可在执行该函数时暂时隐藏句柄。

  • 'callback' - 对象句柄在回调或回调所调用的函数中可见,但在从命令行调用的函数中不可见。此选项阻止通过命令行访问对象,但允许回调函数访问对象。

如果父级的 Children 属性中未列出该对象,则通过搜索对象层次结构或查询句柄属性获取对象句柄的函数无法返回该对象。此类函数的示例包括 getfindobjgcagcfgconewplotclaclfclose 函数。

隐藏的对象句柄仍有效。将根 ShowHiddenHandles 属性设置为 'on' 以列出所有对象句柄,而不管其 HandleVisibility 属性设置如何。

标识符

全部展开

此属性为只读

图形对象的类型,以 'tiledlayout' 形式返回。

对象标识符,指定为字符向量或字符串标量。您可以指定唯一的 Tag 值作为对象的标识符。如果需要访问您代码中其他位置的对象,可以使用 findobj 函数基于 Tag 值搜索对象。

用户数据,指定为任何 MATLAB 数组。例如,您可以指定标量、向量、矩阵、元胞数组、字符数组、表或结构体。使用此属性存储对象上的任意数据。

如果您在 App 设计工具中工作,请在该 App 中创建公共或私有属性以共享数据,而不是使用 UserData 属性。有关详细信息,请参阅在用 App 设计工具创建的 App 内共享数据

兼容性考虑

全部展开

R2021a 中的行为有变化

另请参阅

|

在 R2019b 中推出