stem

Plot discrete sequence data

Syntax

Description

example

stem(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.

example

stem(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.

example

stem(___,'filled') fills the circles. Use this option with any of the input argument combinations in the previous syntaxes.

example

stem(___,LineSpec) specifies the line style, marker symbol, and color.

example

stem(___,Name,Value) specifies stem series properties using one or more Name,Value pair arguments.

example

stem(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.

example

h = 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.

Examples

expand all

Plot Single Data Series

Create a stem plot of 50 data values between $-2\pi$ and $2\pi$.

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 Series

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 values

Plot 50 data values of cosine evaluated between 0 and $2\pi$ 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 values

Plot 50 data values of sine and cosine evaluated between 0 and $2\pi$ 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 values

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 Markers

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 Options

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 Options

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 Plot

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)

Return Stem Series Handle

Create a stem plot and return the two stem series handles.

figure
X = 0:25;
Y = [cos(X); exp(0.05*X)]';
h = stem(X,Y);

The stem function creates a stem series for each column of data. The output argument, h, contains the stem series handles.

Use the handle of the first stem series, h(1), to set its color to green. Use the handle of the second stem series, h(2), to change its markers 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 Properties

Create a stem plot and change properties of the baseline.

figure
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 Level

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);

Input Arguments

expand all

Y — Data sequence to displayvector or matrix

Data sequence to display, specified as a vector or matrix. When Y is a vector, stem creates one stem series. When Y is a matrix, stem creates a separate stem series for each column.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

X — Locations to plot data values in Y vector or matrix

Locations to plot data values in Y, specified as a vector or matrix. When Y is a vector, X must be a vector of the same size. When Y is a matrix, X must be a matrix of the same size, or a vector whose length equals the number of rows in Y.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

LineSpec — Line style, marker symbol, and colorstring

Line style, marker symbol, and color, specified as a string. For more information on line style, marker symbol, and color options see LineSpec.

Example: ':*r'

ax — Axes objectobject

Axes object. Use ax to modify the stem series after it is created.

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: 'LineStyle',':','MarkerFaceColor','red' plots the stem as a dotted line and colors the marker face red.

The stem series properties listed here are only a subset. For a complete list, see Stem Series Properties.

'LineStyle' — Line style'-' (default) | '--' | ':' | '-.' | 'none'

Line style, specified as one of the line style strings listed in this table.

StringLine StyleResulting Line
'-'Solid line

'--'Dashed line

':'Dotted line

'-.'Dash-dotted line

'none'No lineNo line

'LineWidth' — Line width0.5 (default) | positive value

Line width, specified as a positive value in point units. If the line has markers, then the line width also affects the marker edges.

Example: 0.75

'Color' — Stem color[0 0 0] (default) | RGB triplet | color string | 'none'

Stem color, specified as an RGB triplet, a color string, or 'none'. If you specify the Color as 'none', then the stems are invisible.

An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1], for example, [0.4 0.6 0.7]. This table lists RGB triplet values that have equivalent color strings.

Long NameShort NameRGB Triplet
'yellow''y'[1 1 0]
'magenta''m'[1 0 1]
'cyan''c'[0 1 1]
'red''r'[1 0 0]
'green''g'[0 1 0]
'blue''b'[0 0 1]
'white''w'[1 1 1]
'black'k'[0 0 0]

Example: 'blue'

Example: [0 0 1]

'Marker' — Marker symbol'o' (default) | '+' | '*' | '.' | 'x' | ...

Marker symbol, specified as one of the marker strings listed in this table.

StringMarker Symbol
'o'Circle
'+'Plus sign
'*'Asterisk
'.'Point
'x'Cross
'square' or 's'Square
'diamond' or 'd'Diamond
'^'Upward-pointing triangle
'v'Downward-pointing triangle
'>'Right-pointing triangle
'<'Left-pointing triangle
'pentagram' or 'p'Five-pointed star (pentagram)
'hexagram' or 'h'Six-pointed star (hexagram)
'none'No markers

Example: '+'

Example: ‘diamond'

'MarkerSize' — Marker size6 (default) | positive value

Marker size, specified as a positive value in point units.

Example: 10

'MarkerEdgeColor' — Marker outline color'auto' (default) | 'none' | RGB triplet | color string

Marker outline color, specified as one of these values:

  • 'auto' — Use the same color as the Color property.

  • 'none' — Use no color, which makes unfilled markers invisible.

  • RGB triplet or color string — Use the specified color.

An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1], for example, [0.4 0.6 0.7]. This table lists RGB triplet values that have equivalent color strings.

Long NameShort NameRGB Triplet
'yellow''y'[1 1 0]
'magenta''m'[1 0 1]
'cyan''c'[0 1 1]
'red''r'[1 0 0]
'green''g'[0 1 0]
'blue''b'[0 0 1]
'white''w'[1 1 1]
'black'k'[0 0 0]

Example: [0.5 0.5 0.5]

Example: 'blue'

'MarkerFaceColor' — Marker fill color'none' (default) | 'auto' | RGB triplet | color string

Marker fill color, specified as one of these values:

  • 'none' — Use no color, which makes the interior invisible.

  • 'auto' — Use the same color as the Color property for the axes.

  • RGB triplet or color string — Use the specified color.

An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1], for example, [0.4 0.6 0.7]. This table lists RGB triplet values that have equivalent color strings.

Long NameShort NameRGB Triplet
'yellow''y'[1 1 0]
'magenta''m'[1 0 1]
'cyan''c'[0 1 1]
'red''r'[1 0 0]
'green''g'[0 1 0]
'blue''b'[0 0 1]
'white''w'[1 1 1]
'black'k'[0 0 0]

Example: [0.3 0.2 0.1]

Example: 'green'

Output Arguments

expand all

h — Stem series objectscalar or column vector

Stem series objects, returned as a scalar or column vector. This is a unique identifier, which you can use to modify the properties of a specific stem series after it is created.

See Also

Functions

Properties

Was this topic helpful?