I need to create a 3D contour/surface plot with given points.

9 vues (au cours des 30 derniers jours)
Evan
Evan le 7 Juil 2022
I have several points with x,y,z coordinates with varying z values that I need to show the contour of. I have plotted using the contour and surf function however I am getting a really block like image and need it refined to look similar to the image attached. It is almost impossible to see the difference in z values.
What would be the best way to approach this in order to be able to visually see the difference in z values?
  1 commentaire
Walter Roberson
Walter Roberson le 7 Juil 2022
griddata() or scatteredInterpolant() and query at a more refined x and y grid; this will interpolate the data according to the interpolation method you specify (default would be bilinear interpolation.)

Connectez-vous pour commenter.

Réponses (1)

Walter Roberson
Walter Roberson le 25 Juil 2022
N = 200;
P = 20;
x = rand(1, P);
y = randn(1, P);
z = sinpi(y*2) + exp(2*x);
figure()
scatter3(x, y, z)
xvec = linspace(min(x), max(x), N);
yvec = linspace(min(y), max(y), N);
[Xq, Yq] = meshgrid(xvec, yvec);
F = scatteredInterpolant(x(:), y(:), z(:));
Zq = F(Xq, Yq);
figure()
surf(Xq, Yq, Zq);

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by