Re: [Matplotlib-users] Axes.frame vs. Axes.spines in SVN Basemap and Matplotlib? (was New contourf()...)

2009-06-16 Thread Zane Selvans
Yep, looks like the trunk has fixed the contourf() issue.

Unfortunately there also seems to be some new incompatibility with the
Basemap toolkit, even after re-installing Basemap from source.  I get:

AttributeError: Axes.frame was removed in favor of Axes.spines

when I attempt to call:

drawmapboundary(fill_color=white)

Error output below:

/Users/zane/svn/googlecode/satstress/satstress/nsrhist.pyc in
makefigs(dbar_max, maps, hists, examples, stats, stress, tpw,
lindensity, all, save_format)
774 if maps is True: #{{{2
775 print(Plotting Mapped Lineaments, fit to NSR stresses)
-- 776 FitMap(nsrlins, nbins=9, titlestr=global lins, fit to
NSR, dbar_max=dbar_max, outfile=figure_outfiles['FitMap_Mapped'])
777 print(Plotting Pre-TPW Lineaments, fit to NSR stresses)
778 FitMap(tpwlins, nbins=9, titlestr=pre-TPW lins, fit
to NSR, dbar_max=dbar_max, outfile=figure_outfiles['FitMap_PreTPW'])

/Users/zane/svn/googlecode/satstress/satstress/nsrhist.pyc in
FitMap(lins, titlestr, lin_cm, nbins, stresscentric, outfile,
dbar_max, showbad, derotate)
   1005 linfitmap.drawmeridians(range(llcrnrlon,urcrnrlon+1,gridspace),
labels=[1,0,0,1])
   1006 linfitmap.drawparallels(range(llcrnrlat,urcrnrlat+1,gridspace),
labels=[1,0,0,1])
- 1007 linfitmap.drawmapboundary(fill_color=white)
   1008 map_ax = fig.axes[0]
   1009

/Library/Python/2.5/site-packages/mpl_toolkits/basemap/__init__.pyc in
drawmapboundary(self, color, linewidth, fill_color, zorder, ax)
   1263 else: # all other projections are rectangular.
   1264 # use axesPatch for fill_color, frame for border line props.
- 1265 ax.frame.set_linewidth(linewidth)
   1266 if self.projection not in ['geos','ortho']:
   1267 if fill_color is not None:

/Library/Python/2.5/site-packages/matplotlib/axes.pyc in get_frame(self)
984
985 def get_frame(self):
-- 986 raise AttributeError('Axes.frame was removed in favor
of Axes.spines')
987 frame = property(get_frame)
988

AttributeError: Axes.frame was removed in favor of Axes.spines

In [3]: import mpl_toolkits.basemap

In [4]: mpl_toolkits.basemap.__version__
Out[4]: '0.99.4'


On Tue, Jun 16, 2009 at 7:29 AM, Michiel de Hoonmjldeh...@yahoo.com wrote:

 I can't reproduce this error with the current code in SVN trunk, but I 
 remember seeing this bug a while ago. So I'm guessing that this bug has 
 already been fixed in SVN. Zane, could you try installing the latest 
 matplotlib from trunk and see if you still see this bug?

 --Michiel

 --- On Mon, 6/15/09, Michael Droettboom md...@stsci.edu wrote:

 From: Michael Droettboom md...@stsci.edu
 Subject: Re: [Matplotlib-users] New contourf() drawing polygon boundaries 
 for  some reason?
 To: z...@amateurearthling.org, matplotlib-users 
 matplotlib-users@lists.sourceforge.net, Michiel de Hoon 
 mjldeh...@yahoo.com
 Date: Monday, June 15, 2009, 6:08 PM






 Thanks for the thorough investigation.



 Michiel: can you look into why the macosx backend is
 drawing the
 strokes around the polygons?  Probably as simple as
 inadvertently
 ignoring an argument.



 I'll look into the path simplification-related issues.



 Cheers,

 Mike



 On 06/15/2009 03:29 PM, Zane Selvans wrote:

   Yes.  By far the worst of these behaviors is the
 macosx GUI output.  I
 could see the other ones just being the way it's
 supposed to look.
 Here's a summary:

 backend: macosx; path.simplify: (false|true) GUI =
 black borders to
 drawn polygons (incl. contour region crossing lines, very
 bad)
 http://zaneselvans.org/dropbox/contourf_backendmacosx.png

 backend: agg (PNG output) path.simplify: (true|false) =
 somewhat
 visible borders between polygons (esp. adjacent to
 contrasting colors)
 http://zaneselvans.org/dropbox/contourf_simplifytrue.png
 http://zaneselvans.org/dropbox/contourf_simplifyfalse.png

 backend: pdf (PDF output) path.simplify: true =
 reliably visible
 irregularities (but probably this is somewhat expected with
 SVG
 output)
 http://zaneselvans.org/dropbox/contourf_simplifytrue.pdf

 backend: pdf (PDF output) path.simplify: false =
 infinitessimally
 thin lines of background color visible between contour
 filled regions.
 http://zaneselvans.org/dropbox/contourf_simplifyfalse.pdf

 And here's what I used to generate them:

 def broken_contourf():
     
     Simple demonstration that filled contour plots are
 broken.

     Looking at the PDF and PNG output using the macosx
 backend, everything is
     fine.  It's only the GUI output which is for some
 reason outlining the
     polygons in the filled contours.

     
     from numpy.random import uniform, seed
     from matplotlib.mlab import griddata
     import matplotlib.pyplot as plt
     import numpy as np
     # make up data.
     #npts = int(raw_input('enter # of random points to
 plot:'))
     seed(-1)
     npts = 200
     x = uniform(-2,2,npts)
     y = uniform(-2,2,npts)
   

Re: [Matplotlib-users] Axes.frame vs. Axes.spines in SVN Basemap and Matplotlib? (was New contourf()...)

2009-06-16 Thread Andrew Straw
Zane Selvans wrote:
 Yep, looks like the trunk has fixed the contourf() issue.
 
 Unfortunately there also seems to be some new incompatibility with the
 Basemap toolkit, even after re-installing Basemap from source.  I get:
 
 AttributeError: Axes.frame was removed in favor of Axes.spines


It appears Basemap hasn't caught up with the new Axes.spines usage.

Can you change mpl_toolkits/basemap/__init__.py line 1265 from::

  ax.frame.set_linewidth(linewidth)

to::

  for spine in ax.spines.itervalues():
  spine.set_linewidth(linewidth)

There may be more issues, here -- this is just the first one and based
off your traceback.

Jeff: I had to drop the Axes.frame to implement spines that could be
moved relative to the Axes boundary. I made sure this worked with the
custom projection examples in the main MPL distribution, so I imagine it
won't take too much to convert basemap. Please see svn r7144, 7145, and
7170 for my changes to lib/matplotlib/projections/geo.py

-Andrew

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Axes.frame vs. Axes.spines in SVN Basemap and Matplotlib? (was New contourf()...)

2009-06-16 Thread Jeff Whitaker
Andrew Straw wrote:
 Zane Selvans wrote:
   
 Yep, looks like the trunk has fixed the contourf() issue.

 Unfortunately there also seems to be some new incompatibility with the
 Basemap toolkit, even after re-installing Basemap from source.  I get:

 AttributeError: Axes.frame was removed in favor of Axes.spines
 


 It appears Basemap hasn't caught up with the new Axes.spines usage.

 Can you change mpl_toolkits/basemap/__init__.py line 1265 from::

   ax.frame.set_linewidth(linewidth)

 to::

   for spine in ax.spines.itervalues():
   spine.set_linewidth(linewidth)

 There may be more issues, here -- this is just the first one and based
 off your traceback.

 Jeff: I had to drop the Axes.frame to implement spines that could be
 moved relative to the Axes boundary. I made sure this worked with the
 custom projection examples in the main MPL distribution, so I imagine it
 won't take too much to convert basemap. Please see svn r7144, 7145, and
 7170 for my changes to lib/matplotlib/projections/geo.py

 -Andrew
   

Andrew:  This is now fixed in SVN.

BTW: basemap predates the custom projection support in matplotlib, so it 
actually doesn't use it. 

-Jeff


--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users