此示例显示如何使用相同轴中的图持有
方法,以及如何在图形中创建多个轴tiledlayout
函数。的tiledlayout
函数从R2019b开始可用。如果您使用的是较早的版本,请使用子图
功能。
默认情况下,新绘图将清除现有绘图并重置轴属性,比如标题。但是,您可以使用坚持,稍等
命令在同一坐标轴上组合多个图。例如,画两条线和一个散点图。然后将保持状态重置为off。
x = linspace(0、10、50);日元= sin (x);plot(x,y1)标题('结合地块') 抓住上y2 = sin (x / 2);Plot (x,y2) y3 = 2*sin(x);散射(x, y3)离开
保持状态时,新绘图不会清除现有绘图或重置轴属性,如标题或轴标签。情节通过颜色和线条样式循环基于ColorOrder
和LineStyleOrder
轴的特性。轴限制和刻度值可能会调整以适应新数据。
控件可以在单个图形中显示多个轴tiledlayout
函数。此函数创建一个平铺图表布局,其中包含覆盖整个图形的不可见的平铺网格。每个贴图可以包含一个用于显示绘图的轴。创建布局后,调用nexttile
函数将轴对象放置到布局中。然后调用一个绘图函数来绘制坐标轴。例如,在2 × 1布局中创建两个plot。给每个情节添加标题。
注意:此代码使用tiledlayout
功能,可在R2019B开始。如果您使用的是较早的版本,请使用子图
功能。
x = linspace(0、10、50);日元= sin (x);y2 =兰德(50,1);tiledlayout (2, 1)%要求R2019b或更高版本%顶层情节nexttile情节(x, y₁)标题(“图1”)%底部情节nexttile散射(x, y2)标题(“图2”)
若要创建跨越多行或多列的绘图,请指定跨度
当你打电话的时候nexttile
.例如,创建一个2×2布局。绘制到前两个瓷砖。然后创建一个跨越一行和两列的绘图。
x = linspace(0、10、50);日元= sin (x);y2 =兰德(50,1);%顶部两个图Tiledlayout(2,2)%要求R2019b或更高版本Nexttile plot(x,y1)%跨越的图Nexttile ([1 2]) y2 = rand(50,1);情节(x, y2)
通过设置每个轴对象的属性来修改轴的外观。调用nexttile
使用输出参数函数。您还可以将轴对象指定为图形功能的第一个输入参数,以确保该功能针对正确的轴。
例如,创建两个绘图并将轴对象分配给变量ax₁
和ax2
.更改轴字体大小和x-轴颜色为第一个绘图。将网格线添加到第二个地块。
x = linspace(0、10、50);日元= sin (x);y2 =兰德(50,1);tiledlayout (2, 1)%要求R2019b或更高版本%顶层情节ax₁= nexttile;情节(ax₁,x, y₁)标题(ax₁,“图1”ax₁。字形大小= 14;ax₁。XColor =“红色”;%底部情节ax2 = nexttile;散射(ax2 x, y2)标题(ax2,“图2”)网格(ax2,“上”)
通过指定,您可以通过指定布局来控制图块周围的间距填充
和TileSpacing
特性。例如,在2×2布局中显示四个图。
x = linspace(0,30);日元= sin (x);y2 = sin (x / 2);y3 = sin(x / 3);y4 = sin(x / 4);%建立情节t = tiledlayout (2, 2);%要求R2019b或更高版本Nexttile plot(x,y1) Nexttile plot(x,y2) Nexttile plot(x,y3) Nexttile plot(x,y4)
控件,减少布局周边和每个贴图周围的间距填充
和TileSpacing
属性“紧凑”
.
T.Padding =.“紧凑”;t.tilespacing =“紧凑”;
您可以在布局中显示共享标题和共享轴标签。创建一个2×1布局t
.然后显示线形图和干形图。同步x-axis通过调用linkaxes
函数。
x1 = linspace(0,20,100);y1 = sin(x1);x2 = 3:17;Y2 =兰特(1,15);%创建图。t = tiledlayout (2, 1);%要求R2019b或更高版本ax₁= nexttile;Plot (ax1,x1,y1) ax2 = nexttile;茎(ax2 x2, y2)%链接轴Linkaxes([AX1,AX2],“x”);
通过传递添加共享标题和共享轴标签t
到了标题
,XLabel.
, 和ylabel
职能。通过删除倾斜地移动绘图x-轴勾号标签从顶部绘图和设置TileSpacing
的属性t
来“紧凑”
.
%添加共享标题和轴标签标题(t,“我的名字”)包含(t)“值”) ylabel (t)“y”)%把情节靠得更近xticklabels t.TileSpacing = (ax₁,{})“紧凑”;