From 06c96f1e0251d37d85183c3c747063da3a7edce9 Mon Sep 17 00:00:00 2001 From: Ruth Comer <10599679+rcomer@users.noreply.github.com> Date: Sun, 25 May 2025 16:29:38 +0100 Subject: [PATCH] Fix contrained layout applying pad multiple times --- lib/matplotlib/_constrained_layout.py | 41 +++++++----------- .../constrained_layout12.png | Bin 12369 -> 31832 bytes .../constrained_layout17.png | Bin 8786 -> 21245 bytes .../constrained_layout8.png | Bin 6995 -> 9221 bytes .../tests/test_constrainedlayout.py | 34 +++++++++++++++ 5 files changed, 50 insertions(+), 25 deletions(-) diff --git a/lib/matplotlib/_constrained_layout.py b/lib/matplotlib/_constrained_layout.py index f5f23581bd9d..ca62bed3e107 100644 --- a/lib/matplotlib/_constrained_layout.py +++ b/lib/matplotlib/_constrained_layout.py @@ -538,14 +538,10 @@ def match_submerged_margins(layoutgrids, fig): # interior columns: if len(ss1.colspan) > 1: - maxsubl = np.max( - lg1.margin_vals['left'][ss1.colspan[1:]] + - lg1.margin_vals['leftcb'][ss1.colspan[1:]] - ) - maxsubr = np.max( - lg1.margin_vals['right'][ss1.colspan[:-1]] + - lg1.margin_vals['rightcb'][ss1.colspan[:-1]] - ) + leftcb = lg1.margin_vals['leftcb'][ss1.colspan[1:]] + rightcb = lg1.margin_vals['rightcb'][ss1.colspan[:-1]] + maxsubl = np.max(lg1.margin_vals['left'][ss1.colspan[1:]] + leftcb) + maxsubr = np.max(lg1.margin_vals['right'][ss1.colspan[:-1]] + rightcb) for ax2 in axs: ss2 = ax2.get_subplotspec() lg2 = layoutgrids[ss2.get_gridspec()] @@ -560,22 +556,17 @@ def match_submerged_margins(layoutgrids, fig): lg2.margin_vals['rightcb'][ss2.colspan[:-1]]) if maxsubr2 > maxsubr: maxsubr = maxsubr2 - for i in ss1.colspan[1:]: - lg1.edit_margin_min('left', maxsubl, cell=i) - for i in ss1.colspan[:-1]: - lg1.edit_margin_min('right', maxsubr, cell=i) + for i, cb in zip(ss1.colspan[1:], leftcb): + lg1.edit_margin_min('left', maxsubl - cb, cell=i) + for i, cb in zip(ss1.colspan[:-1], rightcb): + lg1.edit_margin_min('right', maxsubr - cb, cell=i) # interior rows: if len(ss1.rowspan) > 1: - maxsubt = np.max( - lg1.margin_vals['top'][ss1.rowspan[1:]] + - lg1.margin_vals['topcb'][ss1.rowspan[1:]] - ) - maxsubb = np.max( - lg1.margin_vals['bottom'][ss1.rowspan[:-1]] + - lg1.margin_vals['bottomcb'][ss1.rowspan[:-1]] - ) - + topcb = lg1.margin_vals['topcb'][ss1.rowspan[1:]] + bottomcb = lg1.margin_vals['bottomcb'][ss1.rowspan[:-1]] + maxsubt = np.max(lg1.margin_vals['top'][ss1.rowspan[1:]] + topcb) + maxsubb = np.max(lg1.margin_vals['bottom'][ss1.rowspan[:-1]] + bottomcb) for ax2 in axs: ss2 = ax2.get_subplotspec() lg2 = layoutgrids[ss2.get_gridspec()] @@ -589,10 +580,10 @@ def match_submerged_margins(layoutgrids, fig): lg2.margin_vals['bottom'][ss2.rowspan[:-1]] + lg2.margin_vals['bottomcb'][ss2.rowspan[:-1]] ), maxsubb]) - for i in ss1.rowspan[1:]: - lg1.edit_margin_min('top', maxsubt, cell=i) - for i in ss1.rowspan[:-1]: - lg1.edit_margin_min('bottom', maxsubb, cell=i) + for i, cb in zip(ss1.rowspan[1:], topcb): + lg1.edit_margin_min('top', maxsubt - cb, cell=i) + for i, cb in zip(ss1.rowspan[:-1], bottomcb): + lg1.edit_margin_min('bottom', maxsubb - cb, cell=i) return axs diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout12.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout12.png index 6f5625ae26056dd64836efa4690dfc3e64480faa..b4565e4c5c18f99cd524d90f2cff147ebd89059a 100644 GIT binary patch literal 31832 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 literal 8786 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 P0B*WkMw%t+xM%+bNnNe# diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout8.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout8.png index 99ba9f294a7a5447095ffd17a43f930a3842b5cc..5bcd4248fe2eb3cc74d60338816a724a7b9ccaf6 100644 GIT binary patch literal 9221 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 mKz_I2sruC>^}?R+JchD!{Xa5V*dKA9^ literal 6995 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 diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py index df2dbd6f43bd..20260f431cd3 100644 --- a/lib/matplotlib/tests/test_constrainedlayout.py +++ b/lib/matplotlib/tests/test_constrainedlayout.py @@ -741,3 +741,37 @@ def test_submerged_subfig(): for ax in axs[1:]: assert np.allclose(ax.get_position().bounds[-1], axs[0].get_position().bounds[-1], atol=1e-6) + + +def test_submerged_height_gap(): + """Test that the gap between rows does not depend on the number of columns.""" + + mosaic1 = "AC;BC" + mosaic2 = "ACDE;BCDE" + + fig1, ax_dir1 = plt.subplot_mosaic(mosaic1, layout='constrained') + fig2, ax_dir2 = plt.subplot_mosaic(mosaic2, layout='constrained') + for fig in fig1, fig2: + fig.get_layout_engine().set(h_pad=0.2) + fig.draw_without_rendering() + + for label in 'A', 'B': + np.testing.assert_allclose(ax_dir1[label].get_position().bounds[-1], + ax_dir2[label].get_position().bounds[-1]) + + +def test_submerged_width_gap(): + """Test that the gap between columns does not depend on the number of rows.""" + + mosaic1 = "AB;CC" + mosaic2 = "AB;CC;DD" + + fig1, ax_dir1 = plt.subplot_mosaic(mosaic1, layout='constrained') + fig2, ax_dir2 = plt.subplot_mosaic(mosaic2, layout='constrained') + for fig in fig1, fig2: + fig.get_layout_engine().set(w_pad=0.2) + fig.draw_without_rendering() + + for label in 'A', 'B': + np.testing.assert_allclose(ax_dir1[label].get_position().bounds[-2], + ax_dir2[label].get_position().bounds[-2])