Hi Tony,

Thank you for the reply, the solutions you propose are fine in this 
case. But I'm trying to use the polar plot
as a smith chart for an instrument and there i will receive data that is 
unknown but can be something like this:

r = np.transpose(.1+np.arange ( 0 , 0.7 , 0.001))
theta = -4.5 * np.pi *r
freq = r*10e9
data = np.multiply(r,np.exp(1j*theta))
ax.plot(angle(data),abs(data))

Any idea why Polar plot can't handle theta going from negative to 
positive radians?

Jan

Tony S Yu wrote:
>
> 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
>>
>>
>> ------------------------------------------------------------------------- 
>>
>> 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