3. Matlab Functions

Matlab stem()

Stem() method in MATLAB is a type of plotting method to represent any type of data in a discrete form. This method generates a plot in the form of vertical lines being extended from the bases line, having little circles at tips which represents the exact value of the given data. Unlike plot() function, it does not join the values points with each other to create a continuous graph, rather it emphasizes the fact that the data points are discrete, not continuous.


There are various syntax that are available to implement stem() method based on a number of vectors and attributes, used as input argument.


Where Y is a data sequence to be presented in the plot.


Where X and Y are input vectors and the plot is generated for Y data points with respect to the X data point.

Stem(X,Y,a1,a1 value, a2, avalue,…..,a,avalue)

Where X and Y are input vectors and ais the attribute name and avalue is the value corresponding to aattribute.


% Defining base line - X input vector ranging from 0 to 2*pi
X = 0 : pi/100 : 2*pi;
% Defining the Y input vector as function of X
Y = exp(-3*X/4) .* cos(2*X);
% Third, we use the 'stem' function to plot discrete values


Matlab stem()-1.1

Properties of Stem()

MATLAB incorporates different attributes for stem() method that lets user to customize the appearance of the graph plot.

Some of those properties that are widely used are described in the table given below:

ColorDecides the stem color.
ColorModeDecides on how the color property is set-auto or manual.
LineStyleDecides on the style to be adopted for stem line.
LineStyleModeDecides on how the LineStyle property is set-auto or manual.
LineWidthUsed to control the width of the marker edge and the stem.
MarkerDecides the symbol to be used as a marker.
MarkerModeTells about how the marker property is filled.
MarkerSizeDefines the size of the marker.
MarkerEdgeColorDecides on the color for the outline of the marker.
MarkerFaceColorDecides on the color to fill in the marker.
BaseValueDecides the value for baseline depending on the orientation of the plot.
BaseLineValueDecides on the value to be displayed on the baseline.
ShowBaseLineSet the visibility status of the baseline.
DisplayNameSets the label for legend in the plot.
AnnotationUsed to decide inclusion or exclusion of object from a legend.
VisibleDecides on the state of visibility for an object.
UIContextMenuSets the context menu to be displayed on right-click on the selected object
SelectionHighLightUsed to decide on displaying of selection handles when an object is selected.
ClippingUsed to restrict the object to the limits of the axes.
BusyActionDecides on how MATLAB should handle the execution of interrupting callbacks.
PickablePartsDecides on permitting clicked part of the stem object by mouse, to be captured or not.
TagUsed as an object identifier for a stem object.
UserDataUsed to store arbitrary data over a stem object.
HandleVisibilityDecides on the visibility of the object handler.

Examples of Matlab stem()

Following are the example are:

Example 1:

In the below program, stem() is used with setting the marker style diamond.


X = 0 : pi/10 : pi;
Y = (cos(X));


Matlab stem()-1.2

Example 2:

The below example demonstrates the change in the stem plot by using the attributes Linestyle, MarkerFaceColor, and MarkerEdgeColor:


% Defining base line - X input vector ranging from 0 to 2*pi
X = 0 : pi/100 : pi;
% Defining the Y input vector as function of X
Y = exp(-3*X/4) .* cos(2*X);
% Syntax is used to set LineStyle as ‘-.’, Marker color as yellow and border of %the marker as red


Matlab stem()-1.3
Types of Plots Generated Using Stem()

Types of plots generated using stem() are given below:

1. Plotting Single data series: The plot is generated for a single set of data points as shown in the below example:


DATA = linspace(-3*pi,pi,30);


Matlab stem()-1.4

2. Plotting Multiple Data Series: Stem() method supports incorporating multiple sets of data points in one single plot as demonstrated in the below example:


X = linspace(0,2*pi,50)';
% Defining 2 sets of data points as element of the vector DATA
DATA = [cos(2*X), 2*sin(X)];


Matlab stem()-1.5

3. Plotting Multiple Data Series with Distinct Set of X-values: Stem() method has been adapted to extend its feature to present multiple sets of data points with respect to a different sets of X-values.


% Defining 2 distinct sets of X-value points
xval1 = linspace(0,3*pi,50)';
xval2 = linspace(pi,2*pi,50)';
% Defining DATA1 baseline combining xval1 and xval2
DATA1 = [xval1, xval2];
% Defining 2 distinct sets of Y data points that are gives as element for DATA2
DATA2 = [sin(2*xval1), 0.4*cos(xval2)];



4. Plotting Multiple Data Series Stem within Single Layout: This feature enables the user to present multiple stem plots within one single layout.


xVAL = 0:30;
DATA1 = exp(-0.2*xVAL);
DATA2 = -exp(0.06*xVAL);
% Splitting the compete layout in 2X1 matrix
% Plotting the first stem graph in top segment
nt1 = nexttile;
% creating the axes object nt1
% Plotting the second stem graph in bottom segment
nt2 = nexttile;
% creating the axes object nt2



5. Customization of Plot After Creation: MATLAB has extended its feature for the stem method is to enable a user to customize the plot during a run time once the stem object is generated.

  • Creation of Plot:
Xval = 0:25;
%Defining 2 different set of data points
DATA = [cos(Xval); exp(0.05*Xval)]';
%Defining h to store the stem object
h = stem(Xval,DATA);
  • Customization of the Created Plot:
h(1).Color = 'black';
h(2).Marker = 'diamond';



Stem objects are considered to be unique identifiers. These allow a user to edit properties for a stem object during the run time after it is being created. It supports almost all common properties from MATLAB that are supported by a continuous plotting function plot(). In addition to those properties, it does have its own unique properties that provide a wide range of extensions to be applied to a discrete graph generated from the stem() method.

Leave a Reply

Your email address will not be published. Required fields are marked *