(self, renderer)
| 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. |
nothing calls this directly
no test coverage detected