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。"vertical"
- 布局包含垂直堆叠的坐标区。每次调用nexttile
时,都会将一个新坐标区对象添加到堆叠的底部。 (自 R2023a 起)"horizontal"
- 布局包含水平堆叠的坐标区。每次调用nexttile
时,都会将一个新坐标区对象添加到堆叠的右侧。 (自 R2023a 起)
如果您手动设置 GridSize
属性,则 MATLAB 会将此属性的值设置为 "fixed"
。
要设置图块排列,请在调用 tiledlayout
函数时指定 arrangement
参量。
图块间距,指定为 "loose"
、"compact"
、"tight"
或 "none"
。使用此属性控制图块之间的间距。
下表显示每个值如何影响 2
×2
布局的外观。
值 | 外观 |
---|---|
|
|
"compact" |
|
"tight" |
|
"none" |
|
布局周围的填充,指定为 "loose"
、"compact"
或 "tight"
。不管此属性使用哪个值,布局都会为所有装饰元素(如轴标签)提供空间。
下表显示每个值如何影响 2
×2
布局的外观。
值 | 外观 |
---|---|
|
|
"compact" |
|
"tight" |
|
图块索引方案,指定为下表中的一个值。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]
的默认值包括容器的整个内部。
left
和bottom
元素定义从容器(通常为图窗、面板或选项卡)左下角到外部位置边界左下角之间的距离。width
和height
元素是外边界尺寸。
在以下布局中,蓝色矩形表示 OuterPosition
属性,红色矩形表示 InnerPosition
和 Position
属性(它们具有相同的值)。
注意
当父容器为 TiledChartLayout
对象时,设置此属性不起作用。
内部大小和位置,不包括标题和轴标签等装饰元素的边距,指定为 [left bottom width height]
形式的四元素向量。此属性等同于 Position
属性。
注意
当父容器为 TiledChartLayout
对象时,设置此属性不起作用。
内部大小和位置,不包括标题和轴标签等装饰元素的边距,指定为 [left bottom width height]
形式的四元素向量。向量中的值采用 Units
属性指定的单位。
left
和bottom
元素定义从容器(通常为图窗、面板或选项卡)左下角到位置边界左下角之间的距离。width
和height
元素是位置边界维度。对于三维视图中的坐标区,Position
属性是包围坐标区的最小矩形。
在以下布局中,蓝色矩形表示 OuterPosition
属性,红色矩形表示 InnerPosition
和 Position
属性(它们具有相同的值)。
注意
当父容器为 TiledChartLayout
对象时,设置此属性不起作用。
在增加、删除或更改装饰元素时保持不变的位置属性,指定为下列值之一:
"outerposition"
- 在添加、删除或更改装饰元素(例如标题或轴标签)时,OuterPosition
属性保持不变。如需任何位置调整,MATLAB 会调整InnerPosition
属性。"innerposition"
- 在添加、删除或更改装饰元素(例如标题或轴标签)时,InnerPosition
属性保持不变。如需任何位置调整,MATLAB 会调整OuterPosition
属性。
注意
当父容器为 TiledChartLayout
对象时,设置此属性不起作用。
位置单位,指定为此表中的一个值。
Units | 描述 |
---|---|
'normalized' (默认值) | 相对于父容器(通常为图窗)进行归一化。图窗的左下角映射到 (0,0) ,右上角映射到 (1,1) 。 |
'inches' | 英寸。 |
'centimeters' | 厘米。 |
'characters' | 基于默认系统字体的字符大小。
|
'points' | 磅。一磅等于 1/72 英寸。 |
'pixels' | 像素。 在 Windows® 和 Macintosh 系统上,像素的大小为 1/96 英寸。此大小与系统分辨率无关。 在 Linux® 系统上,一个像素的大小由系统分辨率确定。 |
所有单位都是从父容器的左下角进行测量的。
此属性会影响其他属性,例如 Position
属性。如果您更改了单位,最好在完成计算后将单位恢复为默认值,以避免影响其他采用默认值的函数。
如果您在创建对象时以 Name,Value
对组的形式指定 Position
和 Units
属性,则指定顺序很重要。例如,要以特定单位设置位置,则必须在 Position
属性之前设置 Units
属性。
布局选项,指定为 TiledChartLayoutOptions
对象。使用此属性将嵌套布局定位在其父布局中。例如,要将一个布局定位在另一个分块图布局中,请设置 TiledChartLayoutOptions
对象的 Tile
和 TileSpan
属性。
例如,以下代码将 layout2
定位在 layout1
的第三个图块中。
layout1 = tiledlayout(2,2); layout2 = tiledlayout(layout1,1,3); layout2.Layout.Tile = 3;
要使该嵌套布局占据多个图块,请将 TileSpan
属性指定为二元素向量。例如,以下代码使 layout2
占据一行两列图块。
layout2.Layout.TileSpan = [1 2];
如果布局不是另一个布局的子级(例如,如果它是图窗或面板的子级),则此属性为空且不起作用。
交互性
共享数据探索工具栏,指定为 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"
- 隐藏对象而不删除它。您仍然可以访问不可见对象的属性。
回调
自 R2022b 开始提供
网格大小更改回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符串标量或字符向量(不推荐 App 使用)。MATLAB 在基础工作区中计算此表达式。
请注意,TileArrangement
属性设置为 "fixed"
的布局无法更改网格大小,除非该布局为空。此回调在 GridSize
属性更改后执行。如果 TileArrangement
属性设置为 "flow"
,然后当您添加或删除图块或调整图窗的大小时,网格大小通常会发生变化。
GridSizeChangedFcn
回调函数可以访问有关网格大小的特定信息。MATLAB 在 GridSizeChanged
对象中将此信息作为第二个参量传递给回调函数。如果您在 App 设计工具中开发 App,该参量称为 event
。您可以使用圆点表示法查询对象属性。例如,event.NewGridSize
返回新网格大小。GridSizeChanged
对象不可用于指定为字符串或字符向量的回调函数。
下表列出了 GridSizeChanged
对象的属性。
属性 | 描述 |
---|---|
NewGridSize | 包含新网格大小的二元素向量 |
OldGridSize | 包含先前网格大小的二元素向量 |
Source | 执行回调的 |
EventName |
|
有关 GridSizeChangedFcn
回调的示例,请参阅Colorbar That Adjusts as Tiles Reflow。有关在 App 中编写回调的详细信息,请参阅App 设计工具中的回调。
对象创建函数,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
有关将回调指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Create Callbacks for Graphics Objects。
此属性指定要在 MATLAB 创建对象时执行的回调函数。MATLAB 将在执行 CreateFcn
回调之前初始化所有属性值。如果不指定 CreateFcn
属性,则 MATLAB 执行默认的创建函数。
对现有组件设置 CreateFcn
属性没有任何作用。
如果将此属性指定为函数句柄或元胞数组,则可以使用回调函数的第一个参量访问正在创建的对象。否则,使用 gcbo
函数访问该对象。
对象删除函数,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
有关将回调指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Create Callbacks for Graphics Objects。
此属性指定在 MATLAB 删除对象时要执行的回调函数。MATLAB 在销毁对象的属性之前执行 DeleteFcn
回调。如果不指定 DeleteFcn
属性,则 MATLAB 执行默认的删除函数。
如果将此属性指定为函数句柄或元胞数组,则可以使用回调函数的第一个参量访问要删除的对象。否则,使用 gcbo
函数访问该对象。
回调执行控件
回调中断,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true
,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
此属性确定是否可以中断运行中回调。有以下两种回调状态要考虑:
运行中回调是当前正在执行的回调。
中断回调是试图中断运行中回调的回调。
每次执行处理回调队列的命令时,MATLAB 都会确定回调中断行为。这些命令包括 drawnow
、figure
、uifigure
、getframe
、waitfor
和 pause
。
如果运行中回调不包含上述命令之一,则不会发生中断。MATLAB 首先完成执行运行中回调,然后执行中断回调。
如果运行中回调确实包含上述命令之一,则由运行中回调所属对象的 Interruptible
属性来确定是否发生中断:
如果
Interruptible
的值为'off'
,则不会发生中断。此时,由中断回调所属对象的BusyAction
属性确定中断回调是被丢弃还是添加到回调队列中。如果
Interruptible
的值为'on'
,则发生中断。下次 MATLAB 处理回调队列时,它会停止运行中回调的执行,并执行中断回调。在中断回调完成后,MATLAB 将继续执行运行中回调。
注意
回调的中断和执行在以下情况下会有不同的表现:
如果中断回调是
DeleteFcn
、CloseRequestFcn
或SizeChangedFcn
回调,则无论是否存在Interruptible
属性值都会发生中断。如果运行中回调当前正在执行
waitfor
函数,则无论是否存在Interruptible
属性值都会发生中断。如果中断回调由
Timer
对象所有,则回调将根据调度执行,而不考虑Interruptible
属性值。
回调排队,指定为 'queue'
或 'cancel'
。BusyAction
属性决定 MATLAB 如何处理中断回调的执行。有以下两种回调状态要考虑:
运行中回调是当前正在执行的回调。
中断回调是试图中断运行中回调的回调。
BusyAction
属性仅在同时满足以下两个条件时才确定回调排队行为:
在这些情况下,由中断回调所属对象的 BusyAction
属性确定 MATLAB 如何处理中断回调。以下是 BusyAction
属性的可能值:
'queue'
- 将中断回调放入队列中,以便在运行中回调执行完毕后进行处理。'cancel'
- 不执行中断回调。
此 属性 为只读。
删除状态,以 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值形式返回。
当 DeleteFcn
回调开始执行时,MATLAB 会将 BeingDeleted
属性设置为 'on'
。BeingDeleted
属性将一直保持 'on'
设置状态,直到组件对象不再存在为止。
在查询或修改对象之前,请先检查其 BeingDeleted
属性的值,以确认它不是待删除项。
父级/子级
父容器,指定为 Figure
、Panel
、Tab
或 TiledChartLayout
对象。
子级,以图形对象数组形式返回。使用该属性可查看子级列表,或重新排列子级顺序(通过将该属性设置为自身的置换来完成)。
不能使用 Children
属性添加或删除子级。要向此列表中添加子级,请将子图形对象的 Parent
属性设置为 TiledChartLayout
对象。
父级的 Children
属性中对象句柄的可见性,指定为下列值之一:
"on"
- 对象句柄始终可见。"off"
- 对象句柄始终不可见。该选项用于防止另一函数无意中对其进行更改。将HandleVisibility
设置为"off"
可在执行该函数时暂时隐藏句柄。"callback"
- 对象句柄在回调或回调所调用的函数中可见,但在从命令行调用的函数中不可见。此选项阻止通过命令行访问对象,但允许回调函数访问对象。
如果父级的 Children
属性中未列出该对象,则通过搜索对象层次结构或查询句柄属性获取对象句柄的函数无法返回该对象。此类函数的示例包括 get
、findobj
、gca
、gcf
、gco
、newplot
、cla
、clf
和 close
函数。
隐藏的对象句柄仍有效。将根 ShowHiddenHandles
属性设置为 "on"
以列出所有对象句柄,而不管其 HandleVisibility
属性设置如何。
标识符
此 属性 为只读。
图形对象的类型,以 'tiledlayout'
形式返回。
对象标识符,指定为字符向量或字符串标量。您可以指定唯一的 Tag
值作为对象的标识符。如果需要访问您代码中其他位置的对象,可以使用 findobj
函数基于 Tag
值搜索对象。
用户数据,指定为任何 MATLAB 数组。例如,您可以指定标量、向量、矩阵、元胞数组、字符数组、表或结构体。使用此属性存储对象上的任意数据。
如果您在 App 设计工具中工作,请在该 App 中创建公共或私有属性以共享数据,而不是使用 UserData
属性。有关详细信息,请参阅在用 App 设计工具创建的 App 内共享数据。
版本历史记录
在 R2019b 中推出当您查询 TileArrangement
属性时,两个可能的新值是 "horizontal"
和 "vertical"
。值 "horizontal"
对应于水平堆叠图块,"vertical"
对应于垂直堆叠图块。
要设置图块排列,请在调用 tiledlayout
函数时指定 arrangement
参量。
在分块图布局上定义 GridSizeChangedFcn
回调函数。当布局的 GridSize
属性更改时,回调函数执行。此回调主要用于使用 "flow"
图块排列的布局。例如,您可以定义一个回调以仅在坐标区的底部行中显示 x 轴刻度标签。
创建分块图布局时,某些 TileSpacing
和 Padding
属性会提供不同结果或具有新名称。
新的 TileSpacing
选项包括 "loose"
、"compact"
、"tight"
和 "none"
。新的 Padding
选项包括 "loose"
、"compact"
和 "tight"
。下列各表说明以前的选项与新选项之间的关系。
TileSpacing
更改
以前的 TileSpacing 选项 | R2021a 中的 TileSpacing 选项 | 如何更新您的代码 |
---|---|---|
|
| 考虑将 不再推荐使用 |
|
| 无需更改。 |
不适用 |
|
|
|
|
要保留图框之间的间距,请将 |
Padding
更改
以前的 Padding 选项 | R2021a 中的 Padding 选项 | 如何更新您的代码 |
---|---|---|
|
| 考虑将 不再推荐使用 |
|
| 无需更改。 |
|
| 考虑将 不再推荐使用 |
另请参阅
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)