Stem Plots in MATLAB®

How plot discrete sequence data with Stem plots in MATLAB® with Plotly.


Plot Single Data Series

Create a stem plot of 50 data values between -2π and 2π.

figure
Y = linspace(-2*pi,2*pi,50);
stem(Y)

fig2plotly(gcf);

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)

fig2plotly(gcf);

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π and specify the set of x values for the stem plot.

figure
X = linspace(0,2*pi,50)';
Y = cos(X);
stem(X,Y)

fig2plotly(gcf);

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

fig2plotly(gcf);

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)

fig2plotly(gcf);

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

fig2plotly(gcf);

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

fig2plotly(gcf);

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

fig2plotly(gcf);

The stem remains the default color.

Specify Axes for Stem Plot

Starting in R2019b, you can display a tiling of plots using the tiledlayout and nexttile functions. Call the tiledlayout function to create a 2-by-1 tiled chart layout. Call the nexttile function to create the axes objects ax1 and ax2. Create separate stem plots in the axes by specifying the axes object as the first argument to 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)

fig2plotly(gcf);

Modify Stem Series After Creation

Create a 3-D stem plot and return the stem series object.

X = linspace(0,2);
Y = X.^3;
Z = exp(X).*cos(Y);
h = stem3(X,Y,Z,'filled');

fig2plotly(gcf);

Change the color to magenta and set the marker face color to yellow. Use view to adjust the angle of the axes in the figure. Use dot notation to set properties.

X = linspace(0,2);
Y = X.^3;
Z = exp(X).*cos(Y);
h = stem3(X,Y,Z,'filled');

h.Color = 'm';
h.MarkerFaceColor = 'y';
view(-10,35)

fig2plotly(gcf);

Adjust Baseline Properties

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

fig2plotly(gcf);

Change the line style of the baseline. Use dot notation to set properties.

X = linspace(0,2*pi,50);
Y = exp(0.3*X).*sin(3*X);
h = stem(X,Y);

hbase = h.BaseLine; 
hbase.LineStyle = '--';

fig2plotly(gcf);

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

X = linspace(0,2*pi,50);
Y = exp(0.3*X).*sin(3*X);
h = stem(X,Y);

hbase = h.BaseLine; 
hbase.LineStyle = '--';

hbase.Visible = 'off';

fig2plotly(gcf);

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

fig2plotly(gcf);