有时经常需要使用Matlab绘制坐标轴枝干图形(即针状图形),特别是一些原理性的图形,只需要定性表达曲线的变化趋势无需精确表达曲线的数量关系,这时使用枝干图形的坐标轴显得更加美观。

这时使用枝干图形的坐标轴图形比Matlab自带的plot等绘图函数更加高大尚!

1.stem - 绘制离散序列数据

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

语法
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.Stem函数绘制二维离散点数据

例1 steam()和plot()对比


clc;
clear all;
close all;
h0=figure('toolbar','none',...
    'position',[200 150 450 350],...
    'name','枝干图');
x=0:pi/20:2*pi;
y1=sin(x);
y2=cos(x);

%可视化
figure(1)
stem(x,y1+y2);
figure(2)
plot(x,y1+y2);

xlabel('自变量X');
ylabel('函数值Y');

【MATLAB】stem函数绘制枝干图(或针状图)_枝干图

stem()函数绘制

【MATLAB】stem函数绘制枝干图(或针状图)_stem_02

plot()函数绘制

关于plot用法见绘图

例2 创建一个针状图。

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


clc;
clear all;
close all;
X = linspace(0,10,20)';
Y = (exp(0.25*X));

%可视化
stem(X,Y,'filled')

【MATLAB】stem函数绘制枝干图(或针状图)_stem_03

注:'filled'表示将空白圈圈进行填充处理。

例3 创建一个针状图。

并将标记符号设置为菱形,将颜色设置为红色。


clc;
clear all;
close all;

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

%可视化
stem(X,Y,':diamondr')

【MATLAB】stem函数绘制枝干图(或针状图)_stem_04



例4 创建一个针状图。

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

clc;
clear all;
close all;

X = linspace(0,2*pi,25)';
Y = (cos(2*X));

%可视化
stem(X,Y,'LineStyle','-.',...
     'MarkerFaceColor','red',...
     'MarkerEdgeColor','green')

【MATLAB】stem函数绘制枝干图(或针状图)_枝干图_05


例5 创建一个针状图

进行线性加粗


clc;
clear all;
close all;

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

%可视化
figure(1)
stem(X,Y,'LineWidth',1.5)
figure(2)
stem(X,Y,':diamondr')

【MATLAB】stem函数绘制枝干图(或针状图)_针状图_06


clc;
clear all;
close all;

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

%可视化
figure(1)
stem(X,Y,'LineWidth',1.5)
figure(2)
stem(X,Y,'diamondr')

【MATLAB】stem函数绘制枝干图(或针状图)_针状图_07

3 标记符号

标记符号,指定为下表中列出的标记之一。

说明

'o'

圆圈

'+'

加号

'diamond' 或 'd'

菱形

'square' 或 's'

方形

'*'

方形

'.'

'x'

叉号

'^'

上三角

'v'

下三角

'>'

左三角

'>'

右三角

'pentagram' 或 'p'

五角星(五角形)

'hexagram' 或 'h'

六角星(六角形)

'none'

无标记