|
From: Alan G I. <ala...@gm...> - 2012-12-17 22:50:42
|
http://en.wikipedia.org/wiki/Polar_coordinate_system#Uniqueness_of_polar_coordinates fwiw, Alan Isaac |
|
From: Andre' Walker-L. <wal...@gm...> - 2012-12-17 23:55:00
Attachments:
neg_r.png
neg_r_opposite.png
|
> http://en.wikipedia.org/wiki/Polar_coordinate_system#Uniqueness_of_polar_coordinates quoting from the site ''' Where a unique representation is needed for any point, it is usual to limit r to non-negative numbers (r ≥ 0) and θ to the interval [0, 360°) or (−180°, 180°] (in radians, [0, 2π) or (−π, π]).[12] One must also choose a unique azimuth for the pole, e.g., θ = 0. ''' Of course I don't have anything close to a scientific study of the following statement, but I suspect in practice (ie as polar coordinates are used in practice by working scientists), they expect to find values of "r" consistent with the above definition of unique - however, still wanting theta to not be bounded. Taking another quote form the site ''' Also, a negative radial coordinate is best interpreted as the corresponding positive distance measured in the opposite direction. ''' How does one define opposite in polar coordinates? The natural definition for "opposite" direction is presumably theta --> theta + pi, as that definition would correspond to the same notion of "opposite" in Cartesian coordinates (take whatever direction you were drawing a line, and go in "-" that direction. If we agree that this is the sensible definition of opposite, then pyplot.polar is not representing this definition of opposite. Attached are two plots. The first uses ''' as matplotlib is - neg_r.png ''' import numpy as np import matplotlib.pyplot as plt t = np.linspace(-np.pi, np.pi, 60) r = t plt.polar(t,r) The second produces a curve which I say represents the natural definition of "opposite". Note, the tangents of the curves are also opposite as well ''' as matplotlib "should be" - neg_r_opposite.png ''' import numpy as np import matplotlib.pyplot as plt t = np.linspace(0, np.pi, 30) r = t plt.polar(t,r) t_opp = np.linspace(np.pi,2*np.pi,30) r_opp = t_opp - np.pi plt.polar(t_opp,r_opp) I have three points to make with these plots: 1) my definition of opposite makes more sense than the default behavior of matplotlib 2) other people may have different ideas about what is best 3) matplotlib should at least raise a NOISY warning about what it is doing. Andre |
|
From: Daniel H. <dh...@gm...> - 2012-12-18 02:39:27
|
Maybe I'm just not seeing it; I don't see how the definition on wikipedia,
your definition, and matplotlib behavior differ.
import numpy as np
import matplotlib
matplotlib.use('WxAgg')
import matplotlib.pyplot as plt
t = np.linspace(0.0,2.0*np.pi, 50)
r = np.linspace(0.0,2.0*np.pi, 50)
plt.polar(t,r,color='blue')
plt.polar(t,-r,color='red')
plt.polar(-t,r,color='green')
plt.polar(-t,-r,color='yellow')
plt.show()
Comparing blue and red, you can see how mpl handles a negative r; each
point is 'opposite' just as described.
Comparing blue and green, you can see how mpl handles a negative angle.
green curve increases in as you go clockwise, which is correct.
On Mon, Dec 17, 2012 at 6:54 PM, Andre' Walker-Loud <wal...@gm...>wrote:
> >
> http://en.wikipedia.org/wiki/Polar_coordinate_system#Uniqueness_of_polar_coordinates
>
> quoting from the site
>
> '''
> Where a unique representation is needed for any point, it is usual to
> limit r to non-negative numbers (r ≥ 0) and θ to the interval [0, 360°) or
> (−180°, 180°] (in radians, [0, 2π) or (−π, π]).[12] One must also choose a
> unique azimuth for the pole, e.g., θ = 0.
> '''
>
> Of course I don't have anything close to a scientific study of the
> following statement, but I suspect in practice (ie as polar coordinates are
> used in practice by working scientists), they expect to find values of "r"
> consistent with the above definition of unique - however, still wanting
> theta to not be bounded.
>
> Taking another quote form the site
>
> '''
> Also, a negative radial coordinate is best interpreted as the
> corresponding positive distance measured in the opposite direction.
> '''
>
> How does one define opposite in polar coordinates? The natural definition
> for "opposite" direction is presumably theta --> theta + pi, as that
> definition would correspond to the same notion of "opposite" in Cartesian
> coordinates (take whatever direction you were drawing a line, and go in "-"
> that direction. If we agree that this is the sensible definition of
> opposite, then pyplot.polar is not representing this definition of opposite.
>
> Attached are two plots. The first uses
>
> ''' as matplotlib is - neg_r.png '''
> import numpy as np
> import matplotlib.pyplot as plt
>
> t = np.linspace(-np.pi, np.pi, 60)
> r = t
> plt.polar(t,r)
>
> The second produces a curve which I say represents the natural definition
> of "opposite". Note, the tangents of the curves are also opposite as well
>
> ''' as matplotlib "should be" - neg_r_opposite.png '''
> import numpy as np
> import matplotlib.pyplot as plt
>
> t = np.linspace(0, np.pi, 30)
> r = t
> plt.polar(t,r)
> t_opp = np.linspace(np.pi,2*np.pi,30)
> r_opp = t_opp - np.pi
> plt.polar(t_opp,r_opp)
>
>
> I have three points to make with these plots:
> 1) my definition of opposite makes more sense than the default behavior of
> matplotlib
> 2) other people may have different ideas about what is best
> 3) matplotlib should at least raise a NOISY warning about what it is doing.
>
>
> Andre
>
>
>
>
>
>
>
>
>
>
> ------------------------------------------------------------------------------
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
--
Daniel Hyams
dh...@gm...
|
|
From: Michael D. <md...@st...> - 2012-12-18 14:40:25
|
Is this in reference to issue #1603? Are you advocating changing the solution? Cheers, Mike On 12/17/2012 05:50 PM, Alan G Isaac wrote: > http://en.wikipedia.org/wiki/Polar_coordinate_system#Uniqueness_of_polar_coordinates > > fwiw, > Alan Isaac > > ------------------------------------------------------------------------------ > LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial > Remotely access PCs and mobile devices and provide instant support > Improve your efficiency, and focus on delivering more value-add services > Discover what IT Professionals Know. Rescue delivers > http://p.sf.net/sfu/logmein_12329d2d > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users |
|
From: Alan G I. <ala...@gm...> - 2012-12-18 15:09:05
|
On 12/18/2012 9:40 AM, Michael Droettboom wrote: > Is this in reference to issue #1603? Are you advocating changing the > solution? My only point was that the ongoing conversation should not accept uncritically the assertion that r<0 is senseless. Thus I cited one example of the common acceptance of negative r: http://en.wikipedia.org/wiki/Polar_coordinate_system#Uniqueness_of_polar_coordinates I am not advocating a position on whether Matplotlib should enforce a unique representation, although that seems very doubtful to me. Alan |
|
From: Andre' Walker-L. <wal...@gm...> - 2012-12-18 16:18:39
|
>> Is this in reference to issue #1603? Are you advocating changing the >> solution? > > > > My only point was that the ongoing conversation should > not accept uncritically the assertion that r<0 is senseless. and I finally appreciate that criticism. From my perspective, I was happy to learn something new. I think it is clear to all on the list, that at first, this notion railed against my senses. Cheers, Andre |
|
From: Michael D. <md...@st...> - 2012-12-18 16:39:43
|
Sorry -- I hadn't meant to be terse: I hadn't realised until now that this was related to the other thread. I think it's an interesting discussion, and we should probably find some way to address it -- perhaps that means that `polar` grows an option to affect negative handling. Mike On 12/18/2012 10:08 AM, Alan G Isaac wrote: > On 12/18/2012 9:40 AM, Michael Droettboom wrote: > > Is this in reference to issue #1603? Are you advocating changing the > > solution? > > > > My only point was that the ongoing conversation should > not accept uncritically the assertion that r<0 is senseless. > Thus I cited one example of the common acceptance of negative r: > http://en.wikipedia.org/wiki/Polar_coordinate_system#Uniqueness_of_polar_coordinates > > I am not advocating a position on whether Matplotlib should enforce a unique > representation, although that seems very doubtful to me. > > Alan > > ------------------------------------------------------------------------------ > LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial > Remotely access PCs and mobile devices and provide instant support > Improve your efficiency, and focus on delivering more value-add services > Discover what IT Professionals Know. Rescue delivers > http://p.sf.net/sfu/logmein_12329d2d > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users |