118 views (last 30 days)

How can I plot multiple polar diagram in one graph?

Davide Ferraro
on 24 Apr 2012

The HOLD command should work:

t = 0:.01:2*pi;

polar(t,cos(2*t).*cos(2*t),'--k')

hold on

polar(t,sin(2*t).*cos(2*t),'--r')

Walter Roberson
on 24 Apr 2012

However this would instead produce multiple lines on the _same_ polar graph.

Sign in to comment.

Walter Roberson
on 24 Apr 2012

Probably the easiest way is to plot each of the diagrams on its own axes, and then use copyobj() to copy them on to one common axes.

polar() is implemented as creating a circular patch() object to hold the diagram, drawing in the spokes and discs, using text() to add labels, and using pol2cart() to convert the polar coordinates to cartesian coordinates for the purpose of drawing the graph itself.

polar() detects that presence of the patch() object and will not draw it again if it is present there. This is why you need to draw on different axes in order to be able to end up with multiple diagrams.

After you copyobj() you will need to offset all of the coordinates of all of the graphics objects so that they do not overlap. This will be a bit tricky as text() objects will only accept data coordinates, not pixel coordinates.

Also note that polar() creates two axes.

I would suggest that you might want to consider using subplot() instead of having multiple diagrams on the same graph.

Sign in to answer this question.

Opportunities for recent engineering grads.

Apply Today
## 1 Comment

## Direct link to this comment

https://it.mathworks.com/matlabcentral/answers/36391-how-to-plot-multiple-polar-graph#comment_272539

⋮## Direct link to this comment

https://it.mathworks.com/matlabcentral/answers/36391-how-to-plot-multiple-polar-graph#comment_272539

Sign in to comment.