Skip to content

Commit 8bdd0ca

Browse files
committed
Emit "axes not compatible with tight_layout" in a single place.
... instead of triplicating it on the caller side.
1 parent f2b5486 commit 8bdd0ca

File tree

4 files changed

+8
-24
lines changed

4 files changed

+8
-24
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 & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -467,19 +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-
470+
from ._tight_layout import get_subplotspec_list
478471
if renderer is None:
479472
renderer = figure._get_renderer()
480-
481473
kwargs = _tight_layout.get_tight_layout_figure(
482-
figure, figure.axes, subplotspec_list, renderer,
474+
figure, figure.axes,
475+
get_subplotspec_list(figure.axes, grid_spec=self), renderer,
483476
pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect)
484477
if kwargs:
485478
self.update(**kwargs)

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