MATLAB: Logarithmic scale for polar plots

polar plot logarithmic

Hi guys,
is it possible at all to plot polar plots with a logarithmic scale using polar.m (the standard polar function), or otherwise?
thanks very much for your time!
cheers, Mark.

Best Answer

Polar plots start at r=0 at the center, so a log polar plot would have to start at log(0) = -infinity at the center. There isn't room for an infinite plot on the screen.
Internally polar() uses cartesian coordinates, not polar coordinates, so there is no possibility of doing something like set(gca, 'RScale', 'log').
What you can do is log() your data before sending it to polar()... and put up with the fact that will map all values less than 1 in to negative radii. There are mechanisms that can be used to change the radius labels after a polar() plot has been generated -- they are not convenient mechanisms but it can be done.