diff --git a/lib/mpl_toolkits/axes_grid1/inset_locator.py b/lib/mpl_toolkits/axes_grid1/inset_locator.py index 9d350510742f..46284c6802f1 100644 --- a/lib/mpl_toolkits/axes_grid1/inset_locator.py +++ b/lib/mpl_toolkits/axes_grid1/inset_locator.py @@ -69,6 +69,8 @@ def draw(self, renderer): raise RuntimeError("No draw method should be called") def __call__(self, ax, renderer): + if renderer is None: + renderer = ax.figure._get_renderer() self.axes = ax bbox = self.get_window_extent(renderer) px, py = self.get_offset(bbox.width, bbox.height, 0, 0, renderer) diff --git a/lib/mpl_toolkits/axes_grid1/tests/test_axes_grid1.py b/lib/mpl_toolkits/axes_grid1/tests/test_axes_grid1.py index b61574787772..8a05dd9010ce 100644 --- a/lib/mpl_toolkits/axes_grid1/tests/test_axes_grid1.py +++ b/lib/mpl_toolkits/axes_grid1/tests/test_axes_grid1.py @@ -1,3 +1,4 @@ +from io import BytesIO from itertools import product import platform @@ -119,6 +120,17 @@ def test_inset_colorbar_tight_layout_smoketest(): plt.tight_layout() +def test_inset_axes_tight_bbox_smoketest(): + fig, (ax, ax2) = plt.subplots(1, 2, figsize=(5.5, 2.8)) + try: + inset_axes(ax, width=1.3, height=0.9) + buffer = BytesIO() + fig.savefig(buffer, format="png", bbox_inches="tight") + assert buffer.getbuffer().nbytes > 0 + finally: + plt.close(fig) + + @image_comparison(['inset_locator.png'], style='default', remove_text=True) def test_inset_locator(): fig, ax = plt.subplots(figsize=[5, 4])