MATLAB Answers

3Dplot suggestions on azimuthal data

1 view (last 30 days)
Ionut  Anghel
Ionut Anghel on 29 Jul 2021
Commented: Ionut Anghel on 29 Jul 2021
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

Accepted Answer

Adam Danz
Adam Danz on 29 Jul 2021
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 Comment
Ionut  Anghel
Ionut Anghel on 29 Jul 2021
Very nice solutions!
They are working perfect.
Thank you.

Sign in to comment.

More Answers (1)

Bjorn Gustavsson
Bjorn Gustavsson on 29 Jul 2021
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 Comment
Ionut  Anghel
Ionut Anghel on 29 Jul 2021
Your answwer is very good as well. I had to arrange the vectors. Matlab doesn't allowed me to accept both answers.
Thank you.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!