MATLAB画图技巧与实例:堆叠图stackedplot函数

本文详细介绍了MATLAB中的stackedplot函数,用于绘制堆叠图,包括其用法、示例以及如何设置图形属性。特别指出stackedplot在不同版本的MATLAB中的可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自链接

MATLAB画图技巧与实例:堆叠图stackedplot函数

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

  • 线图。包括:plot,plot3,stairs,errorbar,area,stackedplot函数。其中plot,plot3,stairs函数可参见(一)。errorbar函数参见(三)。area函数参见(四)
  • 对数图。包括:loglog,semilogx和semilogx函数,参见(一)
  • 函数图。包括:fplot,fimplicit和fplot3函数,感觉和ezplot很像,参见(一)

只有stackedplot函数还没有讲过。

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]

MATLAB是用来进行画图的,可参考帮助文档以及表的定义[1][2]

当然笔者嫌过于复杂,不够简单,就用几个例子来进行说明,大家应用也相对容易。

1.2 示例1

clc %https://zhuanlan.zhihu.com/p/312069817
clear all
close all
x = [1:0.1:10];
y(:,1) = sin(x);
y(:,2) = cos(x);
y(:,3) = sin(x).*cos(x);
stackedplot(x,y,'ro');

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

1.3 示例2

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

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

例如,可以对x轴和y轴添加名称。其他属性类似,直接指定即可。

设定时,注意数据类型。

clc %https://zhuanlan.zhihu.com/p/312069817
clear all
close all
x = [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'};

1.4 示例3

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

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

  • Color,可以为传统方法,例如‘r’,'b',可以设置RGB三色,如[0.5, 0.5, 0.5]
  • MarkerFaceColor
  • MarkerEdgeColor
  • LineStyle,设置为无时,要用‘none’命令
  • LineWidth
  • Marker
  • MarkerSize
  • PlotType,这里只能设置为plot,scatter和stairs函数,不能为其他类型

示例如下

clc %https://zhuanlan.zhihu.com/p/312069817
clear all
close all
x = [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;

这里,

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

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

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

这些属性可以在MATLAB画图技巧与实例(一):常用函数中查找,也可以参考MATLAB帮助文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值