3D Stem Plots in MATLAB®

How to make 3D Stem Plots in MATLAB® with Plotly.


Row Vector Input

Create a 3-D stem plot of cosine values between -π/2 and π/2 with a row vector input.

figure
X = linspace(-pi/2,pi/2,40);
Z = cos(X);
stem3(Z)

fig2plotly(gcf);

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 -π/2 and π/2 with a column vector input.

figure
X = linspace(-pi/2,pi/2,40)';
Z = cos(X);
stem3(Z)

fig2plotly(gcf);

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 -π/2 and π/2 with a matrix input.

figure
X = linspace(-pi/2,pi/2,40);
Z = [sin(X); cos(X)];
stem3(Z)

fig2plotly(gcf);

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)

fig2plotly(gcf);

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)

fig2plotly(gcf);

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

fig2plotly(gcf);

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

fig2plotly(gcf);

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.

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

fig2plotly(gcf);

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

fig2plotly(gcf);

Stem Plot in Specific Axes

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

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