Revision: 6147
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6147&view=rev
Author:   efiring
Date:     2008-10-05 01:38:31 +0000 (Sun, 05 Oct 2008)

Log Message:
-----------
New legend kwarg: borderpad to replace pad (primary code by Jae-Joon Lee)

Modified Paths:
--------------
    trunk/matplotlib/CHANGELOG
    trunk/matplotlib/lib/matplotlib/legend.py
    trunk/matplotlib/lib/matplotlib/rcsetup.py
    trunk/matplotlib/matplotlibrc.template

Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG  2008-10-04 13:09:52 UTC (rev 6146)
+++ trunk/matplotlib/CHANGELOG  2008-10-05 01:38:31 UTC (rev 6147)
@@ -1,3 +1,6 @@
+2008-10-04 Experimental new kwarg borderpad to replace pad in legend,
+           based on suggestion by Jae-Joon Lee.  - EF
+
 2008-09-27 Allow spy to ignore zero values in sparse arrays, based
            on patch by Tony Yu.  Also fixed plot to handle empty
            data arrays, and fixed handling of markers in figlegend. - EF

Modified: trunk/matplotlib/lib/matplotlib/legend.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/legend.py   2008-10-04 13:09:52 UTC (rev 
6146)
+++ trunk/matplotlib/lib/matplotlib/legend.py   2008-10-05 01:38:31 UTC (rev 
6147)
@@ -85,6 +85,7 @@
                  numpoints = None,     # the number of points in the legend 
line
                  prop = None,
                  pad = None,           # the fractional whitespace inside the 
legend border
+                 borderpad = None,
                  markerscale = None,   # the relative size of legend markers 
vs. original
                  # the following dimensions are in axes coords
                  labelsep = None,      # the vertical space between the legend 
entries
@@ -116,12 +117,15 @@
 
         Artist.__init__(self)
 
-        proplist=[numpoints, pad, markerscale, labelsep, handlelen, 
handletextsep, axespad, shadow]
-        propnames=['numpoints', 'pad', 'markerscale', 'labelsep', 'handlelen', 
'handletextsep', 'axespad', 'shadow']
+        proplist=[numpoints, pad, borderpad, markerscale, labelsep, handlelen, 
handletextsep, axespad, shadow]
+        propnames=['numpoints', 'pad', 'borderpad', 'markerscale', 'labelsep', 
'handlelen', 'handletextsep', 'axespad', 'shadow']
         for name, value in safezip(propnames,proplist):
             if value is None:
                 value=rcParams["legend."+name]
             setattr(self,name,value)
+        if pad:
+            warnings.DeprecationWarning("Use 'borderpad' instead of 'pad'.")
+            # 2008/10/04
         if self.numpoints <= 0:
             raise ValueError("numpoints must be >= 0; it was %d"% numpoints)
         if prop is None:
@@ -532,8 +536,14 @@
         # Set the data for the legend patch
         bbox = self._get_handle_text_bbox(renderer)
 
-        bbox = bbox.expanded(1 + self.pad, 1 + self.pad)
+        if self.pad:
+            bbox = bbox.expanded(1 + self.pad, 1 + self.pad)
+        else:
+            bbox = bbox.transformed(self.get_transform())
+            bbox = bbox.padded(self.borderpad*self.fontsize)
+            bbox = bbox.inverse_transformed(self.get_transform())
         l, b, w, h = bbox.bounds
+
         self.legendPatch.set_bounds(l, b, w, h)
 
         ox, oy = 0, 0                           # center

Modified: trunk/matplotlib/lib/matplotlib/rcsetup.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/rcsetup.py  2008-10-04 13:09:52 UTC (rev 
6146)
+++ trunk/matplotlib/lib/matplotlib/rcsetup.py  2008-10-05 01:38:31 UTC (rev 
6147)
@@ -416,7 +416,8 @@
     'legend.isaxes'      : [True,validate_bool],  # this option is internally 
ignored - it never served any useful purpose
     'legend.numpoints'   : [2, validate_int],     # the number of points in 
the legend line
     'legend.fontsize'    : ['large', validate_fontsize],
-    'legend.pad'         : [0.2, validate_float], # the fractional whitespace 
inside the legend border
+    'legend.pad'         : [0,   validate_float], # was 0.2, deprecated; the 
fractional whitespace inside the legend border
+    'legend.borderpad'   : [0.5, validate_float], # units are fontsize
     'legend.markerscale' : [1.0, validate_float], # the relative size of 
legend markers vs. original
 
     # the following dimensions are in axes coords

Modified: trunk/matplotlib/matplotlibrc.template
===================================================================
--- trunk/matplotlib/matplotlibrc.template      2008-10-04 13:09:52 UTC (rev 
6146)
+++ trunk/matplotlib/matplotlibrc.template      2008-10-05 01:38:31 UTC (rev 
6147)
@@ -233,7 +233,8 @@
 #legend.isaxes        : True
 #legend.numpoints     : 2      # the number of points in the legend line
 #legend.fontsize      : large
-#legend.pad           : 0.2    # the fractional whitespace inside the legend 
border
+#legend.pad           : 0.0    # deprecated; the fractional whitespace inside 
the legend border
+#legend.borderpad     : 0.5    # border whitspace in fontsize units
 #legend.markerscale   : 1.0    # the relative size of legend markers vs. 
original
 # the following dimensions are in axes coords
 #legend.labelsep      : 0.010  # the vertical space between the legend entries


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

-------------------------------------------------------------------------
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-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to