天天看点

matlab title混合字体_MATLAB作图实例:3:多图合并

matlab title混合字体_MATLAB作图实例:3:多图合并

本示例说明如何使用

hold

功能在同一坐标系下组合绘图,以及如何使用

tiledlayout

功能在图形中创建多个轴。该

tiledlayout

功能在R2019b开始提供。如果使用的是早期版本,请改用该

subplot

函数。

在相同的轴上合并图

默认情况下,新图清除现有图并重置轴属性,例如标题。但是,您可以使用该

hold on

命令在同一轴上合并多个图。例如,绘制两条线和一个散点图。然后将保持状态重置为关闭。

x = linspace(0,10,50);
 y1 = sin(x);
 plot(x,y1)
 title('Combine Plots')
 ​
 hold on%确保当前图形内容不清除,后续可以继续在图面上添加内容
 ​
 y2 = sin(x/2);
 plot(x,y2)
 ​
 y3 = 2*sin(x);
 scatter(x,y3) 
 ​
 hold off
           
matlab title混合字体_MATLAB作图实例:3:多图合并

保持状态打开时,新图不会清除现有图或重置轴属性,例如标题或轴标签。绘图根据轴的

ColorOrder

LineStyleOrder

属性在颜色和线条样式之间循环。轴线范围和刻度值可能会调整以适应新数据。

在图形中显示多个轴

通过使用该

tiledlayout

功能,可以在一个图形中显示多个轴。此功能创建一个平铺的图表布局,其中包含整个图上不可见的平铺网格。每个图块可以包含一个用于显示图的轴。创建布局后,调用该

nexttile

函数以将轴对象放置到布局中。然后调用一个绘图函数来绘制轴。例如,以2×1布局创建两个图。为每个图添加标题。

注意:

此代码使用

tiledlayout

从R2019b开始可用的功能。如果使用的是早期版本,请改用

subplot

函数。

x = linspace(0,10,50);
 y1 = sin(x);
 y2 = rand(50,1);
 tiledlayout(2,1) % Requires R2019b or later %定义两个图形窗口 
 ​
 % Top plot
 nexttile%访问第一个窗口
 plot(x,y1)
 title('Plot 1')
 ​
 % Bottom plot
 nexttile%访问下一个窗口
 scatter(x,y2)
 title('Plot 2')
           
matlab title混合字体_MATLAB作图实例:3:多图合并

创建跨越多行或多列的图

要创建跨越多行或多列的绘图,请在

span

调用时指定参数

nexttile

。例如,创建2 x 2布局。绘制成前两个图块。然后创建一个跨越一排和两列的绘图。

x = linspace(0,10,50);
 y1 = sin(x);
 y2 = rand(50,1);
 ​
 % Top two plots
 tiledlayout(2,2) % Requires R2019b or later
 nexttile
 plot(x,y1)
 nexttile
 scatter(x,y2)%绘制散点图
 ​
 % Plot that spans
 nexttile([1 2])
 y2 = rand(50,1);%产生随机数,50行1列
 plot(x,y2)
           
matlab title混合字体_MATLAB作图实例:3:多图合并

修改轴外观

通过在每个轴对象上设置属性来修改轴外观。您可以通过

nexttile

使用带有输出参数的函数来获取axes对象。您还可以将轴对象指定为图形函数的第一个输入参数,以确保该函数定位正确的轴。

例如,创建两个图并将轴对象分配给变量

ax1

ax2

。更改第一个绘图的轴字体大小和x轴颜色。将网格线添加到第二个图。

x = linspace(0,10,50);
 y1 = sin(x);
 y2 = rand(50,1);
 tiledlayout(2,1) % Requires R2019b or later
 ​
 % Top plot
 ax1 = nexttile;
 plot(ax1,x,y1)
 title(ax1,'Plot 1')
 ax1.FontSize = 14;
 ax1.XColor = 'red';
 ​
 % Bottom plot
 ax2 = nexttile;
 scatter(ax2,x,y2)
 title(ax2,'Plot 2')
 grid(ax2,'on')
           
matlab title混合字体_MATLAB作图实例:3:多图合并

控制子图周围的间距

您可以通过指定

Padding

TileSpacing

属性来控制布局中图块周围的间距。例如,以2 x 2布局显示四个图。

x = linspace(0,30);
 y1 = sin(x);
 y2 = sin(x/2);
 y3 = sin(x/3);
 y4 = sin(x/4);
 ​
 % Create plots
 t = tiledlayout(2,2); % Requires R2019b or later %获得图形窗口对象
 nexttile
 plot(x,y1)
 nexttile
 plot(x,y2)
 nexttile
 plot(x,y3)
 nexttile
 plot(x,y4)
           
matlab title混合字体_MATLAB作图实例:3:多图合并

Padding

TileSpacing

属性设置为,以最小化布局周边和每个图块之间的间距

'none'

t.Padding = 'none';
 t.TileSpacing = 'none';
           
matlab title混合字体_MATLAB作图实例:3:多图合并

显示共享的标题和轴标签

您可以在布局中显示共享标题和共享轴标签。创建一个2比1的布局

t

。然后显示一个线图和一个stem图。通过调用函数来同步x轴限制

linkaxes

x1 = linspace(0,20,100);
 y1 = sin(x1);
 x2 = 3:17;
 y2 = rand(1,15);
 ​
 % Create plots.
 t = tiledlayout(2,1); % Requires R2019b or later
 ax1 = nexttile;
 plot(ax1,x1,y1)
 ax2 = nexttile;
 stem(ax2,x2,y2)
 ​
 % Link the axes
 linkaxes([ax1,ax2],'x');
           
matlab title混合字体_MATLAB作图实例:3:多图合并

通过使添加共享标题和共用轴标签

t

title

xlabel

ylabel

功能。通过移除移动地块靠得更近X从上图轴刻度标记和设置

TileSpacing

的属性

t

'compact'

% Add shared title and axis labels
 title(t,'My Title')
 xlabel(t,'x-values')
 ylabel(t,'y-values')
 ​
 % Move plots closer together
 xticklabels(ax1,{})
 t.TileSpacing = 'compact';
           
matlab title混合字体_MATLAB作图实例:3:多图合并

注:本文根据MATLAB官网内容修改而成。