Leggendo il seguente articolo, sono riuscito a mettere una legenda al di fuori della trama.Salvataggio di Matplotlib con una legenda all'esterno della trama
codice:
import matplotlib.pyplot as pyplot
x = [0, 1, 2, 3, 4]
y = [xx*xx for xx in x]
fig = pyplot.figure()
ax = fig.add_subplot(111)
box = ax.get_position()
ax.set_position([box.x0, box.y0, box.width*0.8, box.height])
ax.plot(x, y)
leg = ax.legend(['abc'], loc = 'center left', bbox_to_anchor = (1.0, 0.5))
#pyplot.show()
fig.savefig('aaa.png', bbox_inches='tight')
pyplot.show()
mostra il grafico corretto con una legenda di fuori di essa. Ma quando lo salvo come file con fig.savefig()
, la legenda viene troncata.
Alcuni googling mi mostra soluzioni alternative come l'aggiunta di bbox_extra_artists=[leg.legendPatch]
o bbox_extra_artists=[leg]
a savefig()
, ma nessuno dei due ha funzionato.
Qual è il modo corretto per farlo? La versione Matplotlib è 0.99.3.
Grazie.
(vedo questo è vecchio thread, ma è prima in google) V'è una soluzione migliore includendo gli attori di savefig: http://stackoverflow.com/questions/10101700/moving-matplotlib-legend-outside-of-the-axis-makes-it-cutoff-by-the-figure-box – Alleo