@@ -925,38 +925,28 @@ def delaxes(self, ax):
925
925
Remove the `~.axes.Axes` *ax* from the figure; update the current Axes.
926
926
"""
927
927
928
- def _reset_locators_and_formatters (axis ):
929
- # Set the formatters and locators to be associated with axis
930
- # (where previously they may have been associated with another
931
- # Axis instance)
932
- axis .get_major_formatter ().set_axis (axis )
933
- axis .get_major_locator ().set_axis (axis )
934
- axis .get_minor_formatter ().set_axis (axis )
935
- axis .get_minor_locator ().set_axis (axis )
936
-
937
- def _break_share_link (ax , grouper ):
938
- siblings = grouper .get_siblings (ax )
939
- if len (siblings ) > 1 :
940
- grouper .remove (ax )
941
- for last_ax in siblings :
942
- if ax is not last_ax :
943
- return last_ax
944
- return None
945
-
946
928
self ._axstack .remove (ax )
947
929
self ._axobservers .process ("_axes_change_event" , self )
948
930
self .stale = True
949
931
self ._localaxes .remove (ax )
950
932
self .canvas .release_mouse (ax )
951
933
952
- # Break link between any shared axes
953
- for name in ax ._axis_names :
954
- last_ax = _break_share_link (ax , ax ._shared_axes [name ])
955
- if last_ax is not None :
956
- _reset_locators_and_formatters (last_ax ._axis_map [name ])
957
-
958
- # Break link between any twinned axes
959
- _break_share_link (ax , ax ._twinned_axes )
934
+ for name in ax ._axis_names : # Break link between any shared axes
935
+ grouper = ax ._shared_axes [name ]
936
+ siblings = [other for other in grouper .get_siblings (ax ) if other is not ax ]
937
+ if not siblings : # Axes was not shared along this axis; we're done.
938
+ continue
939
+ grouper .remove (ax )
940
+ # Formatters and locators may previously have been associated with the now
941
+ # removed axis. Update them to point to an axis still there (we can pick
942
+ # any of them, and use the first sibling).
943
+ remaining_axis = siblings [0 ]._axis_map [name ]
944
+ remaining_axis .get_major_formatter ().set_axis (remaining_axis )
945
+ remaining_axis .get_major_locator ().set_axis (remaining_axis )
946
+ remaining_axis .get_minor_formatter ().set_axis (remaining_axis )
947
+ remaining_axis .get_minor_locator ().set_axis (remaining_axis )
948
+
949
+ ax ._twinned_axes .remove (ax ) # Break link between any twinned axes.
960
950
961
951
def clear (self , keep_observers = False ):
962
952
"""
0 commit comments