火柴杆图

火柴杆图沿x轴将数据用直线段相对于基线显示在上下两侧,数据点用小圆圈或其他标记显示。

用stem函数绘制火柴杆图,该函数的语法格式如下所示。

stem(Y) 将Y中的数据沿x轴用直线段相对于基线等间隔排列。如果Y是矩阵,则stem函数对应于同一个x值绘制行中的所有元素。

stem(X,Y) 绘X和Y的列数据的图形。X和Y必须是大小相同的矢量或矩阵。另外,X可以是一个行矢量或列矢量,Y可以是一个有length(X)行的矩阵。

stem(…,'fill') 指定是否对火柴杆末端的圆圈着色。

stem(…,LineSpec) 指定火柴杆和末端标记的线型、标记类型和颜色。

stem(axes_handles,…) 将图形绘制到axes_handles表示的坐标系中。

h=stem(…) 将一个stemseries对象句柄矢量返回到h中,Y中每列数据有一个句柄。

下面是创建一幅火柴杆图的例子,表示0和2π之间线性间隔的10个值的余弦值。注意,设置基线的线型时,首先用stemseries对象的BaseLine属性获取基线的句柄。

code.matlab
t=linspace(-2*pi,2*pi,10);
h=stem(t,cos(t),'fill','--');
set(get(h,'BaseLine'),'LineStyle',':')
set(h,'MarkerFaceColor','red')

生成图2-11。

Document Image
\[\]

图2-11 火柴杆图

下面用一个两列矩阵创建火柴杆图。此时,stem函数创建两个stemseries对象,一列数据对应一个对象。这两个对象的句柄都返回到输出变量h中。

code.matlab
x=0:25;
y=[exp(-.07*x).*cos(x);exp(.05*x).*cos(x)]';
h=stem(x,y);
set(h(1),'MarkerFaceColor','blue')
set(h(2),'MarkerFaceColor','red','Marker','square')

生成图2-12。

Document Image
\[\]

图2-12 复合火柴杆图