How do I create a 3 dimensional response surface plot from X Y Z points ?

64 views (last 30 days)
Hi all,
I am struggling a bit here, and hope somebody could help. I have a set of X Y and Z points and Z is not found by any function of X and Y. In other words, I have independent X Y and Z values and these values are;
X Y Z
288 2.79 7.55
318 4.64 14.28
127 2.31 8.31
132 7.16 17.27
264 2.31 4.32
200 2.60 6.74
268 3.06 15.12
I need to create a response surface plot (contour plot) from these values. I would be so glad and thankful if somebody could help with with that. I am sorry if question is not very clear. If not, I can ask in detail. In sort, I have eight X Y Z independent data and want to create a response surface.
Best Regards,
Ferdi
  3 Comments
ferdi bayram
ferdi bayram on 18 Nov 2019
Hi Shubham,
First of all, thank you for trying to help me. Let me upload a couple of figures to clarify what I want. Since I do not know matlab deeply, I am not sure whether it is something I would be done
ferdi bayram
ferdi bayram on 18 Nov 2019
Here is what exactl what I want and I have done t in minitab program. The problem in here is that there is no scale bar and it is not colorful (red blue yellow to show critical points). That is why I am trying to solve this problem via matlab

Sign in to comment.

Accepted Answer

Akira Agata
Akira Agata on 18 Nov 2019
How about using an interpolation? The following is a simple example:
% Apply cubic interpolation
[xGrid,yGrid] = meshgrid(linspace(min(X),max(X)),linspace(min(Y),max(Y)));
zGrid = griddata(X(:),Y(:),Z(:),xGrid(:),yGrid(:),'cubic');
zGrid = reshape(zGrid,size(xGrid));
% Visualize the result
figure
contour(xGrid,yGrid,zGrid,'ShowText','on')
hold on
scatter(X,Y,'ro')
grid on
colorbar
contour.png
  5 Comments
Akira Agata
Akira Agata on 18 Nov 2019
Please try the following:
D = [288 2.79 7.55;
318 4.64 14.28;
127 2.31 8.31;
132 7.16 17.27;
264 2.31 4.32;
200 2.60 6.74;
268 3.06 15.12];
X = D(:,1);
Y = D(:,2);
Z = D(:,3);
% Create 100x100 grid mesh (x,y) points
[xGrid,yGrid] = meshgrid(linspace(min(X),max(X)),linspace(min(Y),max(Y)));
% Interpolation
zGrid = griddata(X(:),Y(:),Z(:),xGrid(:),yGrid(:),'cubic');
zGrid = reshape(zGrid,size(xGrid));
% Fig.1 Contour plot with original data points
figure
contour(xGrid,yGrid,zGrid,'ShowText','on')
hold on
scatter(X,Y,'ro')
grid on
colorbar
% Fig.2 Surf plot
figure
surf(xGrid,yGrid,zGrid)
colormap(jet)
colorbar

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!