File Exchange

image thumbnail

Comprehensive Polar Plots

version (11.6 KB) by Duane Hanselman
Polar plots with handle graphics type parameter setting. Includes log radius support.


Updated 31 Oct 2012

View License

Attempts to bring comprehensive handle graphics capabilities to polar plots.

Cite As

Duane Hanselman (2021). Comprehensive Polar Plots (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (24)


Love this tool! One great feature to add on would be to set the datacursor to display r and angle instead of x and y. I built this in myself and was only a few lines of code.

hui zhu

Hi all,can anyone tell me how to set radius(Rho) in logarithmic scale? usually in linear scale. Thanks a lot.

hui zhu


Ioannis Xirouchakis

Very straight forward and useful, thank you

t abokhaled

very good function
thanks a lot

Hoi Wong

Great tool. Can you add these two extra input arguments to all calls to text() in your code: 'Interpreter', 'tex'?

The reason is that by default, I use underscore a lot for variable names that are automatically generated on the plots, which make it natural for me to set(0,'DefaultTextInterpreter','none'); Since you used TeX syntax already, it doesn't hurt to force the 'Interpreter' to 'tex'.


Angelina Jay

Much more control than stock polar plot. Appreciate ability to plot negative radius values as well as easily control all visual aspects of the plot.


Thank you for this significant improvement on the stock polar plotter.

I did find the handling of exceptions generated by plot() less helpful than propagating them back to the user and suggest the following patch. (For example, if Theta and Rho vectors are not the same size, rethrowing the exception makes that obvious, avoiding a debug session.)

--- orig/mmpolar.m 2014-02-12 14:11:10.000000000 -0600
+++ new/mmpolar.m 2016-03-08 16:37:30.000000000 -0600
@@ -288,15 +288,16 @@

else % Hold is OFF

try % the plot function should work now
HAxes=newplot; % create axes
- catch
+ catch exception
- local_error('Input Arguments Not Understood.')
+ % local_error('Input Arguments Not Understood.')
+ rethrow(exception)
D.NumLines=length(D.HLines); % get all data for storage

Mahmoud Almarashli

Lukas Zednik

Great stuff.

Tarun Cousik

I am new to MATLAB ,I am trying to plot Antenna Gain Values(have negative values also) using this function.Can someone tell me the step by step procedure as to where I can input my data to get my graphs.

Ben Wu




very nice!

kamel kk

good work




Justace Clutter

I have determined the source of the issue from my previous post...

When using this routine, you must set the RLimits appropriately. If not you might get a result that is difficult to interpret.

Justace Clutter

I am having an issue with the mmpolar function. For some reason it is displaying some of the data as a zero radius in the plot while the data never actually goes to zero. I have posted a question and provided examples in a Matlab question. That question can be found at:

I am probably doing something silly, but this seems so simple that I can not see the error... Any feedback would be great!

All of that being said, thank you for the tool! It is fantastic and I have used it for a number of my analyses. Mathwork's should adopt this tool in future releases.

Jose Miguel

This is an excellent piece of work, I've been using it since 2007. Thank you so much for sharing it.

I think, there might be a couple of little bugs with RLimit, both of them appear when RLimit is set in the call to mmpolar.

1) The RLimit max value seems to be working fine, but the RLimit min value doesn't. The plot results in a polar figure which is not centered at the RLimit min value but to a smaller value.

2) Under the same situation as 1 and when RTickValues are not set, an extra Rho axis line or sometimes just the label, appear outside the outer limit of Theta

Please feel free to contact at



A comprehensive and well designed list of options. Minor improvement would be one simple example upfront - eg, a conventional geographic plot with North, East South & West labels. I'll be using this contributed function a lot.

Dan K


Thank you for bringing this back to FEX... I've been using an old version of mmpolar, literally for years, and have found it tremendously useful.. I personally have found the built in polar function to be an impractical joke. Again, Thanks.

Hipstro Vert

nice work!

MATLAB Release Compatibility
Created with R14
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

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

Start Hunting!