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