11 views (last 30 days)

Show older comments

How can I plot a circle like this in matlab, please give me an example. Thanks in advance.

arich82
on 17 Jul 2015

Edited: arich82
on 17 Jul 2015

[Edited to add colorbar and image.]

As far as I know, you can't do it directly, but pol2cart is your friend. Look at

and maybe

% construct grid of polar coords

th = (0:5:360)*pi/180;

r = 0:.05:1;

[TH, R] = meshgrid(th, r);

% convert polar to cartesian

[X, Y] = pol2cart(TH, R);

% dummy function plotted over X Y data

Z = X + 1i*Y;

f = abs((Z.^4 - 1).^(1/4));

% use overhead view of surf plot for figure

figure;

surf(X, Y, f);

view(2);

axis equal;

axis square;

colorbar('SouthOutside');

colormap('Jet');

Note that axis(2) gives an overhead view, so it looks like a flat circle, and axis equal ensures it looks like a circle and not a distorted ellipse.

Please accept this answer if it helps, or let me know what's wrong in the comments.

Walter Roberson
on 18 Mar 2017

Unfortunately, surf() is not compatible with the new-ish polaraxes (R2016a and later).

You could use the older polar() to create the basic background graphic, and then "hold on", and then plot on top of it.

Walter Roberson
on 18 Mar 2017

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

Start Hunting!