1

Matlab画图技巧与实例:堆叠图stackedplot

 1 year ago
source link: https://blog.51cto.com/domi/5755023
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在MATLAB线图中,一共有3种类型,分别是

线图,包括:plot,plot3,stairs,errorbar,area,stackedplot函数。

对数图,包括:loglog,semilogx和semilogx函数,。

函数图,包括:fplot,fimplicit和fplot3函数,感觉和ezplot很像,参见

stackedplot函数专门用来绘制堆叠图,意思是一组数据拥有共同x轴,而y轴数据不同。在科研中相对于其他类型图,虽然不常常出现,但偶尔能用到。

注意,注意,注意,stackedplot函数在2018版本以下是没有的,只有2018版本及以上才有。

1 堆叠图stackedplot函数

1.1 用法

stackedplot(tbl)
stackedplot(tbl,vars)
stackedplot(___,'XVariable',xvar)
stackedplot(X,Y)
stackedplot(Y)
stackedplot(___,LineSpec)
stackedplot(___,Name,Value)
stackedplot(parent,___)
s = stackedplot(___)

stackedplot(tbl) 在堆叠图中绘制表或时间表的变量。该函数在垂直层叠的单独 y 轴中绘制变量。这些变量共享一个公共 x 轴。
如果 tbl 是表,则该函数绘制变量对行号的图。
如果 tbl 是时间表,则该函数绘制变量对行时间的图。
stackedplot 函数绘制 tbl 的所有数值、逻辑、分类、日期时间和持续时间变量,并忽略具有任何其他数据类型的表变量。例如,stackedplot(tbl,vars) 仅绘制 vars 指定的表或时间表变量。
stackedplot(___,'XVariable',xvar) 指定为堆叠图提供 x 值的表变量。此语法仅支持表,而不支持时间表。例如,stackedplot(X,Y) 绘制 Y 列对向量 X 的图。
stackedplot(Y) 绘制 Y 的列对其行号的图。x 轴的刻度范围是从 1 到 Y 的行数。
stackedplot(___,LineSpec) 设置线型、标记符号和颜色。您可以将此语法与前面任何语法中的输入参数结合使用。例如,stackedplot(___,Name,Value) 使用一个或多个 Name,Value 对组参数设置堆叠图的属性。有关属性列表,请参阅 StackedLineChart 属性。可以将此选项与前面语法中的任何输入参数组合一起使用。名称-值对组设置应用于堆叠图中的所有绘图。将每个属性名称括在引号中。
stackedplot(parent,___) 在 parent 指定的图窗、面板或选项卡中创建堆叠图。选项 parent 可以位于前面的语法中的任何输入参数组合之前。例如,s = stackedplot(___) 返回 StackedLineChart 对象。创建堆叠图后,可以使用 s 更改堆叠图的属性。有关属性列表,请参阅 StackedLineChart 属性。

1.2 示例1

clcclear allclose allx = [1:0.1:10];y(:,1) = sin(x);y(:,2) = cos(x);y(:,3) = sin(x).*cos(x);stackedplot(x,y,'ro');
Matlab画图技巧与实例:堆叠图stackedplot_数据

可以看出,上图由三个小图组成,它们公用x轴,但y轴不同。

1.3 示例2

这里我们可以通过句柄对图形进行更改。

堆叠图有很多属性,包括:

Matlab画图技巧与实例:堆叠图stackedplot_属性列表_02

例如,可以对x轴和y轴添加名称。其他属性类似,直接指定即可。设定时,注意数据类型。

clcclear allclose allx = [1:0.1:10];y(:,1) = sin(x);y(:,2) = cos(x);y(:,3) = sin(x).*cos(x);h = stackedplot(x,y,'r-');h.DisplayLabels = {'y1','y2','y3'};h.XLabel = {'x-axis'};
Matlab画图技巧与实例:堆叠图stackedplot_数据_03

1.4 示例3

在堆叠图的属性设置时,注意,注意,注意,是对整个图进行更改,例如,如果将线型改成虚线,那么三个图都会被改成虚线。

但是,MATLAB也提供了每个图的属性操作,可通过整体属性中的h.LineProperties进行设置,对于每个小的图形,h.LineProperties下设属性有颜色、线型、线宽、点大小、图类型等等,如下

Color,可以为传统方法,例如‘r’,'b',可以设置RGB三色,如[0.5, 0.5, 0.5]MarkerFaceColorMarkerEdgeColorLineStyle,设置为无时,要用‘none’命令LineWidthMarkerMarkerSizePlotType,这里只能设置为plot,scatter和stairs函数,不能为其他类型
clcclear allclose allx = [1:0.1:10];y(:,1) = sin(x);y(:,2) = cos(x);y(:,3) = sin(x).*cos(x);h = stackedplot(x,y,'r-');h.DisplayLabels = {'y1','y2','y3'};h.XLabel = {'x-axis'};h.LineProperties(1).Color = 'b';h.LineProperties(1).LineWidth = 1.5;h.LineProperties(2).LineStyle = 'none';h.LineProperties(2).Marker = 'o';h.LineProperties(2).MarkerSize = 8;h.LineProperties(3).PlotType = 'stairs';h.LineProperties(3).Color = 'k';h.LineProperties(3).LineWidth = 1.5;
Matlab画图技巧与实例:堆叠图stackedplot_数据类型_04

第一个图颜色改成蓝色,线宽设为1.5;

第二个图线设置为无,点改为圈,点大小设为8;

第三个图线型设置为阶梯图,颜色设为黑色,线宽为1.5;


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK