diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index cd26af84ccbe..11b42b1e1ac7 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -1577,6 +1577,7 @@ def add_subfigure(self, subplotspec, **kwargs): """ sf = SubFigure(self, subplotspec, **kwargs) self.subfigs += [sf] + sf._remove_method = self.subfigs.remove return sf def sca(self, a): diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py index 6d6a3d772f4e..24d4f1c0f059 100644 --- a/lib/matplotlib/tests/test_figure.py +++ b/lib/matplotlib/tests/test_figure.py @@ -1482,6 +1482,13 @@ def test_subfigures_wspace_hspace(): np.testing.assert_allclose(sub_figs[1, 2].bbox.max, [w, h * 0.4]) +def test_subfigure_remove(): + fig = plt.figure() + sfs = fig.subfigures(2, 2) + sfs[1, 1].remove() + assert len(fig.subfigs) == 3 + + def test_add_subplot_kwargs(): # fig.add_subplot() always creates new axes, even if axes kwargs differ. fig = plt.figure()