MCPcopy Index your code
hub / github.com/matplotlib/matplotlib / draw

Method draw

lib/matplotlib/legend.py:766–797  ·  view source on GitHub ↗
(self, renderer)

Source from the content-addressed store, hash-verified

764
765 @allow_rasterization
766 def draw(self, renderer):
767 # docstring inherited
768 if not self.get_visible():
769 return
770
771 renderer.open_group('legend', gid=self.get_gid())
772
773 fontsize = renderer.points_to_pixels(self._fontsize)
774
775 # if mode == fill, set the width of the legend_box to the
776 # width of the parent (minus pads)
777 if self._mode in ["expand"]:
778 pad = 2 * (self.borderaxespad + self.borderpad) * fontsize
779 self._legend_box.set_width(self.get_bbox_to_anchor().width - pad)
780
781 # update the location and size of the legend. This needs to
782 # be done in any case to clip the figure right.
783 bbox = self._legend_box.get_window_extent(renderer)
784 self.legendPatch.set_bounds(bbox.bounds)
785 self.legendPatch.set_mutation_scale(fontsize)
786
787 # self.shadow is validated in __init__
788 # So by here it is a bool and self._shadow_props contains any configs
789
790 if self.shadow:
791 Shadow(self.legendPatch, **self._shadow_props).draw(renderer)
792
793 self.legendPatch.draw(renderer)
794 self._legend_box.draw(renderer)
795
796 renderer.close_group('legend')
797 self.stale = False
798
799 # _default_handler_map defines the default mapping between plot
800 # elements and the legend handlers.

Callers

nothing calls this directly

Calls 11

get_bbox_to_anchorMethod · 0.95
ShadowClass · 0.90
get_visibleMethod · 0.45
open_groupMethod · 0.45
get_gidMethod · 0.45
points_to_pixelsMethod · 0.45
set_widthMethod · 0.45
get_window_extentMethod · 0.45
set_boundsMethod · 0.45
set_mutation_scaleMethod · 0.45
close_groupMethod · 0.45

Tested by

no test coverage detected