On Sep 17, 2008, at 1:59 AM, jan gillis wrote:

> Hello,
>
> I have a problem with polar plot, if i run the following code in
> matplotlib 0.98.3, polar plot is drawing a extra circle to go from
> angle -3.14159265 to angle 3.03753126. Is there a solution for this
> problem?
>
> ********************
> import numpy as np
> from matplotlib.pyplot import figure, show, rc, grid
>
> # radar green, solid grid lines
> rc('grid', color='#316931', linewidth=1, linestyle='-')
> rc('xtick', labelsize=15)
> rc('ytick', labelsize=15)
>
> # force square figure and square axes looks better for polar, IMO
> fig = figure(figsize=(8,8))
> ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], polar=True, axisbg='#d5de9c')
>
> z = np.zeros((1,2000),complex)
> z.real = 0.2
> z.imag = np.arange(-50,50,0.05)
> gamma_r = np.transpose((z-1)/(z+1))
>
> ax.plot(np.angle(gamma_r), np.abs(gamma_r), '.-', zorder=0)

Hi Jan,

It looks like you get the circle because the angles you're plotting go  
from negative to positive radians in a weird way. The circle being  
drawn starts around 0 radians and goes clockwise by negative values.  
Then when it gets to - pi, it switches to positive indices, i.e. pi.  
Of course, these are the same points on a polar plot, but different  
angles, if you want to be consistent.

Here are a couple of quick solutions, but there but there maybe better  
ways of handling this.

# ~~~~~~~~~~~~~~~~~~
# get rid of the plot line above, and add the following
theta = np.angle(gamma_r)
mag = np.abs(gamma_r)

# option 1
ordered = np.argsort(theta, axis=0).squeeze()
ax.plot(theta[ordered], mag[ordered], '.-', zorder=0)

# option 2
neg_theta = np.where(theta < 0)
theta[neg_theta] += 2 * np.pi
ax.plot(theta, mag, '.-', zorder=0)
# ~~~~~~~~~~~~~~~~~~

I hope that's helpful,
-Tony

>
> ax.set_rmax(2.0)
> grid(True)
>
> show()
>
> ********************
> Kind regards,
> Jean
>
> -- 
> Jan Gillis
> Ghent University
> IMEC vzw - INTEC
> Sint-Pietersnieuwstraat 41
> B-9000 Gent
> Belgium
> tel. +32 9 264 33 33
> [EMAIL PROTECTED]
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's  
> challenge
> Build the coolest Linux based applications with Moblin SDK & win  
> great prizes
> Grand prize is a trip for two to an Open Source event anywhere in  
> the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to