3D Mesh Plots in MATLAB®
How to make 3D Mesh Plots plots in MATLAB® with Plotly.
Create Mesh Plot
Create three matrices of the same size. Then plot them as a mesh plot. The plot uses Z
for both height and color.
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z);
fig2plotly(gcf, 'TreatAs', 'mesh');
Specify Colormap Colors for Mesh Plot
Specify the colors for a mesh plot by including a fourth matrix input, C
. The mesh plot uses Z
for height and C
for color. Specify the colors using a colormap, which uses single numbers to stand for colors on a spectrum. When you use a colormap, C
is the same size as Z
. Add a color bar to the graph to show how the data values in C
correspond to the colors in the colormap.
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C = X.*Y;
mesh(X,Y,Z,C);
colorbar;
fig2plotly(gcf, 'TreatAs', 'mesh');
Specify True Colors for Mesh Plot
Specify the colors for a mesh plot by including a fourth matrix input, CO
. The mesh plot uses Z
for height and CO
for color. Specify the colors using truecolor, which uses triplets of numbers to stand for all possible colors. When you use truecolor, if Z
is m
-by-n
, then CO
is m
-by-n
-by-3. The first page of the array indicates the red component for each color, the second page indicates the green component, and the third page indicates the blue component.
[X,Y,Z] = peaks(25);
CO(:,:,1) = zeros(25); % red
CO(:,:,2) = ones(25).*linspace(0.5,0.6,25); % green
CO(:,:,3) = ones(25).*linspace(0,1,25); % blue
mesh(X,Y,Z,CO);
fig2plotly(gcf, 'TreatAs', 'mesh');
Modify Mesh Plot Appearance
Create a semitransparent mesh surface by specifying the FaceAlpha
name-value pair with 0.5
as the value. To allow further modifications, assign the surface object to the variable s
.
[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
s = mesh(X,Y,Z,'FaceAlpha','0.5')
fig2plotly(gcf, 'TreatAs', 'mesh');
s = all properties
Use s
to access and modify properties of the mesh plot after it is created. For example, add color to the face of the mesh plot by setting the FaceColor
property.
[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
s = mesh(X,Y,Z,'FaceAlpha','0.5')
s.FaceColor = 'flat';
fig2plotly(gcf, 'TreatAs', 'mesh');
s = all properties