stem3
Plot 3-D discrete sequence data
Syntax
Description
Vector and Matrix Data
stem3(
plots entries
in Z
)Z
as stems extending from the xy-plane
and terminating with circles at the entry values. The stem locations
in the xy-plane are automatically generated.
stem3(___,
fills the circles.
Use this option with any of the input argument combinations in the previous
syntaxes."filled"
)
Table Data
Additional Options
stem3(___,
modifies the stem chart using one or more name-value pair arguments. Name,Value
)
stem3(
plots into
the axes specified by ax
,___)ax
instead of into the current axes
(gca
). The option, ax
, can precede any
of the input argument combinations in the previous syntaxes.
Examples
Row Vector Input
Create a 3-D stem plot of cosine values between and with a row vector input.
figure X = 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
Create a 3-D stem plot of cosine values between and with a column vector input.
figure X = 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
Create a 3-D stem plot of sine and cosine values between and with a matrix input.
figure X = 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.
figure X = 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
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
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
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.
figure
X = 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
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.
figure
theta = 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
Create a 3-D stem plot of cosine values between and . Set the marker symbols to squares with green faces and magenta edges.
figure X = linspace(-pi,pi,40); Z = cos(X); stem3(Z,'Marker','s',... 'MarkerEdgeColor','m',... 'MarkerFaceColor','g')
Plot Data from a Table
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
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 plot ax1 = nexttile; stem(ax1,X,Z) % Bottom plot ax2 = nexttile; stem3(ax2,X,Y,Z)
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');
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
Z
— Data sequence to display
vector or matrix
Data sequence to display, specified as a vector or matrix. stem3
plots
each element in Z
as a stem extending from the xy-plane
and terminating at the data value.
If
Z
is a row vector,stem3
plots all elements against the same y value at equally spaced x values.If
Z
is a column vector,stem3
plots all elements against the same x value at equally spaced y values.If
Z
is a matrix,stem3
plots each row ofZ
against the same y value at 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
, 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
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 complete list, see Stem Properties.
LineStyle
— Line style
"-"
(default) | "--"
| ":"
| "-."
| "none"
Line style, specified as one of the options listed in this table.
Line Style | Description | Resulting Line |
---|---|---|
"-" | Solid line |
|
"--" | Dashed line |
|
":" | Dotted line |
|
"-." | Dash-dotted line |
|
"none" | No line | No line |
LineWidth
— Line width of stem and marker edge
0.5
(default) | positive value
Line width of stem and marker edge, specified as a positive value 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: [0
0 1]
Example: "#0000FF"
Marker
— Marker symbol
"o"
(default) | "+"
| "*"
| "."
| "x"
| ...
Marker symbol, specified as one of the markers listed in this table.
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"
MarkerSize
— Marker size
6
(default) | positive value
Marker size, specified as a positive value in points, where 1 point = 1/72 of an inch.
MarkerEdgeColor
— Marker outline color
"auto"
(default) | RGB triplet | hexadecimal color code | "r"
| "g"
| "b"
| ...
Marker outline color, specified as "auto"
, an RGB triplet, a
hexadecimal color code, a color name, or a short name. The default value of
"auto"
uses the same color as the Color
property.
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" |
MarkerFaceColor
— Marker fill color
"none"
(default) | "auto"
| RGB triplet | hexadecimal color code | "r"
| "g"
| "b"
| ...
Marker fill color, specified as "auto"
, an RGB triplet, a hexadecimal
color code, a color name, or a short name. The "auto"
option uses the
same color as the Color
property of the parent axes. If you specify
"auto"
and the axes plot box is invisible, the marker fill color is
the color of the figure.
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" |
Output Arguments
h
— Stem
object
Stem
Stem
object. This is a unique identifier, which
you can use to modify the properties of the Stem
object
after it is created.
Extended Capabilities
GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
The stem3
function
supports GPU array input with these 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 R2006aR2022b: 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
Properties
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
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
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
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)