17
17
plot, *fontsize* is the fontsize in pixels, and *handlebox* is a
18
18
OffsetBox instance. Within the call, you should create relevant
19
19
artists (using relevant properties from the *legend* and/or
20
- *orig_handle*) and add them into the handlebox. The artists needs to
20
+ *orig_handle*) and add them into the handlebox. The artists need to
21
21
be scaled according to the fontsize (note that the size is in pixel,
22
22
i.e., this is dpi-scaled value).
23
23
@@ -46,7 +46,7 @@ def update_from_first_child(tgt, src):
46
46
47
47
class HandlerBase :
48
48
"""
49
- A Base class for default legend handlers.
49
+ A base class for default legend handlers.
50
50
51
51
The derived classes are meant to override *create_artists* method, which
52
52
has a following signature.::
@@ -319,7 +319,7 @@ def patch_func(legend=legend, orig_handle=orig_handle,
319
319
xdescent=xdescent, ydescent=ydescent,
320
320
width=width, height=height, fontsize=fontsize)
321
321
322
- Subsequently the created artist will have its ``update_prop``
322
+ Subsequently, the created artist will have its ``update_prop``
323
323
method called and the appropriate transform will be applied.
324
324
325
325
**kwargs
@@ -353,37 +353,33 @@ class HandlerStepPatch(HandlerBase):
353
353
Handler for `~.matplotlib.patches.StepPatch` instances.
354
354
"""
355
355
356
- def _create_patch (self , legend , orig_handle ,
357
- xdescent , ydescent , width , height , fontsize ):
358
- p = Rectangle (xy = (- xdescent , - ydescent ),
359
- color = orig_handle .get_facecolor (),
360
- width = width , height = height )
361
- return p
362
-
363
- # Unfilled StepPatch should show as a line
364
- def _create_line (self , legend , orig_handle ,
365
- xdescent , ydescent , width , height , fontsize ):
356
+ @staticmethod
357
+ def _create_patch (orig_handle , xdescent , ydescent , width , height ):
358
+ return Rectangle (xy = (- xdescent , - ydescent ), width = width ,
359
+ height = height , color = orig_handle .get_facecolor ())
366
360
367
- # Overwrite manually because patch and line properties don't mix
361
+ @staticmethod
362
+ def _create_line (orig_handle , width , height ):
363
+ # Unfilled StepPatch should show as a line
368
364
legline = Line2D ([0 , width ], [height / 2 , height / 2 ],
369
365
color = orig_handle .get_edgecolor (),
370
366
linestyle = orig_handle .get_linestyle (),
371
367
linewidth = orig_handle .get_linewidth (),
372
368
)
373
369
370
+ # Overwrite manually because patch and line properties don't mix
374
371
legline .set_drawstyle ('default' )
375
372
legline .set_marker ("" )
376
373
return legline
377
374
378
375
def create_artists (self , legend , orig_handle ,
379
376
xdescent , ydescent , width , height , fontsize , trans ):
380
377
if orig_handle .get_fill () or (orig_handle .get_hatch () is not None ):
381
- p = self ._create_patch (legend , orig_handle ,
382
- xdescent , ydescent , width , height , fontsize )
378
+ p = self ._create_patch (orig_handle , xdescent , ydescent , width ,
379
+ height )
383
380
self .update_prop (p , orig_handle , legend )
384
381
else :
385
- p = self ._create_line (legend , orig_handle ,
386
- xdescent , ydescent , width , height , fontsize )
382
+ p = self ._create_line (orig_handle , width , height )
387
383
p .set_transform (trans )
388
384
return [p ]
389
385
0 commit comments