Ok.  Thanks for the information.  That does do exactly what I would expect.  I 
would place my vote for having this be the default
behavior since this is what it means to say "go from point A to B" on a polar 
plot.

--James

> -----Original Message-----
> From: Michael Droettboom [mailto:md...@stsci.edu]
> Sent: Monday, February 02, 2009 8:28 AM
> To: James Evans; matplotlib development list
> Subject: Re: FW: Polar Plot Design Issues
> 
> You can get this behavior you are asking for by passing "resolution=1"
> to polar.  (This has been there for ages, but unfortunately wasn't
> documented until recently).  We can consider making 1 the default.
> 
> There are cases in which the automatic interpolation is useful, but in
> the present implementation the onus is on the user to avoid this "going
> the long way" problem.
> 
> Mike
> 
> James Evans wrote:
> > Michael,
> >
> > John said you were the one to go to for this one.  I was wondering if you 
> > had any comments about the
> following?
> >
> > --James Evans
> >
> >
> >> All,
> >>
> >> While looking over the polar plot code I came across the following issue:  
> >> When plotting something
> >> like 'polar( [2*pi/180, 358*pi/180], [2.0, 1.0] )' the plotted line will 
> >> actually wrap around the
> >> origin of the plot before reaching its destination.  Initially I thought 
> >> that this was correct
> >> behavior.  The line numerically passed through all angles between 2 and 
> >> 358 degrees in a linear
> >> fashion.  However after consulting several colleagues and text books I 
> >> believe that the behavior is
> >> actually wrong.
> >>
> >> It is my understanding that for polar plots there is no linear mapping of 
> >> the axes as it is
> currently
> >> implemented.  Rather for a simple two-point line defined in polar 
> >> coordinates, the line should
> >> essentially take the direct route.  This is highlighted by the two-point 
> >> equation of a line for
> polar
> >> plots:
> >>
> >> r = ( r1*r2*sin(t2-t1) ) / ( (r1*sin(t-t1)) - (r2*sin(t-t2)) )
> >>
> >> If you were to plug in the two points given above, then increment theta 
> >> (t) from 2 degrees to 358
> >> degrees, then convert to Cartesian cords, and plot the results, you will 
> >> get the correct line that
> >> directly crosses the zero degree line and not one that wraps around the 
> >> origin.
> >>
> >> Is the polar plot function implemented this way on purpose?  Which way 
> >> should it really be
> >> implemented?
> >>
> >
> >
> 
> --
> Michael Droettboom
> Science Software Branch
> Operations and Engineering Division
> Space Telescope Science Institute
> Operated by AURA for NASA



------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to