How to do surface plot from given set of data?

9 views (last 30 days)
I have X and Y and Z coordinates. Now i want ro do surface plot of these data, I used surf() command but its showing error. can anyone give idea how can i plot the data. I have add data for the reference.
  2 Comments
Mahmoud Ashraf
Mahmoud Ashraf on 31 Mar 2022
if the values x,y,and z is a coordinates of point i think we shoud use 3d plot instead of surface or used this line
load Data.txt % after we remove the chararcter from the txt file
surf(data);

Sign in to comment.

Accepted Answer

KSSV
KSSV on 31 Mar 2022
Edited: KSSV on 31 Mar 2022
T = readtable('data.txt') ;
x = T.(1) ;
y = T.(2) ;
z = T.(3) ;
% Plot as unstructured grid
dt = delaunayTriangulation(x,y) ;
p = dt.Points ;
tri = dt.ConnectivityList ;
F = scatteredInterpolant(x,y,z) ;
z = F(p(:,1),p(:,2)) ;
figure(1)
trisurf(tri,p(:,1),p(:,2),z)
view(2)
shading interp
% Plot as structured grid
xi = linspace(min(x),max(x),300) ;
yi = linspace(min(y),max(y),300) ;
[X,Y] = meshgrid(xi,yi) ;
Z = griddata(x,y,z,X,Y) ;
figure(2)
pcolor(X,Y,Z) ;
shading interp
  4 Comments
Prakash Chettri
Prakash Chettri on 31 Mar 2022
I just copied the above code and just do change in load data. other i kept as it is but showing error but the second code works fine.
Thank you for the help.
KSSV
KSSV on 31 Mar 2022
Thanks is accepting/ voting the answer.

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!