Contour in a 3D surface plot

5 views (last 30 days)
Zhen Liu
Zhen Liu on 30 May 2020
Commented: Zhen Liu on 21 Jun 2020
I am trying to creat a 3D surface plot with the contour of the surface projected on the top face (XY plane in Z = max)
Following is the code used:
f = figure('PaperSize',[8 8]);
Z = table2array(Table);
Z = Z(:,2:N+1);
Y = Table.Wavenumber_cm_1_;
X = [1:N];
SurfacePlot = surf(X,Y,Z);
ylabel('Wavenumber[cm^-1]');
xlabel('Aliquot Number');
zlabel('Absorbance[a.u.]');
colormap jet
shading interp
grid off;
hold on
contourf(X,Y,Z);
hold off
The problem is that the contour is created on XY plate (under the surface plot). How can move the contour up to the top surface?
Thank you.

Accepted Answer

Ameer Hamza
Ameer Hamza on 31 May 2020
Edited: Ameer Hamza on 31 May 2020
contour() object have an undocumented property named ContourZLevel: https://stackoverflow.com/a/8055468/4346708. For example,
[X,Y] = meshgrid(1:0.1:10,1:0.1:20);
Z = sin(X) + cos(Y);
ax = axes();
hold on
view(3);
s1 = surf(X,Y,Z);
[~, s2] = contourf(X,Y,Z);
s2.ContourZLevel = 5;
  1 Comment
Zhen Liu
Zhen Liu on 21 Jun 2020
Thank you so much.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!