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!