From: jamesf0 <ja...@ut...> - 2009-01-29 05:21:07
|
Hi, Im having some trouble with this "seemingly" simple task of plotting straight lines/fitted curves on a polar plot. I am trying to create a plot that resembles the layout of the chart seen below: http://www.nabble.com/file/p21721073/brisbane.png So far I have only been able to plot data like so: http://www.nabble.com/file/p21721073/AzvAlt.png The blue line should be similar to the bottom line of the first example plot. The line would ultimately be formed by fitting a straight line/curve through the points, instead of the way matplotlib is plotting. I am plotting tuples of values (az and alt), and plotting using: ax.plot(az, alt, 'b') -- View this message in context: http://www.nabble.com/How-to-plot-straight-lines-on-polar-plots-tp21721073p21721073.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: Jae-Joon L. <lee...@gm...> - 2009-01-29 18:36:48
|
I don't see any elegant way to do that. The easiest way I can think of is to use a derived line2d class. Something like below will work. Others may have better ideas. import matplotlib.lines class Line2DNoInterpolation(matplotlib.lines.Line2D): def recache(self): matplotlib.lines.Line2D.recache(self) self._transformed_path.get_transformed_path_and_affine = \ self._transformed_path.get_transformed_points_and_affine ax = subplot(111, projection="polar") r = np.arange(0, 1.0, 0.1) theta = 2*np.pi*r p2 = Line2DNoInterpolation(theta, r, color='r', lw=1) ax.add_line(p2) -JJ On Thu, Jan 29, 2009 at 12:20 AM, jamesf0 <ja...@ut...> wrote: > > Hi, > > Im having some trouble with this "seemingly" simple task of plotting > straight lines/fitted curves on a polar plot. > > I am trying to create a plot that resembles the layout of the chart seen > below: > > http://www.nabble.com/file/p21721073/brisbane.png > > > > So far I have only been able to plot data like so: > > http://www.nabble.com/file/p21721073/AzvAlt.png > > > The blue line should be similar to the bottom line of the first example > plot. The line would ultimately be formed by fitting a straight line/curve > through the points, instead of the way matplotlib is plotting. > > I am plotting tuples of values (az and alt), and plotting using: > > > ax.plot(az, alt, 'b') > -- > View this message in context: http://www.nabble.com/How-to-plot-straight-lines-on-polar-plots-tp21721073p21721073.html > Sent from the matplotlib - users mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
From: Michael D. <md...@st...> - 2009-01-29 22:48:05
|
I'm embarrassed to see that I neglected to document this, but you can pass a "resolution" keyword argument to add_axes which sets the number of points of interpolation between each pair of data points. Set this to 1 to disable interpolation. This will be documented shortly. Mike jamesf0 wrote: > Hi, > > Im having some trouble with this "seemingly" simple task of plotting > straight lines/fitted curves on a polar plot. > > I am trying to create a plot that resembles the layout of the chart seen > below: > > http://www.nabble.com/file/p21721073/brisbane.png > > > > So far I have only been able to plot data like so: > > http://www.nabble.com/file/p21721073/AzvAlt.png > > > The blue line should be similar to the bottom line of the first example > plot. The line would ultimately be formed by fitting a straight line/curve > through the points, instead of the way matplotlib is plotting. > > I am plotting tuples of values (az and alt), and plotting using: > > > ax.plot(az, alt, 'b') > -- Michael Droettboom Science Software Branch Operations and Engineering Division Space Telescope Science Institute Operated by AURA for NASA |
From: jamesf0 <ja...@ut...> - 2009-01-29 22:59:43
|
Thanks for the help, but I can't quite see where to add the add_axes code. Here is the code I have been using to plot, the polar plot is a subplot. fig=figure() ax=fig.add_subplot(111, polar=True) ax.set_xticklabels(["E",45,"N",315,"W",225,"S",135]) ax.set_yticklabels([80,70,60,50,40,30,20,10]) ... ax.plot(az, alt, 'b') fig.savefig('AzvAlt.png') show() Michael Droettboom-3 wrote: > > I'm embarrassed to see that I neglected to document this, but you can > pass a "resolution" keyword argument to add_axes which sets the number > of points of interpolation between each pair of data points. Set this > to 1 to disable interpolation. > > This will be documented shortly. > > Mike > > jamesf0 wrote: >> Hi, >> >> Im having some trouble with this "seemingly" simple task of plotting >> straight lines/fitted curves on a polar plot. >> >> I am trying to create a plot that resembles the layout of the chart seen >> below: >> >> http://www.nabble.com/file/p21721073/brisbane.png >> >> >> >> So far I have only been able to plot data like so: >> >> http://www.nabble.com/file/p21721073/AzvAlt.png >> >> >> The blue line should be similar to the bottom line of the first example >> plot. The line would ultimately be formed by fitting a straight >> line/curve >> through the points, instead of the way matplotlib is plotting. >> >> I am plotting tuples of values (az and alt), and plotting using: >> >> >> ax.plot(az, alt, 'b') >> > > -- > 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-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > -- View this message in context: http://www.nabble.com/How-to-plot-straight-lines-on-polar-plots-tp21721073p21737964.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: Tim M. <tim...@gm...> - 2009-01-29 23:34:10
|
Hello, >>> I am trying to create a plot that resembles the layout of the chart seen >>> below: >>> >>> http://www.nabble.com/file/p21721073/brisbane.png are you actually trying to plot sun path digrams? May you share a part of your code once it is completed? I'd be very interested in seeing a working example. Kind regards, Timme |
From: jamesf0 <ja...@ut...> - 2009-01-29 23:56:43
|
Yeah "trying" to plot sun paths. I'll be more than happy to share once it's complete. James. Timmie wrote: > > Hello, > >>>> I am trying to create a plot that resembles the layout of the chart >>>> seen >>>> below: >>>> >>>> http://www.nabble.com/file/p21721073/brisbane.png > are you actually trying to plot sun path digrams? > > May you share a part of your code once it is completed? > > I'd be very interested in seeing a working example. > > Kind regards, > Timme > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > -- View this message in context: http://www.nabble.com/How-to-plot-straight-lines-on-polar-plots-tp21721073p21738933.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: Jouni K. S. <jk...@ik...> - 2009-01-30 04:58:58
|
jamesf0 <ja...@ut...> writes: > Thanks for the help, but I can't quite see where to add the add_axes code. > Here is the code I have been using to plot, the polar plot is a subplot. > ax=fig.add_subplot(111, polar=True) Change this to ax=fig.add_subplot(111, polar=True, resolution=1) and the resolution will get passed to the PolarAxes instance. -- Jouni K. Seppänen http://www.iki.fi/jks |
From: jamesf0 <ja...@ut...> - 2009-01-30 06:28:18
|
Sorry, I have done that change, and get these errors: Traceback (most recent call last): File "test7.py", line 36, in <module> ax=fig.add_subplot(111, polar=True, resolution=1) File "/usr/lib/python2.5/site-packages/matplotlib/figure.py", line 676, in add_subplot a = subplot_class_factory(projection_class)(self, *args, **kwargs) File "/usr/lib/python2.5/site-packages/matplotlib/axes.py", line 6823, in __init__ self._axes_class.__init__(self, fig, self.figbox, **kwargs) File "/usr/lib/python2.5/site-packages/matplotlib/projections/polar.py", line 171, in __init__ Axes.__init__(self, *args, **kwargs) File "/usr/lib/python2.5/site-packages/matplotlib/axes.py", line 537, in __init__ if len(kwargs): martist.setp(self, **kwargs) File "/usr/lib/python2.5/site-packages/matplotlib/artist.py", line 894, in setp func = getattr(o,funcName) AttributeError: 'PolarAxesSubplot' object has no attribute 'set_resolution' Jouni K. Seppänen wrote: > > Change this to > > ax=fig.add_subplot(111, polar=True, resolution=1) > > and the resolution will get passed to the PolarAxes instance. > > -- > Jouni K. Seppänen > http://www.iki.fi/jks > -- View this message in context: http://www.nabble.com/How-to-plot-straight-lines-on-polar-plots-tp21721073p21742133.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: John H. <jd...@gm...> - 2009-01-30 12:31:10
|
On Fri, Jan 30, 2009 at 12:28 AM, jamesf0 <ja...@ut...> wrote: > > Sorry, I have done that change, and get these errors: > > > Traceback (most recent call last): > File "test7.py", line 36, in <module> > ax=fig.add_subplot(111, polar=True, resolution=1) > File "/usr/lib/python2.5/site-packages/matplotlib/figure.py", line 676, in > add_subplot > a = subplot_class_factory(projection_class)(self, *args, **kwargs) > File "/usr/lib/python2.5/site-packages/matplotlib/axes.py", line 6823, in > __init__ > self._axes_class.__init__(self, fig, self.figbox, **kwargs) > File "/usr/lib/python2.5/site-packages/matplotlib/projections/polar.py", > line 171, in __init__ > Axes.__init__(self, *args, **kwargs) > File "/usr/lib/python2.5/site-packages/matplotlib/axes.py", line 537, in > __init__ > if len(kwargs): martist.setp(self, **kwargs) > File "/usr/lib/python2.5/site-packages/matplotlib/artist.py", line 894, in > setp > func = getattr(o,funcName) > AttributeError: 'PolarAxesSubplot' object has no attribute 'set_resolution' What version of mpl are you using? This should be fixed for releases >= 0.98.4 JDH |