Contour plot on a surface plot

14 views (last 30 days)
Tomas Altea
Tomas Altea on 19 Nov 2021
Answered: KSSV on 22 Nov 2021
Hi everyone,
I have imported a 2D surface comsol matrix data in a three-column format (x-coordinate, y-coordinate and color data) and I've plotted it using this code:
A = load('Comsol_surf.txt');
x = A(:,1);
y = A(:,2);
z = A(:,3);
tri = delaunay(x,y);
figure
h = trisurf(tri,x,y,z,'EdgeColor','none');
axis vis3d
view(0,90)
colormap turbo
a = colorbar('eastoutside');
Now I would like to insert a contour plot, also imported from a comsol data matrix in the same format, above the surface plot. I have tried several ways but haven't gotten good results. Can someone help me? Thanks in advance
  2 Comments
Tomas Altea
Tomas Altea on 22 Nov 2021
I've attached it now, sorry for the wait

Sign in to comment.

Answers (1)

KSSV
KSSV on 22 Nov 2021
A = load('Comsol_surf.txt');
x = A(:,1);
y = A(:,2);
z = A(:,3);
%
xg = linspace(min(x),max(x),1000) ;
yg = linspace(min(y),max(y),1000) ;
[X,Y] = meshgrid(xg,yg) ;
Z = griddata(x,y,z,X,Y) ;
figure(1)
pcolor(X,Y,Z)
shading interp
figure(2)
contour(X,Y,Z)
figure(3)
contourf(X,Y,Z)
figure(4)
surf(X,Y,Z)
shading interp
If you want to use contour on unstructured grid without converting it into a structured grid, you can use:

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!