It seems you're getting bitten by the brain-dead interpolation of points (which is meant to draw line segments as curves that follow the radii). I have fixed the polar drawing code in SVN r6106 to normalize theta to (0.0 <= theta <= 2pi) before doing the interpolation, which seems to fix your example. The user doesn't/shouldn't have to care about whether theta is negative.
Cheers, Mike jan gillis wrote: > 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 > -- 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 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