My data is x,y,z,w. How can I create a 3D contour plot of it?
1 次查看(过去 30 天)
显示 更早的评论
I have a tab delimited text file (see attached) that has x,y,z data from a design of experiments sweep and the output variable is w.
I tried using this:
fidi=fopen('DOE sweep1A.txt', 'rt'); % version of text file without headers
D=textscan(fidi, %f%f%f%f');
X=D{1}; % rpm
Y=D{2}; % m_dot
Z=D(3); % P
W=D{4); % Power
N=100;
Xi=linspace(min(X),max(X),N);
Yi=linspace(min(Y),max(Y),N);
Zi=linspace(min(Z),max(Z),N);
[Gx,Gy,Gz]=meshgrid(Xi,Yi,Zi);
Wi=griddata(X, Y, Z, W, Gx, Gy, Gz, 'natural');
contour(Gx, Gy, Gz, Wi, 'Linestyle', '-', 'Linecolor', [0 0 0], 'ShowText', 'on', 'LevelStep', 1)
grid on
colormap(jet)
colorbar;
And I know that it doesn't work because it can only have 2 dimensions and also that there are repeating numbers for X, Y, and Z because it is a design of experiments sweep.
But I would still want to plot this preferably in a 3D contour plot.
Is there a way to do so?
Thanks.
2 个评论
回答(2 个)
Walter Roberson
2017-6-29
You might want to experiment with isosurface(). You might want to ask it to draw at several different surface levels
3 个评论
Walter Roberson
2017-6-29
We can't say, as you have not defined your desired output in any useful way. What would you expect a "3d contour plot" to look like? Do you have an example plot?
John Mickett
2019-8-6
It is a good question. He wants to do output of surf.m with three coords but instead of colored contours wants lines. Not a hard concept.
surf(X,Y,Z,C) but instead of C you have contour intervals.
4 个评论
Yuli Han
2019-12-7
Hi John,
I have a similar problem recently. The figure you showed above is right what I need. Could you please share the code or tell more detail about how to draw it? Much appreciated.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Contour Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!