Matlab离散序列数据绘图函数stem

4.3
(3)

今天,带来Matlab中离散序列数据的绘图函数stem使用方法。本文主要讲解stem函数在Matlab中的常见用法、语法说明、单数据序列得绘制、多个数据序列得绘制、在指定的位置绘制单个数据序列、在指定的位置绘制多个数据序列、在唯一的位置集合处绘制多个数据序列、填充图标记、指定针状线条和标记选项、指定其他针状线条和标记选项、指定针状图的坐标区、创建后修改针状序列、调整基线属性以及更改基线级别等用法详解。

Matlab离散序列数据绘图函数stem

下面,我们将开始详细的介绍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)
Matlab离散序列数据绘图函数stem

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

多个数据序列得绘制

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

figure
X = linspace(0,2*pi,50)';
Y = [cos(X), 0.5*sin(X)];
stem(Y)
Matlab离散序列数据绘图函数stem

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

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

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

figure
X = linspace(0,2*pi,50)';
Y = cos(X);
stem(X,Y)
Matlab离散序列数据绘图函数stem

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

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

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

figure
X = linspace(0,2*pi,50)';
Y = [cos(X), 0.5*sin(X)];
stem(X,Y)
Matlab离散序列数据绘图函数stem

向量输入确定这两个数据序列的 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)
Matlab离散序列数据绘图函数stem

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

填充图标记

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

X = linspace(0,10,20)';
Y = (exp(0.25*X));
stem(X,Y,'filled')
Matlab离散序列数据绘图函数stem

指定针状线条和标记选项

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

figure
X = linspace(0,2*pi,50)';
Y = (exp(X).*sin(X));
stem(X,Y,':diamondr')
Matlab离散序列数据绘图函数stem

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

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

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

figure
X = linspace(0,2*pi,25)';
Y = (cos(2*X));
stem(X,Y,'LineStyle','-.',...
     'MarkerFaceColor','red',...
     'MarkerEdgeColor','green')
Matlab离散序列数据绘图函数stem

针状图仍保持默认颜色。

指定针状图的坐标区

从 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)
Matlab离散序列数据绘图函数stem

创建后修改针状序列

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

X = linspace(0,2);
Y = X.^3;
Z = exp(X).*cos(Y);
h = stem3(X,Y,Z,'filled');
Matlab离散序列数据绘图函数stem

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

h.Color = 'm';
h.MarkerFaceColor = 'y';
view(-10,35)
Matlab离散序列数据绘图函数stem

调整基线属性

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

X = linspace(0,2*pi,50);
Y = exp(0.3*X).*sin(3*X);
h = stem(X,Y);
Matlab离散序列数据绘图函数stem

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

hbase = h.BaseLine; 
hbase.LineStyle = '--';
Matlab离散序列数据绘图函数stem

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

hbase.Visible = 'off';
Matlab离散序列数据绘图函数stem

更改基线级别

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

X = linspace(0,2*pi,50)';
Y = (exp(0.3*X).*sin(3*X));
stem(X,Y,'BaseValue',2);
Matlab离散序列数据绘图函数stem

共计3人评分,平均4.3

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

文章目录

转载文章,原文出处:MathWorks官网,由古哥整理发布

如若转载,请注明出处:https://iymark.com/articles/1114.html

(1)
微信公众号
古哥的头像古哥管理团队
上一篇 2020年12月09日 19:44
下一篇 2020年12月11日 20:19

你可能感兴趣的文章

发表回复

登录后才能评论
微信小程序
微信公众号