Thanks for a response, but unfortunately it doesn't seem to work. I have some sample code on pastebin http://pastebin.com/W6JmbCsz in case the following does not email out well
# -*- coding: utf-8 -*-
Created on Thu Apr 12 11:16:03 2012
Using the current stable version of pythonxy on Windows 7 32bit
Notice how the figure box is not placed correctly, effectively missing the
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-2*np.pi, 2*np.pi, 0.1)
fig = plt.figure(1, figsize=(8,6))
ax = fig.add_subplot(111)
ax.plot(x, np.sin(x), label='Sine')
ax.plot(x, np.cos(x), label='Cosine')
ax.plot(x, np.arctan(x), label='Inverse tan')
handles, labels = ax.get_legend_handles_labels()
lgd = ax.legend(handles, labels, loc=9, bbox_to_anchor=(0.5,-0.1))
fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox='tight')
On Thu, Apr 12, 2012 at 2:05 AM, Jonathan Bruck <email@example.com> wrote:
Forgive me as this is the first time I've posted here. I've asked a question on StackOverFlow:
The question relates to adjusting the size of the figure box to accommodate a large legend when the legend is placed below instead of on top of the axes.
I thought I'd post here to see if there are any other answers to avoiding having the figure box cut off the bottom of the legend.
If you only care about saving the figure, the savefig() method can take bbox='tight' and bbox_extra_artists=[legnd_obj] arguments (assuming you save the legend to such a variable. As for on-screen displays, I have yet to find a solution.