Revision: 8418
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8418&view=rev
Author:   leejjoon
Date:     2010-06-12 16:07:42 +0000 (Sat, 12 Jun 2010)

Log Message:
-----------
Fix markerscale and scatterpoints keyword arguments in legend. Thanks to Erik 
Tollerud

Modified Paths:
--------------
    trunk/matplotlib/lib/matplotlib/legend.py

Modified: trunk/matplotlib/lib/matplotlib/legend.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/legend.py   2010-06-12 07:48:54 UTC (rev 
8417)
+++ trunk/matplotlib/lib/matplotlib/legend.py   2010-06-12 16:07:42 UTC (rev 
8418)
@@ -53,9 +53,9 @@
         bbox = self.legend.get_bbox_to_anchor()
         _bbox_transform = BboxTransformFrom(bbox)
         self.legend._loc = 
tuple(_bbox_transform.transform_point(loc_in_canvas))
-        
 
 
+
 class Legend(Artist):
     """
     Place a legend on the axes at location loc.  Labels are a
@@ -256,7 +256,7 @@
             self._scatteryoffsets = np.array([3./8., 4./8., 2.5/8.])
         else:
             self._scatteryoffsets = np.asarray(scatteryoffsets)
-        reps =  int(self.numpoints / len(self._scatteryoffsets)) + 1
+        reps =  int(self.scatterpoints / len(self._scatteryoffsets)) + 1
         self._scatteryoffsets = np.tile(self._scatteryoffsets, 
reps)[:self.scatterpoints]
 
         # _legend_box is an OffsetBox instance that contains all
@@ -519,6 +519,9 @@
                 legline_marker.set_clip_box(None)
                 legline_marker.set_clip_path(None)
                 legline_marker.set_linestyle('None')
+                if self.markerscale !=1:
+                    newsz = legline_marker.get_markersize()*self.markerscale
+                    legline_marker.set_markersize(newsz)
                 # we don't want to add this to the return list because
                 # the texts and handles are assumed to be in one-to-one
                 # correpondence.
@@ -554,11 +557,8 @@
                 #ydata = self._scatteryoffsets
                 ydata = height*self._scatteryoffsets
 
-                size_max, size_min = max(handle.get_sizes()),\
-                                     min(handle.get_sizes())
-                # we may need to scale these sizes by "markerscale"
-                # attribute. But other handle types does not seem
-                # to care about this attribute and it is currently ignored.
+                size_max, size_min = 
max(handle.get_sizes())*self.markerscale**2,\
+                                     
min(handle.get_sizes())*self.markerscale**2
                 if self.scatterpoints < 4:
                     sizes = [.5*(size_max+size_min), size_max,
                              size_min]
@@ -582,11 +582,8 @@
 
                 ydata = height*self._scatteryoffsets
 
-                size_max, size_min = max(handle.get_sizes()),\
-                                     min(handle.get_sizes())
-                # we may need to scale these sizes by "markerscale"
-                # attribute. But other handle types does not seem
-                # to care about this attribute and it is currently ignored.
+                size_max, size_min = 
max(handle.get_sizes())*self.markerscale**2,\
+                                     
min(handle.get_sizes())*self.markerscale**2
                 if self.scatterpoints < 4:
                     sizes = [.5*(size_max+size_min), size_max,
                              size_min]
@@ -937,7 +934,7 @@
           * True : turn draggable on
 
           * False : turn draggable off
-          
+
         If draggable is on, you can drag the legend on the canvas with
         the mouse.  The DraggableLegend helper instance is returned if
         draggable is on.
@@ -947,7 +944,7 @@
         # if state is None we'll toggle
         if state is None:
             state = not is_draggable
-            
+
         if state:
             if self._draggable is None:
                 self._draggable = DraggableLegend(self, use_blit)


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

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to