MATLAB Answers


How do I add a 2D Plot along with a surface or mesh plot in MATLAB?

Asked by Bharath Lohray on 30 Apr 2013

I would like to have a 2D plot along with a 3D surface or mesh plot - shown by the blue line I drew on the surface plot below. How do I get it?

1 Answer

Answer by Kye Taylor
on 1 May 2013
 Accepted answer

Does this get you started?

% create figure
% Generate data to make a surface 
x = -1:0.1:1;
y = -1:0.1:1;
[X,Y] = meshgrid(x,y);
Z = X.^2 + Y.^2 - 1;
% visualize 3D surface
% Generate data to make line plot in plane z = minimumZValue
minimumZValue = min(Z(:));
t0 = linspace(0,2*pi);
x0 = .8*cos(t0);
y0 = .8*sin(t0);
% visualize line plot
% Generate data to make line plot in plane x = minimumXValue
minimumXValue = min(X(:));
y00 = linspace(min(Y(:)),max(Y(:)));
% will be shifted to make z = minimumZValue the new z = 0 
z00 = exp(-5*y00.^2); 
z00 = z00 + minimumZValue; % comment this out to see effect
grid on


Notice that Kye has used a 3-dimensional line rather than a 2-dimensional one. The equivalent higher-level routine would be plot3().

If you attempt to put a 2 dimensional plot in with a 3 dimensional plot, then although you might be able to get it to work with a specific view, it would stop working if you rotated the view at all.

Hi, It works on being rotated as well - unless the answer got edited after your comment.

I got it to work, but My data had two different ranges. This shrinks my plot to a ceiling surface. Is there a way to plot with 2 Y axis? The continuing

Log in to comment.

Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!