3-D plot in Matlab

15 views (last 30 days)
Mike Lee
Mike Lee on 23 Feb 2017
Commented: Chibuzo Nnonyelu on 27 Jan 2018
I have a set of data from my antenna measurement such as azimuth, elevation and amplitude.
Is there any feature in matlab that I can use to do 3-D plot with those three data?
Chibuzo Nnonyelu
Chibuzo Nnonyelu on 27 Jan 2018
Ok. Sorry for late response. I had attached a function for that. The function produces a 3-D plot in the spherical Cartesian coordinates.

Sign in to comment.

Answers (1)

Chibuzo Nnonyelu
Chibuzo Nnonyelu on 23 Feb 2017
You can modify this function to work for you:
function plotsphere(azimuth, elevation, amplitude)
[X, Y, Z] = sph2cart(azimuth, elevation, amplitude);
grid on;
plot3(X, Y, Z, 'MarkerSize', 6,'Color', 'b','Marker', '.',...
'LineStyle', 'none'); hold on;
set(gca, 'xlim',[-2 2], 'ylim', [-2 2], 'zlim', [-2 2], 'Fontsize', 16);
nA = max([max(abs(X)) max(abs(Y)) max(abs(Z))]);
view(178, 10);
aL = max(nA);
lOffset = 0.05;
aLimit = [-aL-lOffset aL+lOffset];
set(gca, 'xlim', aLimit, 'ylim', aLimit, 'zlim', aLimit, 'Fontsize', 16);
%drawing the axes's lines
line(aLimit,[0,0],[0, 0],'linewidth',4,'color',[0,0,0]); %x-axis
line([0,0],aLimit,[0, 0],'linewidth',4,'color',[0,0,0]); %y-axis
line([0,0],[0,0],aLimit,'linewidth',4,'color',[0,0,0]); %z-axis
%labeling the axes
text(aLimit(2) + 0.05, 0, 0,'x','fontsize',18,'horizontalalignment','center', 'Interpreter', 'latex');
text(0, aLimit(2) + 0.05, 0,'y','fontsize',18,'horizontalalignment','center', 'Interpreter', 'latex');
text(0, 0, aLimit(2) + 0.05,'z','fontsize',18,'horizontalalignment','center', 'Interpreter', 'latex');
grid on;
%suppressing original x, y, axis
set(gca, 'XTick',[], 'ZTick',[], 'YTick',[], 'XColor', 'w', 'YColor', 'w', 'ZColor', 'w');
axis square;


Find more on Antennas and Electromagnetic Propagation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by