@@ -734,32 +734,30 @@ class HandlerPolyCollection(HandlerBase):
734
734
"""
735
735
def _update_prop (self , legend_handle , orig_handle ):
736
736
def first_color (colors ):
737
- if colors is None :
738
- return None
739
- colors = mcolors .to_rgba_array (colors )
740
- if len (colors ):
741
- return colors [0 ]
742
- else :
743
- return "none"
737
+ if colors .size == 0 :
738
+ return (0 , 0 , 0 , 0 )
739
+ return tuple (colors [0 ])
744
740
745
741
def get_first (prop_array ):
746
742
if len (prop_array ):
747
743
return prop_array [0 ]
748
744
else :
749
745
return None
750
- edgecolor = getattr (orig_handle , '_original_edgecolor' ,
751
- orig_handle .get_edgecolor ())
752
- legend_handle .set_edgecolor (first_color (edgecolor ))
753
- facecolor = getattr (orig_handle , '_original_facecolor' ,
754
- orig_handle .get_facecolor ())
755
- legend_handle .set_facecolor (first_color (facecolor ))
756
- legend_handle .set_fill (orig_handle .get_fill ())
757
- legend_handle .set_hatch (orig_handle .get_hatch ())
746
+
747
+ # orig_handle is a PolyCollection and legend_handle is a Patch.
748
+ # Directly set Patch color attributes (must be RGBA tuples).
749
+ legend_handle ._facecolor = first_color (orig_handle .get_facecolor ())
750
+ legend_handle ._edgecolor = first_color (orig_handle .get_edgecolor ())
751
+ legend_handle ._fill = orig_handle .get_fill ()
752
+ legend_handle ._hatch = orig_handle .get_hatch ()
753
+ # Hatch color is anomalous in having no getters and setters.
754
+ legend_handle ._hatch_color = orig_handle ._hatch_color
755
+ # Setters are fine for the remaining attributes.
758
756
legend_handle .set_linewidth (get_first (orig_handle .get_linewidths ()))
759
757
legend_handle .set_linestyle (get_first (orig_handle .get_linestyles ()))
760
758
legend_handle .set_transform (get_first (orig_handle .get_transforms ()))
761
759
legend_handle .set_figure (orig_handle .get_figure ())
762
- legend_handle . set_alpha ( orig_handle . get_alpha ())
760
+ # Alpha is already taken into account by the color attributes.
763
761
764
762
def create_artists (self , legend , orig_handle ,
765
763
xdescent , ydescent , width , height , fontsize , trans ):
0 commit comments