@@ -63,6 +63,41 @@ def test_align_labels():
63
63
fig .align_labels ()
64
64
65
65
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
+
66
101
def test_figure_label ():
67
102
# pyplot figure creation, selection, and closing with label/number/instance
68
103
plt .close ('all' )
0 commit comments