Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b2e8434

Browse files
authored
Merge pull request #24627 from tacaswell/mnt/cla_clear_chlildren
MNT: when clearing an Axes via clear/cla fully detach children
2 parents 7eaac32 + c77fa4c commit b2e8434

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

lib/matplotlib/axes/_base.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1300,7 +1300,9 @@ def __clear(self):
13001300
self._get_patches_for_fill = _process_plot_var_args(self, 'fill')
13011301

13021302
self._gridOn = mpl.rcParams['axes.grid']
1303-
self._children = []
1303+
old_children, self._children = self._children, []
1304+
for chld in old_children:
1305+
chld.axes = chld.figure = None
13041306
self._mouseover_set = _OrderedSet()
13051307
self.child_axes = []
13061308
self._current_image = None # strictly for pyplot via _sci, _gci

lib/matplotlib/tests/test_axes.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8370,6 +8370,19 @@ def test_extent_units():
83708370
im.set_extent([2, 12, date_first, date_last], clip=False)
83718371

83728372

8373+
def test_cla_clears_children_axes_and_fig():
8374+
fig, ax = plt.subplots()
8375+
lines = ax.plot([], [], [], [])
8376+
img = ax.imshow([[1]])
8377+
for art in lines + [img]:
8378+
assert art.axes is ax
8379+
assert art.figure is fig
8380+
ax.clear()
8381+
for art in lines + [img]:
8382+
assert art.axes is None
8383+
assert art.figure is None
8384+
8385+
83738386
def test_scatter_color_repr_error():
83748387

83758388
def get_next_color():

0 commit comments

Comments
 (0)