![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/180052/image.png)
How to plot a surface-like plot when the data is not regularly spaced
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Abhinav
am 12 Dez. 2017
Kommentiert: Abhinav
am 13 Dez. 2017
I have 3-d data, where first two columns (x,y) are independent and the third column (z) is dependent upon first two. I want to have a surface plot of the data so that I can see what region in (x,y) space gives low values of z and what region gives high values of z. But I am not able to use a surface plot because the data is not regularly spaced as required for using 'surf'. I have attached the mat-file containing three columns for reference. Is there a good way of solving this problem?
0 Kommentare
Akzeptierte Antwort
Michal Dobai
am 12 Dez. 2017
Bearbeitet: Michal Dobai
am 12 Dez. 2017
How about this?
[xi,yi] = meshgrid(0:0.01:10, 0:0.01:10);
zi = griddata(demodata(:,1),demodata(:,2),demodata(:,3),xi,yi);
handle = surf(xi,yi,zi, 'EdgeColor', 'none');
% I adjusted color limits for better-looking plot of your data
handle.Parent.CLim = [-100 -80];
Result plot:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/180052/image.png)
Is this what you need?
4 Kommentare
Les Beckham
am 13 Dez. 2017
If you have to deal with smoothing out noise in the data, or extrapolating beyond the edges of your grid, you might want to take a look at John D'Errico's excellent File Exchange submission gridfit.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!