Draw 3D plot from 2D plot with discrete data points

9 ビュー (過去 30 日間)
autumn
autumn 2021 年 7 月 19 日
コメント済み: Star Strider 2021 年 7 月 23 日
Hi All,
I am trying to draw 3D plot from a 2D line graph (in x/z-axis).
I have discrete data points in x and z-axis like below graph. I want to roate it around z-axis. Therefore, I used 'surf'
Here is what I obtained so far.
filename = 'filename.xlsx';
x(:,:)= xlsread(filename);
r = (x(4:49,12))'; z = (x(4:49,13))'; %% data from excel
for i = 1:46;
theta = linspace(0,2*pi,200); %% to rotate around z-axis
X = r(i)*cos(theta);
Y = r(i)*sin(theta);
Z = z(i)*ones(length(Y), length(X));
plot(X,Y); %% just for checking X and Y are on circles
surf(X,Y,Z); %% wanted to obtain a smooth mountain with an empty center.
if i < 46;
hold on;
i = i+1;
end;
end
xlabel('x'); ylabel('y');zlabel('z');
hold off
shading interp
colorbar
and this is the result..
The profile has to be very smooth, no sharp edges on the boundary. However, it has four edges. Also, when x<450, there is be no data points in z-axis.. but it shows very flat top surface (yellow). I think I need to assign z-values at the correct x and y coordinates. However, I am not sure how to fix this.
Please help me to resolve this issue.
Thanks a lot for your comments and time in advance!

採用された回答

Star Strider
Star Strider 2021 年 7 月 20 日
Without the Excel file, I experimented to create an approsimately equal curve. I then used it as the radiuc argument to the cylinder fucntion to create the surf plot.
x = linspace(460, 700, 50);
z = 1E-194*exp(-0.025*x+460) + 1.5;
figure
plot(x, z)
title('Radius Curve')
[X,Y,Z] = cylinder(z,50);
X = X .* x(:)/2;
Y = Y .* x(:)/2;
Z = Z*max(z) + min(z);
figure
surfc(X, Y, Z, 'EdgeColor','none')
colorbar
zlim([0 max(z)])
That likely approximates what appears to have been requested. Make appropriate changes so it works correctly with the actual data.
.
  8 件のコメント
autumn
autumn 2021 年 7 月 23 日
Thanks for the reply. It helped me a lot to understand it. :)
Star Strider
Star Strider 2021 年 7 月 23 日
As always, my pleasure!
.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSurface and Mesh Plots についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by