3Dplot suggestions on azimuthal data

2 次查看(过去 30 天)
Hi,
I never used 3D plot in Matlab. I will like to plot in 3D, the data from the the attached file. I was trying in Excel and the results is
not very good. I would like to have some sugestions how to use mesh here.
Thank you,
Ionut

采纳的回答

Adam Danz
Adam Danz 2021-7-29
There are lots of 3D plots. Here are two examples using a 3D bar plot and a 3D surface.
data = [ 45 33 25 60 32 34 50 9
5 61 17 71 18 7 7 6
37 41 20 19 20 47 27 20
8 8 9 11 11 10 9 8];
col = 0:45:315;
rows = {'Low','Mid','Upp','Out'}';
figure()
bar3(data)
set(gca, 'XTick', 1:size(data,2), 'XTickLabel',compose('%g',col), ...
'YTick',1:size(data,1), 'YTickLabel',rows);
xlabel('Azimuth (deg)')
ylabel('level')
zlabel('value')
figure()
surf(col,1:size(data,1),data)
colormap(gca,'gray')
set(gca, 'XTick',col, 'YTick',1:size(data,1), 'YTickLabel',rows);
xlabel('Azimuth (deg)')
ylabel('level')
zlabel('value')

更多回答(1 个)

Bjorn Gustavsson
Bjorn Gustavsson 2021-7-29
You seem to have your x and y-coordinate values along the first row and column of the data. If so:
x = test(1,2:end);
y = test(2:end,1);
z = test(2:end,2:end);
Then you can plot with surf or mesh:
subplot(2,2,1)
surf(x,y,z)
subplot(2,2,2)
mesh(x,y,z)
Or you can use scatter or scatter3:
subplot(2,2,3)
scatter(x(:),y(:),32,z(:),'filled')
subplot(2,2,4)
scatter3(x(:),y(:),z(:),32,z(:),'filled')
Then you can play around with the other plotting-functions too...
HTH
  1 个评论
Ionut  Anghel
Ionut Anghel 2021-7-29
Your answwer is very good as well. I had to arrange the vectors. Matlab doesn't allowed me to accept both answers.
Thank you.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Annotations 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by