Revision: 8686
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8686&view=rev
Author:   jswhit
Date:     2010-09-08 12:00:32 +0000 (Wed, 08 Sep 2010)

Log Message:
-----------
reconsider removeparallels and removemeridians.  Add remove method to tuples 
contained
in dicts returned by drawparallels and drawmeridians instead.

Modified Paths:
--------------
    trunk/toolkits/basemap/Changelog
    trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py

Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog    2010-09-07 23:15:27 UTC (rev 8685)
+++ trunk/toolkits/basemap/Changelog    2010-09-08 12:00:32 UTC (rev 8686)
@@ -1,6 +1,6 @@
 version 1.0.1 (not yet released).
-           * add datum grid shift files, so that pyproj.transform can do datum
-             shifts.
+           * add a remove method to the tuples that are returned in
+            the dicts returned by drawparallels and drawmeridians.
            * add removeparallels and removemeridians convenience methods.
 version 1.0   (svn revision 8531)
           * don't force adjustable='box' so Basemap is compatible

Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-09-07 
23:15:27 UTC (rev 8685)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-09-08 
12:00:32 UTC (rev 8686)
@@ -1814,9 +1814,11 @@
         ==============   ====================================================
 
         returns a dictionary whose keys are the parallel values, and
-        whose values are tuples containing lists of the
+        whose values are tuple-like objects containing lists of the
         matplotlib.lines.Line2D and matplotlib.text.Text instances
-        associated with each parallel.
+        associated with each parallel. Each one of these tuple-like 
+        objects has a ``remove`` method so it can be easily removed
+        from the plot.
         """
         # get current axes instance (if none specified).
         ax = ax or self._check_ax()
@@ -2015,41 +2017,10 @@
         keys = linecolls.keys(); vals = linecolls.values()
         for k,v in zip(keys,vals):
             if v == ([], []): del linecolls[k]
+            # add a remove method to each tuple.
+            linecolls[k] = _tup(linecolls[k])
         return linecolls
 
-    def removeparallels(self,pdict,lat=None,ax=None):
-        """
-        Given a dictionary returned by :meth:`Basemap.drawparallels`, remove 
-        parallels (latitude lines) and associated labels from the map.
-
-        .. tabularcolumns:: |l|L|
-
-        ==============   ====================================================
-        Keyword          Description
-        ==============   ====================================================
-        lat              latitude value to remove (Default None, removes all 
-                         of them)
-        ax               axes instance (overrides default axes instance)
-        ==============   ====================================================
-        """
-        if lat is not None and lat not in pdict.keys():
-            raise ValueError('latitude %s not drawn' % lat)
-        for key in pdict.keys():
-            if lat is None or key == lat:
-                tup = pdict[key]
-                for item in tup:
-                    for x in item:
-                        try:
-                            x.remove()
-                        # might already be removed, if so
-                        # don't do anything (exit silently).
-                        except ValueError: 
-                            pass
-        # get current axes instance (if none specified).
-        ax = ax or self._check_ax()
-        # set axes limits to fit map region.
-        self.set_axes_limits(ax=ax)
-
     def drawmeridians(self,meridians,color='k',linewidth=1., zorder=None,\
                       dashes=[1,1],labels=[0,0,0,0],labelstyle=None,\
                       fmt='%g',xoffset=None,yoffset=None,ax=None,latmax=None,
@@ -2099,9 +2070,11 @@
         ==============   ====================================================
 
         returns a dictionary whose keys are the meridian values, and
-        whose values are tuples containing lists of the
+        whose values are tuple-like objects containing lists of the
         matplotlib.lines.Line2D and matplotlib.text.Text instances
-        associated with each meridian.
+        associated with each meridian. Each one of these tuple-like 
+        objects has a ``remove`` method so it can be easily removed
+        from the plot.
         """
         # get current axes instance (if none specified).
         ax = ax or self._check_ax()
@@ -2291,27 +2264,10 @@
         keys = linecolls.keys(); vals = linecolls.values()
         for k,v in zip(keys,vals):
             if v == ([], []): del linecolls[k]
+            # add a remove method to each tuple.
+            linecolls[k] = _tup(linecolls[k])
         return linecolls
 
-    def removemeridians(self,mdict,lon=None):
-        """
-        Given a dictionary returned by :meth:`Basemap.drawmeridians`, remove
-        meridians (longitude lines) and associated labels from the map.
-
-        .. tabularcolumns:: |l|L|
-
-        ==============   ====================================================
-        Keyword          Description
-        ==============   ====================================================
-        lon              longitude value to remove (Default None, removes all 
-                         of them)
-        ax               axes instance (overrides default axes instance)
-        ==============   ====================================================
-        """
-        if lon is not None and lon not in mdict.keys():
-            raise ValueError('longitude %s not drawn' % lon)
-        self.removeparallels(mdict,lat=lon)
-
     def tissot(self,lon_0,lat_0,radius_deg,npts,ax=None,**kwargs):
         """
         Draw a polygon centered at ``lon_0,lat_0``.  The polygon
@@ -4188,3 +4144,11 @@
     lsmask = tmparr
     lsmaskf.close()
     return lsmask_lons, lsmask_lats, lsmask
+
+class _tup(tuple):
+    # tuple with an added remove method.
+    # used for objects returned by drawparallels and drawmeridians.
+    def remove(self):
+        for item in self:
+            for x in item:
+                x.remove()


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to