diff --git a/lib/mpl_toolkits/axes_grid1/inset_locator.py b/lib/mpl_toolkits/axes_grid1/inset_locator.py
index b3cd7c31604f..9d350510742f 100644
--- a/lib/mpl_toolkits/axes_grid1/inset_locator.py
+++ b/lib/mpl_toolkits/axes_grid1/inset_locator.py
@@ -278,10 +278,16 @@ def get_path(self):
return Path(path_merged)
-def _add_inset_axes(parent_axes, inset_axes):
+def _add_inset_axes(parent_axes, axes_class, axes_kwargs, axes_locator):
"""Helper function to add an inset axes and disable navigation in it."""
- parent_axes.figure.add_axes(inset_axes)
- inset_axes.set_navigate(False)
+ if axes_class is None:
+ axes_class = HostAxes
+ if axes_kwargs is None:
+ axes_kwargs = {}
+ inset_axes = axes_class(
+ parent_axes.figure, parent_axes.get_position(),
+ **{"navigate": False, **axes_kwargs, "axes_locator": axes_locator})
+ return parent_axes.figure.add_axes(inset_axes)
@_docstring.dedent_interpd
@@ -386,42 +392,25 @@ def inset_axes(parent_axes, width, height, loc='upper right',
Inset axes object created.
"""
- if axes_class is None:
- axes_class = HostAxes
- if axes_kwargs is None:
- axes_kwargs = {}
- inset_axes = axes_class(parent_axes.figure, parent_axes.get_position(),
- **axes_kwargs)
-
- if bbox_transform in [parent_axes.transAxes,
- parent_axes.figure.transFigure]:
- if bbox_to_anchor is None:
- _api.warn_external("Using the axes or figure transform requires a "
- "bounding box in the respective coordinates. "
- "Using bbox_to_anchor=(0, 0, 1, 1) now.")
- bbox_to_anchor = (0, 0, 1, 1)
-
+ if (bbox_transform in [parent_axes.transAxes, parent_axes.figure.transFigure]
+ and bbox_to_anchor is None):
+ _api.warn_external("Using the axes or figure transform requires a "
+ "bounding box in the respective coordinates. "
+ "Using bbox_to_anchor=(0, 0, 1, 1) now.")
+ bbox_to_anchor = (0, 0, 1, 1)
if bbox_to_anchor is None:
bbox_to_anchor = parent_axes.bbox
-
if (isinstance(bbox_to_anchor, tuple) and
(isinstance(width, str) or isinstance(height, str))):
if len(bbox_to_anchor) != 4:
raise ValueError("Using relative units for width or height "
"requires to provide a 4-tuple or a "
"`Bbox` instance to `bbox_to_anchor.")
-
- axes_locator = AnchoredSizeLocator(bbox_to_anchor,
- width, height,
- loc=loc,
- bbox_transform=bbox_transform,
- borderpad=borderpad)
-
- inset_axes.set_axes_locator(axes_locator)
-
- _add_inset_axes(parent_axes, inset_axes)
-
- return inset_axes
+ return _add_inset_axes(
+ parent_axes, axes_class, axes_kwargs,
+ AnchoredSizeLocator(
+ bbox_to_anchor, width, height, loc=loc,
+ bbox_transform=bbox_transform, borderpad=borderpad))
@_docstring.dedent_interpd
@@ -493,22 +482,12 @@ def zoomed_inset_axes(parent_axes, zoom, loc='upper right',
Inset axes object created.
"""
- if axes_class is None:
- axes_class = HostAxes
- if axes_kwargs is None:
- axes_kwargs = {}
- inset_axes = axes_class(parent_axes.figure, parent_axes.get_position(),
- **axes_kwargs)
-
- axes_locator = AnchoredZoomLocator(parent_axes, zoom=zoom, loc=loc,
- bbox_to_anchor=bbox_to_anchor,
- bbox_transform=bbox_transform,
- borderpad=borderpad)
- inset_axes.set_axes_locator(axes_locator)
-
- _add_inset_axes(parent_axes, inset_axes)
-
- return inset_axes
+ return _add_inset_axes(
+ parent_axes, axes_class, axes_kwargs,
+ AnchoredZoomLocator(
+ parent_axes, zoom=zoom, loc=loc,
+ bbox_to_anchor=bbox_to_anchor, bbox_transform=bbox_transform,
+ borderpad=borderpad))
class _TransformedBboxWithCallback(TransformedBbox):
@@ -565,11 +544,8 @@ def mark_inset(parent_axes, inset_axes, loc1, loc2, **kwargs):
inset_axes.viewLim, parent_axes.transData,
callback=parent_axes._unstale_viewLim)
- if 'fill' in kwargs:
- pp = BboxPatch(rect, **kwargs)
- else:
- fill = bool({'fc', 'facecolor', 'color'}.intersection(kwargs))
- pp = BboxPatch(rect, fill=fill, **kwargs)
+ kwargs.setdefault("fill", bool({'fc', 'facecolor', 'color'}.intersection(kwargs)))
+ pp = BboxPatch(rect, **kwargs)
parent_axes.add_patch(pp)
p1 = BboxConnector(inset_axes.bbox, rect, loc1=loc1, **kwargs)