@@ -239,15 +239,19 @@ def __init__(self, parent, userax=True):
239239 parent ._axes .add_child_axes (outer_ax )
240240 outer_ax ._axes .child_axes .remove (parent )
241241 else :
242- parent .remove ()
242+ try :
243+ parent .remove ()
244+ except ValueError :
245+ pass # Already removed
243246 else :
244247 outer_ax = parent
245248
246- # swap axes in the stack:
247- fig ._localaxes .remove (outer_ax )
248- fig ._axstack .remove (outer_ax )
249- fig ._localaxes .add (self )
250- fig ._axstack .add (self )
249+ # swap axes in the stack if its in there:
250+ if outer_ax in fig ._localaxes :
251+ fig ._localaxes .remove (outer_ax )
252+ fig ._axstack .remove (outer_ax )
253+ fig ._localaxes .add (self )
254+ fig ._axstack .add (self )
251255 inner_ax = outer_ax .inset_axes ([0 , 0 , 1 , 1 ])
252256 self .__dict__ .update (inner_ax .__dict__ )
253257
@@ -261,8 +265,8 @@ def __init__(self, parent, userax=True):
261265 self .outer_ax .set_xticks = self .inner_ax .set_xticks
262266 self .outer_ax .set_yticks = self .inner_ax .set_yticks
263267 for attr in ["get_position" , "set_aspect" ,
264- "_remove_method" , "_set_position" ,
265- "set_position" ]:
268+ "_remove_method" , "_set_position" ,
269+ "set_position" , "cla" , "draw" ]:
266270 setattr (self , attr , getattr (self .outer_ax , attr ))
267271 self ._colorbar_info = None # used for mpl-created axes
268272 if hasattr (self .outer_ax , "get_subplotspec" ):
@@ -272,7 +276,11 @@ def __init__(self, parent, userax=True):
272276 if userax :
273277 self ._colorbar_info = 'user'
274278 # point the parent's methods all at this axes...
279+ origdict = parent .__dict__
275280 parent .__dict__ = self .__dict__
281+ for key in origdict .keys ():
282+ if key not in parent .__dict__ :
283+ parent .__dict__ [key ] = origdict [key ]
276284
277285 def _set_inner_bounds (self , bounds ):
278286 """
@@ -281,9 +289,6 @@ def _set_inner_bounds(self, bounds):
281289 self .inner_ax ._axes_locator = _TransformedBoundsLocator (
282290 bounds , self .outer_ax .transAxes )
283291
284- def draw (self , renderer ):
285- self .outer_ax .draw (renderer )
286-
287292
288293class _ColorbarSpine (mspines .Spine ):
289294 def __init__ (self , axes ):
0 commit comments