Mover a legenda do matplotlib para fora do eixo faz com que ela seja cortada pela caixa de figura

Estou familiarizado com as seguintes perguntas:

Savefig Matplotlib com uma lenda fora do enredo

Como colocar a lenda fora do enredo

Parece que as respostas nessas perguntas têm o luxo de ser capazes de mexer com o exato encolhimento do eixo para que a legenda se encaixe.

Encolher os eixos, no entanto, não é uma solução ideal, pois torna os dados menores, tornando-os, na verdade, mais difíceis de interpretar; particularmente quando o seu complexo e há muitas coisas acontecendo ... daí a necessidade de uma grande lenda

O exemplo de uma legenda complexa na documentação demonstra a necessidade disso, porque a legenda em sua plot oculta completamente vários pontos de dados.

http://matplotlib.sourceforge.net/users/legend_guide.html#legend-of-complex-plots

O que eu gostaria de poder fazer é expandir dinamicamente o tamanho da caixa de figura para acomodar a legenda da figura em expansão.

<code>import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-2*np.pi, 2*np.pi, 0.1)
fig = plt.figure(1)
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')
lgd = ax.legend(loc=9, bbox_to_anchor=(0.5,0))
ax.grid('on')
</code>

Observe como a etiqueta final 'Bronzeado inverso' está realmente fora da caixa de figura (e parece muito ruim - não é a qualidade da publicação!)

Finalmente, eu tenho dito que este é um comportamento normal em R e LaTeX, então estou um pouco confuso porque isso é tão difícil em python ... Existe uma razão histórica? O Matlab é igualmente pobre neste assunto?

Eu tenho a versão (apenas ligeiramente) mais longa deste código no pastebinhttp://pastebin.com/grVjc007

questionAnswers(3)

yourAnswerToTheQuestion