You are here : matlabSignal Processingstem

stem() - Signal Processing

examplestem(Y) plots the
data sequence, Y, as stems that extend from a baseline
along the x-axis. The data values are indicated
by circles terminating each stem.If Y is a vector, then the x-axis
scale ranges from 1 to length(Y).If Y is a matrix, then stem plots
all elements in a row against the same x value,
and the x-axis scale ranges from 1 to the number
of rows in Y.
examplestem(X,Y) plots
the data sequence, Y, at values specified by X.
The X and Y inputs must be vectors
or matrices of the same size. Additionally, X can
be a row or column vector and Y must be a matrix
with length(X) rows.If X and Y are
both vectors, then stem plots entries in Y against
corresponding entries in X.If X is a vector and Y is
a matrix, then stem plots each column of Y against
the set of values specified by X, such that all
elements in a row of Y are plotted against the
same value. If X and Y are
both matrices, then stem plots columns of Y against
corresponding columns of X. 
examplestem(___,'filled') fills
the circles. Use this option with any of the input argument combinations
in the previous syntaxes.
examplestem(___,LineSpec) specifies
the line style, marker symbol, and color. 
examplestem(___,Name,Value) specifies
stem series properties using one or more Name,Value pair
arguments. 

examplestem(ax,___) plots
into the axes specified by ax instead of into the
current axes (gca). The option, ax,
can precede any of the input argument combinations in the previous
syntaxes.

exampleh = stem(___) returns
a vector of stem series handles in h. When multiple
stem series are present, you can make changes to properties of a specific
stem series by specifying a particular handle.


Syntax

stem(Y) examplestem(X,Y) examplestem(___,'filled') examplestem(___,LineSpec) examplestem(___,Name,Value) examplestem(ax,___) exampleh = stem(___) example


Example

Plot Single Data SeriesOpen This Example
Create a stem plot of 50 data values between 
 and 
.
figure
Y = linspace(-2*pi,2*pi,50);
stem(Y)

Data values are plotted as stems extending from the baseline and terminating at the data value. The length of Y automatically determines the position of each stem on the x-axis.Plot Multiple Data SeriesOpen This Example
Plot two data series using a two-column matrix.
figure
X = linspace(0,2*pi,50)';
Y = [cos(X), 0.5*sin(X)];
stem(Y)

Each column of Y is plotted as a separate series, and entries in the same row of Y are plotted against the same x value. The number of rows in Y automatically generates the position of each stem on the x-axis.Plot Single Data Series at Specified x valuesOpen This Example
Plot 50 data values of cosine evaluated between 0 and 
 and specify the set of x values for the stem plot.
figure
X = linspace(0,2*pi,50)';
Y = cos(X);
stem(X,Y)

The first vector input determines the position of each stem on the x-axis.Plot Multiple Data Series at Specified x valuesOpen This Example
Plot 50 data values of sine and cosine evaluated between 0 and 
 and specify the set of x values for the stem plot.
figure
X = linspace(0,2*pi,50)';
Y = [cos(X), 0.5*sin(X)];
stem(X,Y)

The vector input determines the x-axis positions for both data series.Plot Multiple Data Series at Unique Sets of x valuesOpen This Example
Plot 50 data values of sine and cosine evaluated at different sets of x values. Specify the corresponding sets of x values for each series.
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)

Each column of X is plotted against the corresponding column of Y.Fill in Plot MarkersOpen This Example
Create a stem plot and fill in the circles that terminate each stem.
X = linspace(0,10,20)';
Y = (exp(0.25*X));
stem(X,Y,'filled')

Specify Stem and Marker OptionsOpen This Example
Create a stem plot and set the line style to a dotted line, the marker symbols to diamonds, and the color to red using the LineSpec option.
figure
X = linspace(0,2*pi,50)';
Y = (exp(X).*sin(X));
stem(X,Y,':diamondr')

To color the inside of the diamonds, use the 'fill' option.Specify Additional Stem and Marker OptionsOpen This Example
Create a stem plot and set the line style to a dot-dashed line, the marker face color to red, and the marker edge color to green using Name,Value pair arguments.
figure
X = linspace(0,2*pi,25)';
Y = (cos(2*X));
stem(X,Y,'LineStyle','-.',...
     'MarkerFaceColor','red',...
     'MarkerEdgeColor','green')

The stem remains the default color.Specify Axes for Stem PlotOpen This Example
Create a figure with two subplots and return the handles to each axes, s(1) and s(2). Create a stem plot in the lower subplot by referring to its axes handle, s(2).figure
s(1) = subplot(2,1,1);
s(2) = subplot(2,1,2);

X = 0:25;
Y = [exp(0.1*X); -exp(.05*X)]';
stem(s(2),X,Y)

Modify Stem Series After CreationOpen This Example
Create a stem plot.
X = 0:25;
Y = [cos(X); exp(0.05*X)]';
h = stem(X,Y);

The stem function creates a stem series object for each column of data. The output argument, h, contains the two stem series objects.Set the first stem series color to green. Change the markers of the second stem series to squares. Starting in R2014b, you can use dot notation to set properties. If you are using an earlier release, use the set function instead.h(1).Color = 'green';
h(2).Marker = 'square';

Adjust Baseline PropertiesOpen This Example
Create a stem plot and change properties of the baseline.
X = linspace(0,2*pi,50);
Y = exp(0.3*X).*sin(3*X);
h = stem(X,Y);

Change the line style of the baseline. Starting in R2014b, you can use dot notation to set properties. If you are using an earlier release, use the set function instead.hbase = h.BaseLine;
hbase.LineStyle = '--';

Hide the baseline by setting its Visible property to 'off' .hbase.Visible = 'off';

Change Baseline LevelOpen This Example
Create a stem plot with a baseline level at 2.
X = linspace(0,2*pi,50)';
Y = (exp(0.3*X).*sin(3*X));
stem(X,Y,'BaseValue',2);

Related ExamplesCombine Line and Stem Plots


Output / Return Value


Limitations


Alternatives / See Also


Reference