@@ -239,15 +239,19 @@ def __init__(self, parent, userax=True):
239
239
parent ._axes .add_child_axes (outer_ax )
240
240
outer_ax ._axes .child_axes .remove (parent )
241
241
else :
242
- parent .remove ()
242
+ try :
243
+ parent .remove ()
244
+ except ValueError :
245
+ pass # Already removed
243
246
else :
244
247
outer_ax = parent
245
248
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 )
251
255
inner_ax = outer_ax .inset_axes ([0 , 0 , 1 , 1 ])
252
256
self .__dict__ .update (inner_ax .__dict__ )
253
257
@@ -261,8 +265,8 @@ def __init__(self, parent, userax=True):
261
265
self .outer_ax .set_xticks = self .inner_ax .set_xticks
262
266
self .outer_ax .set_yticks = self .inner_ax .set_yticks
263
267
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" ]:
266
270
setattr (self , attr , getattr (self .outer_ax , attr ))
267
271
self ._colorbar_info = None # used for mpl-created axes
268
272
if hasattr (self .outer_ax , "get_subplotspec" ):
@@ -272,7 +276,11 @@ def __init__(self, parent, userax=True):
272
276
if userax :
273
277
self ._colorbar_info = 'user'
274
278
# point the parent's methods all at this axes...
279
+ origdict = parent .__dict__
275
280
parent .__dict__ = self .__dict__
281
+ for key in origdict .keys ():
282
+ if key not in parent .__dict__ :
283
+ parent .__dict__ [key ] = origdict [key ]
276
284
277
285
def _set_inner_bounds (self , bounds ):
278
286
"""
@@ -281,9 +289,6 @@ def _set_inner_bounds(self, bounds):
281
289
self .inner_ax ._axes_locator = _TransformedBoundsLocator (
282
290
bounds , self .outer_ax .transAxes )
283
291
284
- def draw (self , renderer ):
285
- self .outer_ax .draw (renderer )
286
-
287
292
288
293
class _ColorbarSpine (mspines .Spine ):
289
294
def __init__ (self , axes ):
0 commit comments