# How to customise Polar Plots

24 views (last 30 days)

Show older comments

##### 2 Comments

Star Strider
on 2 Apr 2023

Some detail is missing.

How do you want the tick labels to appear on the left side?

What do you want the top value (currently 180°) to be?

th = linspace(0, 2*pi, 360);

r = sin(2*th).^2;

figure

polarplot(th,r)

Ax = gca;

Ax.ThetaZeroLocation = 'bottom';

TTL = Ax.ThetaTickLabel

.

### Accepted Answer

Star Strider
on 4 Apr 2023

Try something like this —

th = linspace(0, 2*pi, 360);

r = exp(-0.1*th).*sin(2*th).^2;

figure

polarplot(th,r)

title('Original')

figure

polarplot(th+pi/2,r) % It May Be Necessary To Shift The Plot Phase (+90° Or +π/2) For This To Work Correctly

Ax = gca;

Ax.ThetaZeroLocation = 'bottom';

Ax.ThetaLim = [270 270+180];

Ax.ThetaTickLabel = compose('%d°',-90:30:90);

title('Shifted')

I needed to make my original function radially asymmetric to test this to be certain it would work correctly. It may be necessary for you to experiment with shifting the angles as well.

.

##### 3 Comments

Star Strider
on 5 Apr 2023

‘One small thing though, how do I set custom gridlines (every 15^o rather than every 30^o)?’

Try this —

th = linspace(0, 2*pi, 360);

r = exp(-0.1*th).*sin(2*th).^2;

figure

polarplot(th,r)

title('Original')

figure

polarplot(th+pi/2,r) % It May Be Necessary To Shift The Plot Phase (+90° Or +π/2) For This To Work Correctly

Ax = gca;

Ax.ThetaZeroLocation = 'bottom';

Ax.ThetaLim = [270 270+180];

Ax.ThetaTick = Ax.ThetaLim(1) : 15 : Ax.ThetaLim(2);

Ax.ThetaTickLabel = compose('%d°',-90:15:90);

title('Shifted With Ticks Every 15°')

.

### More Answers (1)

the cyclist
on 2 Apr 2023

Edited: the cyclist
on 2 Apr 2023

% Create plot

figure

theta = linspace(0,2*pi,25);

rho = 2*theta;

polarplot(theta,rho);

% Define a variable with the tick labels

thetaTickLabels = {'0°';'30°';'60°';'90°';'120°';'150°';'180°';'-150°';'-120°';'-90°';'-60°';'-30°'};

% Set theta how you want

set(gca,"ThetaZeroLocation","bottom", ...

"ThetaDir","counterclockwise", ...

"ThetaTickLabels",thetaTickLabels)

Note that while the axes are labeled in degrees, the default input is in radians. (That same page shows how to convert, if you need to.)

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!