今天,带来Matlab中离散序列数据的绘图函数stem使用方法。本文主要讲解stem函数在Matlab中的常见用法、语法说明、单数据序列得绘制、多个数据序列得绘制、在指定的位置绘制单个数据序列、在指定的位置绘制多个数据序列、在唯一的位置集合处绘制多个数据序列、填充图标记、指定针状线条和标记选项、指定其他针状线条和标记选项、指定针状图的坐标区、创建后修改针状序列、调整基线属性以及更改基线级别等用法详解。
下面,我们将开始详细的介绍stem函数的语法介绍,实例引用,结果展示。首先,我们给出 Matlab 中关于 stem 函数的帮助文本如下:
>> help stem stem Discrete sequence or "stem" plot. stem(Y) plots the data sequence Y as stems from the x axis terminated with circles for the data value. If Y is a matrix then each column is plotted as a separate series. stem(X,Y) plots the data sequence Y at the values specified in X. stem(...,'filled') produces a stem plot with filled markers. stem(...,'LINESPEC') uses the linetype specified for the stems and markers. See PLOT for possibilities. stem(AX,...) plots into axes with handle AX. Use GCA to get the handle to the current axes or to create one if none exist. H = stem(...) returns a vector of stemseries handles in H, one handle per column of data in Y.
常见用法
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(___,’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')
针状图仍保持默认颜色。
指定针状图的坐标区
从 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)
由于我用得是Matlab2016版本,因此不支持tiledlayout和nexttile函数,这里我是用subplot来代替作图,代码如下:
x = 0:25; y1 = exp(0.1*x); y2 = -exp(.05*x); subplot(2,1,1) stem(x,y1) subplot(2,1,2) stem(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);
转载文章,原文出处:MathWorks官网,由古哥整理发布
如若转载,请注明出处:https://iymark.com/articles/1114.html