Skip to content

Commit 358fb4b

Browse files
committed
Try again to fix Travis legend bug
1 parent 5c5631e commit 358fb4b

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

proplot/wrappers.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,24 @@ def _load_objects():
8787
}
8888

8989

90+
def _get_renderer(fig):
91+
"""Get renderer for calculating the legend bounding box for centered-row
92+
legends. This is copied from tight_layout.py in matplotlib."""
93+
# NOTE: This will be removed when #74 is done
94+
if fig._cachedRenderer:
95+
renderer = fig._cachedRenderer
96+
else:
97+
canvas = fig.canvas
98+
if canvas and hasattr(canvas, 'get_renderer'):
99+
renderer = canvas.get_renderer()
100+
else:
101+
warnings.warn('Falling back to Agg renderer.')
102+
from matplotlib.backends.backend_agg import FigureCanvasAgg
103+
canvas = FigureCanvasAgg(fig)
104+
renderer = canvas.get_renderer()
105+
return renderer
106+
107+
90108
def default_latlon(self, func, *args, latlon=True, **kwargs):
91109
"""
92110
Wraps %(methods)s for `~proplot.axes.BasemapAxes`.
@@ -2453,10 +2471,7 @@ def legend_wrapper(
24532471
legs[0].set_frame_on(True) # easy!
24542472
else:
24552473
# Get coordinates
2456-
if hasattr(self.figure.canvas, 'get_renderer'):
2457-
renderer = self.figure.canvas.get_renderer()
2458-
else:
2459-
renderer = self.figure._cachedRenderer
2474+
renderer = _get_renderer(self.figure)
24602475
bboxs = [leg.get_window_extent(renderer).transformed(
24612476
self.transAxes.inverted()) for leg in legs]
24622477
xmin, xmax = min(bbox.xmin for bbox in bboxs), max(

0 commit comments

Comments
 (0)