@@ -63,6 +63,41 @@ def test_align_labels():
6363 fig .align_labels ()
6464
6565
66+ def test_align_labels_stray_axes ():
67+ fig , axs = plt .subplots (2 , 2 )
68+ for nn , ax in enumerate (axs .flat ):
69+ ax .set_xlabel ('Boo' )
70+ ax .set_xlabel ('Who' )
71+ ax .plot (np .arange (4 )** nn , np .arange (4 )** nn )
72+ fig .align_ylabels ()
73+ fig .align_xlabels ()
74+ fig .draw_without_rendering ()
75+ xn = np .zeros (4 )
76+ yn = np .zeros (4 )
77+ for nn , ax in enumerate (axs .flat ):
78+ yn [nn ] = ax .xaxis .label .get_position ()[1 ]
79+ xn [nn ] = ax .yaxis .label .get_position ()[0 ]
80+ np .testing .assert_allclose (xn [:2 ], xn [2 :])
81+ np .testing .assert_allclose (yn [::2 ], yn [1 ::2 ])
82+
83+ fig , axs = plt .subplots (2 , 2 , constrained_layout = True )
84+ for nn , ax in enumerate (axs .flat ):
85+ ax .set_xlabel ('Boo' )
86+ ax .set_xlabel ('Who' )
87+ pc = ax .pcolormesh (np .random .randn (10 , 10 ))
88+ fig .colorbar (pc , ax = ax )
89+ fig .align_ylabels ()
90+ fig .align_xlabels ()
91+ fig .draw_without_rendering ()
92+ xn = np .zeros (4 )
93+ yn = np .zeros (4 )
94+ for nn , ax in enumerate (axs .flat ):
95+ yn [nn ] = ax .xaxis .label .get_position ()[1 ]
96+ xn [nn ] = ax .yaxis .label .get_position ()[0 ]
97+ np .testing .assert_allclose (xn [:2 ], xn [2 :])
98+ np .testing .assert_allclose (yn [::2 ], yn [1 ::2 ])
99+
100+
66101def test_figure_label ():
67102 # pyplot figure creation, selection, and closing with label/number/instance
68103 plt .close ('all' )
0 commit comments