Je connais les questions suivantes:
Matplotlib savefig avec une légende en dehors de l'intrigue
Comment sortir la légende de l'intrigue
Il semble que les réponses à ces questions aient le luxe de pouvoir jouer avec le rétrécissement exact de l'axe pour que la légende rentre.
Réduire les axes, cependant, n'est pas une solution idéale car il rend les données plus petites, ce qui les rend en fait plus difficiles à interpréter; surtout quand c'est complexe et qu'il y a beaucoup de choses qui se passent ... donc besoin d'une grande légende
L'exemple d'une légende complexe dans la documentation en démontre la nécessité car la légende de leur tracé masque en réalité complètement plusieurs points de données.
http://matplotlib.sourceforge.net/users/legend_guide.html#legend-of-complex-plots
Ce que j'aimerais pouvoir faire, c'est agrandir dynamiquement la taille de la boîte de figurine pour accueillir la légende de la figure en expansion.
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')
Remarquez comment l'étiquette finale 'Inverse tan' est en fait en dehors de la boîte à chiffres (et semble mal coupée - pas la qualité de la publication!)
Enfin, on m'a dit que c'est un comportement normal dans R et LaTeX, donc je suis un peu confus pourquoi c'est si difficile en python ... Y a-t-il une raison historique? Matlab est-il également pauvre à ce sujet?
J'ai la version (seulement légèrement) plus longue de ce code sur pastebin http://pastebin.com/grVjc007
tight_layout()
il faudrait le modifier pour tenir compte des légendes.