Skip to content

Commit bcce38f

Browse files
authored
Merge pull request #24353 from meeseeksmachine/auto-backport-of-pr-24343-on-v3.6.x
Backport PR #24343 on branch v3.6.x (Emit "axes not compatible with tight_layout" in a single place.)
2 parents 634f9ed + 5e1c308 commit bcce38f

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
@@ -268,7 +268,10 @@ def get_tight_layout_figure(fig, axes_list, subplotspec_list, renderer,
268268
ss_to_subplots = {ss: [] for ss in subplotspec_list}
269269
for ax, ss in zip(axes_list, subplotspec_list):
270270
ss_to_subplots[ss].append(ax)
271-
ss_to_subplots.pop(None, None) # Skip subplotspec == None.
271+
if ss_to_subplots.pop(None, None):
272+
_api.warn_external(
273+
"This figure includes Axes that are not compatible with "
274+
"tight_layout, so results might be incorrect.")
272275
if not ss_to_subplots:
273276
return {}
274277
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
@@ -3429,12 +3429,6 @@ def tight_layout(self, *, pad=1.08, h_pad=None, w_pad=None, rect=None):
34293429
.Figure.set_layout_engine
34303430
.pyplot.tight_layout
34313431
"""
3432-
from ._tight_layout import get_subplotspec_list
3433-
subplotspec_list = get_subplotspec_list(self.axes)
3434-
if None in subplotspec_list:
3435-
_api.warn_external("This figure includes Axes that are not "
3436-
"compatible with tight_layout, so results "
3437-
"might be incorrect.")
34383432
# note that here we do not permanently set the figures engine to
34393433
# tight_layout but rather just perform the layout in place and remove
34403434
# 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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy