Skip to content

Commit 6c09a56

Browse files
authored
Merge pull request matplotlib#24343 from anntzer/tlw
Emit "axes not compatible with tight_layout" in a single place.
2 parents 0b6d370 + 7d2503b commit 6c09a56

File tree

4 files changed

+8
-25
lines changed

4 files changed

+8
-25
lines changed

lib/matplotlib/_tight_layout.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,10 @@ def get_tight_layout_figure(fig, axes_list, subplotspec_list, renderer,
226226
ss_to_subplots = {ss: [] for ss in subplotspec_list}
227227
for ax, ss in zip(axes_list, subplotspec_list):
228228
ss_to_subplots[ss].append(ax)
229-
ss_to_subplots.pop(None, None) # Skip subplotspec == None.
229+
if ss_to_subplots.pop(None, None):
230+
_api.warn_external(
231+
"This figure includes Axes that are not compatible with "
232+
"tight_layout, so results might be incorrect.")
230233
if not ss_to_subplots:
231234
return {}
232235
subplot_list = list(ss_to_subplots.values())

lib/matplotlib/figure.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3424,12 +3424,6 @@ def tight_layout(self, *, pad=1.08, h_pad=None, w_pad=None, rect=None):
34243424
.Figure.set_layout_engine
34253425
.pyplot.tight_layout
34263426
"""
3427-
from ._tight_layout import get_subplotspec_list
3428-
subplotspec_list = get_subplotspec_list(self.axes)
3429-
if None in subplotspec_list:
3430-
_api.warn_external("This figure includes Axes that are not "
3431-
"compatible with tight_layout, so results "
3432-
"might be incorrect.")
34333427
# note that here we do not permanently set the figures engine to
34343428
# tight_layout but rather just perform the layout in place and remove
34353429
# any previous engines.

lib/matplotlib/gridspec.py

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -467,20 +467,12 @@ def tight_layout(self, figure, renderer=None,
467467
coordinates that the whole subplots area (including labels) will
468468
fit into. Default (None) is the whole figure.
469469
"""
470-
471-
subplotspec_list = _tight_layout.get_subplotspec_list(
472-
figure.axes, grid_spec=self)
473-
if None in subplotspec_list:
474-
_api.warn_external("This figure includes Axes that are not "
475-
"compatible with tight_layout, so results "
476-
"might be incorrect.")
477-
478470
if renderer is None:
479471
renderer = figure._get_renderer()
480-
481472
kwargs = _tight_layout.get_tight_layout_figure(
482-
figure, figure.axes, subplotspec_list, renderer,
483-
pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect)
473+
figure, figure.axes,
474+
_tight_layout.get_subplotspec_list(figure.axes, grid_spec=self),
475+
renderer, pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect)
484476
if kwargs:
485477
self.update(**kwargs)
486478

lib/matplotlib/layout_engine.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
from contextlib import nullcontext
1818

1919
import matplotlib as mpl
20-
import matplotlib._api as _api
2120

2221
from matplotlib._constrained_layout import do_constrained_layout
2322
from matplotlib._tight_layout import (get_subplotspec_list,
@@ -170,15 +169,10 @@ def execute(self, fig):
170169
See also: `.figure.Figure.tight_layout` and `.pyplot.tight_layout`.
171170
"""
172171
info = self._params
173-
subplotspec_list = get_subplotspec_list(fig.axes)
174-
if None in subplotspec_list:
175-
_api.warn_external("This figure includes Axes that are not "
176-
"compatible with tight_layout, so results "
177-
"might be incorrect.")
178172
renderer = fig._get_renderer()
179173
with getattr(renderer, "_draw_disabled", nullcontext)():
180174
kwargs = get_tight_layout_figure(
181-
fig, fig.axes, subplotspec_list, renderer,
175+
fig, fig.axes, get_subplotspec_list(fig.axes), renderer,
182176
pad=info['pad'], h_pad=info['h_pad'], w_pad=info['w_pad'],
183177
rect=info['rect'])
184178
if kwargs:

0 commit comments

Comments
 (0)