MATLAB中stem函数的使用

您所在的位置:网站首页 jk柄图设计软件 MATLAB中stem函数的使用

MATLAB中stem函数的使用

2023-12-03 12:53| 来源: 网络整理| 查看: 265

目录

语法

说明

​示例

绘制单数据序列

绘制多个数据序列

在指定的 x 值位置绘制单个数据序列

在指定的 x 值处绘制多个数据序列

在唯一的 x 值集合处绘制多个数据序列

填充图标记 

指定针状线条和标记选项

 指定其他针状线条和标记选项

指定针状图的坐标区

创建后修改针状序列 

调整基线属性

更改基线级别

        stem函数的功能是绘制离散序列数据。

语法 stem(Y) stem(X,Y) stem(___,'filled') stem(___,LineSpec) stem(___,Name,Value) stem(ax,___) h = stem(___) 说明

        ​stem(Y) 将数据序列 Y 绘制为从沿 x 轴的基线延伸的针状图。各个数据值由终止每个针状图的圆指示。

如果 Y 是向量,x 轴的刻度范围是从 1 至 length(Y)。

如果 Y 是矩阵,则 stem 将根据相同的 x 值绘制行中的所有元素,并且 x 轴的刻度范围是从 1 至 Y 中的行数。

        ​stem(X,Y) 在 X 指定的值的位置绘制数据序列 Y。X 和 Y 输入必须是大小相同的向量或矩阵。另外,X 可以是行或列向量,Y 必须是包含 length(X) 行的矩阵。

如果 X 和 Y 都是向量,则 stem 将根据 X 中的对应项绘制 Y 中的各项。

如果 X 是向量,Y 是矩阵,则 stem 将根据 X 指定的值集绘制 Y 的每列,这样 Y 的一行中的所有元素都是根据相同的值而绘制。

如果 X 和 Y 都是矩阵,则 stem 将根据 X 的对应列绘制 Y 的列。

表数据

​stem(tbl,yvar) 绘制表中的指定变量对表的行索引的图。如果该表是时间表,则绘制指定变量对时间表的行时间的图。要绘制一组 y 值,请为 yvar 指定变量。要绘制多组 y 值,请为 yvar 指定多个变量。(从 R2022b 开始)

stem(tbl,xvar,yvar) 绘制表 tbl 中的变量 xvar 和 yvar。可以为 xvar 和 yvar 指定一个或多个变量。如果两个参数都指定多个变量,它们指定的变量数目必须相同。(自 R2022b 开始提供)

stem(___,'filled') 填充圆。可以将此选项与前面语法中的任何输入参数组合一起使用。

​stem(___,LineSpec) 指定线型、标记符号和颜色。

​​stem(___,Name,Value) 使用一个或多个 Name,Value 对组参数修改针状图。

​stem(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。选项 ax 可以位于前面的语法中的任何输入参数组合之前。

h = stem(___) 在 h 中返回由 Stem 对象构成的向量。使用 h 可在创建针状图后对其进行修改。

​示例 绘制单数据序列

        创建一个包含 −2π 和 2π 之间的 50 个数据值的针状图。

figure Y = linspace(-2*pi,2*pi,50); stem(Y)

        数据值绘制为从基线开始延伸并在数据值位置终止的针状线条。Y 的长度自动确定每个针状图在 x 轴上的位置。

绘制多个数据序列

        使用两列矩阵绘制两个数据序列。

figure X = linspace(0,2*pi,50)'; Y = [cos(X), 0.5*sin(X)]; stem(Y)

        Y 的每列绘制为一个单独的序列,且 Y 的同一行的各项会针对同一 x 值进行绘制。Y 中的行数自动生成每个针状线条在 x 轴上的位置。 

在指定的 x 值位置绘制单个数据序列

        绘制在 0 和 2π 之间计算的 50 个余弦数据值并为针状图指定 x 值集。

figure X = linspace(0,2*pi,50)'; Y = cos(X); stem(X,Y)

        第一个向量输入确定每个针状线条在 x 轴上的位置。 

在指定的 x 值处绘制多个数据序列

        绘制在 0 和 2π 之间计算的 50 个正弦和余弦数据值并为针状图指定 x 值集。

figure X = linspace(0,2*pi,50)'; Y = [cos(X), 0.5*sin(X)]; stem(X,Y)

        向量输入确定这两个数据序列的 x 轴位置。         

在唯一的 x 值集合处绘制多个数据序列

        绘制根据不同的 x 值集计算的 50 个正弦和余弦数据值。为每个序列指定对应的 x 值集。

figure x1 = linspace(0,2*pi,50)'; x2 = linspace(pi,3*pi,50)'; X = [x1, x2]; Y = [cos(x1), 0.5*sin(x2)]; stem(X,Y)

        绘制 X 的每一列对 Y 的对应列的图。

填充图标记 

        创建一个针状图并填充终止每个针状图的圆。

X = linspace(0,10,20)'; Y = (exp(0.25*X)); stem(X,Y,'filled')

指定针状线条和标记选项

        创建一个针状图并使用 LineSpec 选项将线型设置为点线,将标记符号设置为菱形,将颜色设置为红色。

figure X = linspace(0,2*pi,50)'; Y = (exp(X).*sin(X)); stem(X,Y,':diamondr')

        要对菱形内部着色,请使用 'fill' 选项。 

 指定其他针状线条和标记选项

        创建一个针状图,并使用 Name,Value 对组参数将线型设置为点划线,将标记面颜色设置为红色,以及将标记边颜色设置为绿色。

figure X = linspace(0,2*pi,25)'; Y = (cos(2*X)); stem(X,Y,'LineStyle','-.',... 'MarkerFaceColor','red',... 'MarkerEdgeColor','green')

        针状图仍保持默认颜色。 

绘制表中的数据

自 R2022b 开始提供

        基于表数据绘图的一种便捷方法是将表传递给 stem 函数,并指定要绘制的变量。

        读取 weather.csv 的前 100 行和前 7 列数据作为一个时间表 tbl。然后显示该表的前三行。

tbl = readtimetable("weather.csv","Range",[1 1 101 7]); head(tbl,3) Time WindDirection WindSpeed Humidity Temperature RainInchesPerMinute CumulativeRainfall ____________________ _____________ _________ ________ ___________ ___________________ __________________ 25-Oct-2021 00:00:09 46 1 84 49.2 0 0 25-Oct-2021 00:01:09 45 1.6 84 49.2 0 0 25-Oct-2021 00:02:09 36 2.2 84 49.2 0 0

        在 x 轴上绘制行时间,在 y 轴上绘制 CumulativeRainfall 变量。在绘制来自时间表的数据时,默认情况下,行时间绘制在 x 轴上。因此,不需要指定 Time 变量。以 h 形式返回 Stem 对象。请注意,轴标签与变量名称匹配。

h = stem(tbl,"CumulativeRainfall");

如图所示:

通过设置 Color 属性,将绘图的颜色更改为紫色。

h.Color = [0.5 0 0.8];

如图所示:

在一个轴上绘制多个表变量

自 R2022b 开始提供

        创建向量 x、y1 和 y2,并使用它们创建一个表。绘制 y1 和 y2 变量对 x 变量的图,并使用 axis padded 命令以使针状图不与图框重叠。然后添加图例,注意图例标签与表变量名称匹配。

x = (0:0.1:2.9)'; y1 = cos(x); y2 = sin(x); tbl = table(x,y1,y2); stem(tbl,"x",["y1","y2"]); % Pad axes and add a legend axis padded legend

如图所示:

也可以省略 x 变量,并绘制 y1 和 y2 变量对表的行索引的图。

stem(tbl,["y1","y2"]); axis padded legend

如图所示:

指定针状图的坐标区

        从 R2019b 开始,您可以使用 tiledlayout 和 nexttile 函数显示分块图。调用 tiledlayout 函数以创建一个 2×1 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1 和 ax2。通过将坐标区对象指定为 stem 的第一个参数,在坐标区中创建单独的针状图。

x = 0:25; y1 = exp(0.1*x); y2 = -exp(.05*x); tiledlayout(2,1) % Top plot ax1 = nexttile; stem(ax1,x,y1) % Bottom plot ax2 = nexttile; stem(ax2,x,y2)

创建后修改针状序列 

        创建一个三维针状图并返回针状序列对象。

X = linspace(0,2); Y = X.^3; Z = exp(X).*cos(Y); h = stem3(X,Y,Z,'filled');

        将颜色更改为品红色,将标记面颜色设置为黄色。使用 view 可调整图窗中坐标区的角度。使用圆点表示法设置属性。

h.Color = 'm'; h.MarkerFaceColor = 'y'; view(-10,35)

调整基线属性

        创建一个针状图并更改基线的属性。

X = linspace(0,2*pi,50); Y = exp(0.3*X).*sin(3*X); h = stem(X,Y);

        更改基线的线型。使用圆点表示法设置属性。

hbase = h.BaseLine; hbase.LineStyle = '--';

        将基线的 Visible 属性设置为 'off' 以隐藏基线。 

hbase.Visible = 'off'; 更改基线级别

        创建一个针状图并将基线级别设置为 2。

X = linspace(0,2*pi,50)'; Y = (exp(0.3*X).*sin(3*X)); stem(X,Y,'BaseValue',2);

线型说明表示的线条'-'实线

'--'虚线

':'点线

'-.'点划线

标记说明生成的标记'o'圆圈

'+'加号

'*'星号

'.'点

'x'叉号

'_'水平线条

'|'垂直线条

's'方形

'd'菱形

'^'上三角

'v'下三角

'>'右三角

'


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3