Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d3f410d

Browse files
committed
Inline AnchoredOffsetBox._update_offset_func.
It is only called in `get_window_extent` -- and in `draw`, but *that* call is immediately followed by a call to `get_window_extent`, so it is redundant.
1 parent 78d087f commit d3f410d

File tree

2 files changed

+11
-28
lines changed

2 files changed

+11
-28
lines changed

lib/matplotlib/offsetbox.py

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,27 +1035,19 @@ def set_bbox_to_anchor(self, bbox, transform=None):
10351035

10361036
def get_window_extent(self, renderer):
10371037
# docstring inherited
1038-
self._update_offset_func(renderer)
1039-
return super().get_window_extent(renderer)
1040-
1041-
def _update_offset_func(self, renderer, fontsize=None):
1042-
"""
1043-
Update the offset func which depends on the dpi of the
1044-
renderer (because of the padding).
1045-
"""
1046-
if fontsize is None:
1047-
fontsize = renderer.points_to_pixels(
1048-
self.prop.get_size_in_points())
1038+
# Update the offset func, which depends on the dpi of the renderer
1039+
# (because of the padding).
1040+
fontsize = renderer.points_to_pixels(self.prop.get_size_in_points())
10491041

10501042
def _offset(w, h, xd, yd, renderer):
10511043
bbox = Bbox.from_bounds(0, 0, w, h)
1052-
borderpad = self.borderpad * fontsize
1044+
pad = self.borderpad * fontsize
10531045
bbox_to_anchor = self.get_bbox_to_anchor()
1054-
x0, y0 = _get_anchored_bbox(
1055-
self.loc, bbox, bbox_to_anchor, borderpad)
1046+
x0, y0 = _get_anchored_bbox(self.loc, bbox, bbox_to_anchor, pad)
10561047
return x0 + xd, y0 + yd
10571048

10581049
self.set_offset(_offset)
1050+
return super().get_window_extent(renderer)
10591051

10601052
def update_frame(self, bbox, fontsize=None):
10611053
self.patch.set_bounds(bbox.bounds)
@@ -1067,11 +1059,9 @@ def draw(self, renderer):
10671059
if not self.get_visible():
10681060
return
10691061

1070-
fontsize = renderer.points_to_pixels(self.prop.get_size_in_points())
1071-
self._update_offset_func(renderer, fontsize)
1072-
10731062
# update the location and size of the legend
10741063
bbox = self.get_window_extent(renderer)
1064+
fontsize = renderer.points_to_pixels(self.prop.get_size_in_points())
10751065
self.update_frame(bbox, fontsize)
10761066
self.patch.draw(renderer)
10771067

lib/mpl_toolkits/axes_grid1/inset_locator.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,18 +70,11 @@ def draw(self, renderer):
7070

7171
def __call__(self, ax, renderer):
7272
self.axes = ax
73-
74-
fontsize = renderer.points_to_pixels(self.prop.get_size_in_points())
75-
self._update_offset_func(renderer, fontsize)
76-
77-
width, height, xdescent, ydescent = self.get_extent(renderer)
78-
79-
px, py = self.get_offset(width, height, 0, 0, renderer)
80-
bbox_canvas = Bbox.from_bounds(px, py, width, height)
73+
bbox = self.get_window_extent(renderer)
74+
px, py = self.get_offset(bbox.width, bbox.height, 0, 0, renderer)
75+
bbox_canvas = Bbox.from_bounds(px, py, bbox.width, bbox.height)
8176
tr = ax.figure.transFigure.inverted()
82-
bb = TransformedBbox(bbox_canvas, tr)
83-
84-
return bb
77+
return TransformedBbox(bbox_canvas, tr)
8578

8679

8780
class AnchoredSizeLocator(AnchoredLocatorBase):

0 commit comments

Comments
 (0)