tight_layout: fix regression for figures with non SubplotBase Axes #1163

merged 1 commit into from Aug 29, 2012
11 lib/matplotlib/figure.py
@@ -1424,16 +1424,15 @@ def tight_layout(self, renderer=None, pad=1.08, h_pad=None, w_pad=None, rect=Non
from tight_layout import get_renderer, get_tight_layout_figure
- no_go = [ax for ax in self.axes if not isinstance(ax, SubplotBase)]
- if no_go:
- warnings.Warn("Cannot use tight_layout;"
- " all Axes must descend from SubplotBase")
- return
+ subplot_axes = [ax for ax in self.axes if isinstance(ax, SubplotBase)]
+ if len(subplot_axes) < len(self.axes):
+ warnings.warn("tight_layout can only process Axes that descend "
mdboom Aug 29, 2012

I think the word "descend" here is a bit confusing. I think the more commonly used term in OO is "inherit". If there's no objections, since this is already merged, I'll just go ahead and fix this directly on master.

efiring Aug 29, 2012
+ "from SubplotBase; results might be incorrect.")
if renderer is None:
renderer = get_renderer(self)
- kwargs = get_tight_layout_figure(self, self.axes, renderer,
+ kwargs = get_tight_layout_figure(self, subplot_axes, renderer,
pad=pad, h_pad=h_pad, w_pad=w_pad,