Plot 3-D discrete sequence data
collapse all in page
Syntax
stem3(Z)
stem3(X,Y,Z)
stem3(___,"filled")
stem3(___,LineSpec)
stem3(tbl,xvar,yvar,zvar)
stem3(___,Name,Value)
stem3(ax,___)
h = stem3(___)
Description
Vector and Matrix Data
example
stem3(Z)
plots entriesin Z
as stems extending from the xy-planeand terminating with circles at the entry values. The stem locationsin the xy-plane are automatically generated.
example
stem3(X,Y,Z)
plotsentries in Z
as stems extending from the xy-planewhere X
and Y
specify the stemlocations in the xy-plane. The inputs X
, Y
,and Z
must be vectors or matrices of the same size.
example
stem3(___,
fills the circles. Use this option with any of the input argument combinations in the previous syntaxes."filled"
)
example
stem3(___,LineSpec)
specifiesthe line style, marker symbol, and color.
Table Data
example
stem3(tbl,xvar,yvar,zvar)
plots the variables xvar
, yvar
, and zvar
from the table tbl
. Specify one table variable for each dimension. (since R2022b)
Additional Options
example
stem3(___,Name,Value)
modifies the stem chart using one or more name-value pair arguments.
example
stem3(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 = stem3(___)
returnsthe Stem
object h
.
Examples
collapse all
Row Vector Input
Open Live Script
Create a 3-D stem plot of cosine values between and with a row vector input.
figureX = linspace(-pi/2,pi/2,40);Z = cos(X);stem3(Z)
stem3
plots elements of Z
against the same y value at equally space x values.
Column Vector Input
Open Live Script
Create a 3-D stem plot of cosine values between and with a column vector input.
figureX = linspace(-pi/2,pi/2,40)';Z = cos(X);stem3(Z)
stem3
plots elements of Z
against the same x value at equally space y values.
Matrix Input
Open Live Script
Create a 3-D stem plot of sine and cosine values between and with a matrix input.
figureX = linspace(-pi/2,pi/2,40);Z = [sin(X); cos(X)];stem3(Z)
stem3
plots each row of Z
against the same y value at equally space x values.
Specify Stem Locations with Vector Inputs
Create a 3-D stem plot and specify the stem locations along a curve. Use view
to adjust the angle of the axes in the figure.
figureX = linspace(-5,5,60);Y = cos(X);Z = X.^2;stem3(X,Y,Z)view(-8,30)
X
and Y
determine the stem locations. Z
determines the marker heights.
Specify Stem Locations with Matrix Inputs
Open Live Script
Create a 3-D stem plot with matrix data and specify the stem locations in the xy-plane.
figure[X,Y] = meshgrid(0:.1:1);Z = exp(X+Y);stem3(X,Y,Z)
X
and Y
determine the stem locations. Z
determines the marker heights.
Fill in Markers
Open Live Script
Create a 3-D stem plot of cosine values between and and fill in the markers.
X = linspace(-pi,pi,40);Z = cos(X);stem3(Z,'filled')
Line Style, Marker Symbol, and Color Options
Open Live Script
Create a 3-D stem plot of cosine values between and . Use a dashed line style for the stem, set the marker symbols to stars, and set the color to magenta.
figureX = linspace(-pi,pi,40);Z = cos(X);stem3(Z,'--*m')
To specify only two of the three LineSpec
options, omit the third option from the character vector. For example, '*m'
sets the marker symbol and the color and uses the default line style.
Line Style, Marker Symbol, and Color Options
Open Live Script
Create a 3-D stem plot and specify the stem locations along a circle. Set the stem to a dotted line style, the marker symbols to stars, and the color to magenta.
figuretheta = linspace(0,2*pi);X = cos(theta);Y = sin(theta);Z = theta;stem3(X,Y,Z,':*m')
X
and Y
determine the stem locations. Z
determines the marker heights.
Additional Style Options
Open Live Script
Create a 3-D stem plot of cosine values between and . Set the marker symbols to squares with green faces and magenta edges.
figureX = linspace(-pi,pi,40);Z = cos(X);stem3(Z,'Marker','s',... 'MarkerEdgeColor','m',... 'MarkerFaceColor','g')
Plot Data from a Table
Open Live Script
Since R2022b
A convenient way to plot data from a table is to pass the table to the stem3
function and specify the variables to plot.
Read weather.csv
as a timetable tbl
. Then display the first three rows of the table.
tbl = readtimetable("weather.csv");head(tbl,3)
Time WindDirection WindSpeed Humidity Temperature RainInchesPerMinute CumulativeRainfall PressureHg PowerLevel LightIntensity ____________________ _____________ _________ ________ ___________ ___________________ __________________ __________ __________ ______________ 25-Oct-2021 00:00:09 46 1 84 49.2 0 0 29.96 4.14 0 25-Oct-2021 00:01:09 45 1.6 84 49.2 0 0 29.96 4.139 0 25-Oct-2021 00:02:09 36 2.2 84 49.2 0 0 29.96 4.138 0
Plot the Time
variable on the x-axis, the Temperature
variable on the y-axis, and the CumulativeRainfall
variable on the z-axis. Return the Stem
object as h
. Notice that the axis labels match the table variable names.
h = stem3(tbl,"Time","Temperature","CumulativeRainfall");
Change the color of the plot to a shade of red by setting the Color
property.
h.Color = [0.7 0 0.2];
Stem Plot in Specific Axes
Open Live Script
Since 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 stem3
.
X = linspace(-2,2,50);Y = X.^3;Z = exp(X);tiledlayout(2,1)% Top plotax1 = nexttile;stem(ax1,X,Z)% Bottom plotax2 = nexttile; stem3(ax2,X,Y,Z)
Modify Stem Series After Creation
Open Live Script
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');
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.
h.Color = 'm';h.MarkerFaceColor = 'y';view(-10,35)
Input Arguments
collapse all
Z
— Data sequence to display
vector or matrix
Data sequence to display, specified as a vector or matrix. stem3
plotseach element in Z
as a stem extending from the xy-planeand terminating at the data value.
If
Z
is a row vector,stem3
plotsall elements against the same y value at equallyspaced x values.If
Z
is a column vector,stem3
plotsall elements against the same x value at equallyspaced y values.If
Z
is a matrix,stem3
plotseach row ofZ
against the same y valueat equally spaced x values.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| categorical
| datetime
| duration
X
— Locations to plot values of Z
vector or matrix
Locations to plot values of Z
, specified as a vector or a matrix. Inputs X
, Y
and Z
must be vectors or matrices of the same size.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| categorical
| datetime
| duration
Y
— Locations to plot values of Z
vector or matrix
Locations to plot values of Z
, specifiedas a vector or a matrix. Inputs X
, Y
and Z
mustbe vectors or matrices of the same size.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| categorical
| datetime
| duration
LineSpec
— Line style, marker, and color
string scalar | character vector
Line style, marker, and color, specified as a string scalar or character vector containing symbols. The symbols can appear in any order. You do not need to specify all three characteristics (line style, marker, and color). For example, if you omit the line style and specify the marker, then the plot shows only the marker and no line.
Example: "--or"
is a red dashed line with circle markers.
Line Style | Description | Resulting Line |
---|---|---|
"-" | Solid line | |
"--" | Dashed line | |
":" | Dotted line | |
"-." | Dash-dotted line |
Marker | Description | Resulting Marker |
---|---|---|
"o" | Circle | |
"+" | Plus sign | |
"*" | Asterisk | |
"." | Point | |
"x" | Cross | |
"_" | Horizontal line | |
"|" | Vertical line | |
"square" | Square | |
"diamond" | Diamond | |
"^" | Upward-pointing triangle | |
"v" | Downward-pointing triangle | |
">" | Right-pointing triangle | |
"<" | Left-pointing triangle | |
"pentagram" | Pentagram | |
"hexagram" | Hexagram |
Color Name | Short Name | RGB Triplet | Appearance |
---|---|---|---|
"red" | "r" | [1 0 0] | |
"green" | "g" | [0 1 0] | |
"blue" | "b" | [0 0 1] | |
"cyan" | "c" | [0 1 1] | |
"magenta" | "m" | [1 0 1] | |
"yellow" | "y" | [1 1 0] | |
"black" | "k" | [0 0 0] | |
"white" | "w" | [1 1 1] | |
tbl
— Source table
table | timetable
Source table containing the data to plot, specified as a table or a timetable.
zvar
— Table variable containing z-coordinates
string scalar | character vector | pattern | numeric scalar | logical vector | vartype()
Table variable containing the z-coordinates, specified using one of the indexing schemes from the table. Specify one variable only.
Indexing Scheme | Examples |
---|---|
Variable name:
|
|
Variable index:
|
|
Variable type:
|
|
The table variable you specify can contain numeric, logical, categorical, datetime, or duration values.
Example: stem3(tbl,"x","y","z")
specifies the table variable named z
for the z-coordinates.
xvar
— Table variable containing x-coordinates
string scalar | character vector | pattern | numeric scalar | logical vector | vartype()
Table variable containing the x-coordinates, specified using one of the indexing schemes from the table. Specify one variable only.
Indexing Scheme | Examples |
---|---|
Variable name:
|
|
Variable index:
|
|
Variable type:
|
|
The table variable you specify can contain numeric, logical, categorical, datetime, or duration values.
Example: stem3(tbl,"x","y","z")
specifies the table variable named x
for the x-coordinates.
yvar
— Table variable containing y-coordinates
string scalar | character vector | pattern | numeric scalar | logical vector | vartype()
Table variable containing the y-coordinates, specified using one of the indexing schemes from the table. Specify one variable only.
Indexing Scheme | Examples |
---|---|
Variable name:
|
|
Variable index:
|
|
Variable type:
|
|
The table variable you specify can contain numeric, logical, categorical, datetime, or duration values.
Example: stem3(tbl,"x","y","z")
specifies the table variable named y
for the y-coordinates.
ax
— Axes
object
Axes
object
Axes
object. If you do not specify the axes, then stem
plots into the current axes.
Name-Value Arguments
Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN
, where Name
is the argument name and Value
is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose Name
in quotes.
Example: "LineStyle",":","MarkerFaceColor","red"
plots the stem as a dotted line and sets the marker face color to red.
The properties listed here are only a subset. For a completelist, see Stem Properties.
LineWidth
— Line width of stem and marker edge
0.5
(default) | positive value
Line width of stem and marker edge, specified as a positivevalue in point units.
Example: 0.75
Color
— Stem color
[0 0 0]
(default) | RGB triplet | hexadecimal color code | "r"
| "g"
| "b"
| ...
Stem color, specified as an RGB triplet, a hexadecimal color code, a color name, or a short name.
For a custom color, specify an RGB triplet or a hexadecimal color code.
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]
.A hexadecimal color code is a string scalar or character vector that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Therefore, the color codes"#FF8800"
,"#ff8800"
,"#F80"
, and"#f80"
are equivalent.
Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.
Color Name | Short Name | RGB Triplet | Hexadecimal Color Code | Appearance |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" | |
"none" | Not applicable | Not applicable | Not applicable | No color |
Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB® uses in many types of plots.
RGB Triplet | Hexadecimal Color Code | Appearance |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
Example: "blue"
Example: [00 1]
Example: "#0000FF"
Marker
— Marker symbol
"o"
(default) | "+"
| "*"
| "."
| "x"
| ...
Marker symbol, specified as one of the markers listed in thistable.
Marker | Description | Resulting Marker |
---|---|---|
"o" | Circle | |
"+" | Plus sign | |
"*" | Asterisk | |
"." | Point | |
"x" | Cross | |
"_" | Horizontal line | |
"|" | Vertical line | |
"square" | Square | |
"diamond" | Diamond | |
"^" | Upward-pointing triangle | |
"v" | Downward-pointing triangle | |
">" | Right-pointing triangle | |
"<" | Left-pointing triangle | |
"pentagram" | Pentagram | |
"hexagram" | Hexagram | |
"none" | No markers | Not applicable |
Example: "+"
Example: "diamond"
Output Arguments
collapse all
h
— Stem
object
Stem
Stem
object. This is a unique identifier, whichyou can use to modify the properties of the Stem
objectafter it is created.
Extended Capabilities
GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
Usage notes and limitations:
This function accepts GPU arrays, but does not run on a GPU.
For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.
Usage notes and limitations:
This function operates on distributed arrays, but executes in the client MATLAB.
For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Version History
Introduced before R2006a
expand all
R2022b: Expanded data type support
The x
, y
, and z
input arguments can be any numeric, logical, datetime, duration, or categorical values. In previous releases, only numeric and logical values were supported.
R2022b: Pass tables directly to stem3
Create plots by passing a table to the stem3
function followed by the variables you want to plot. When you specify your data as a table, the axis labels and the legend (if present) are automatically labeled using the table variable names.
See Also
Functions
- bar | plot | stairs | stem
Properties
- Stem Properties
Topics
- Combine Line and Stem Plots
- Plots That Support Tables
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- Deutsch
- English
- Français
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本 (日本語)
- 한국 (한국어)
Contact your local office