Sto scrivendo uno script veloce e sporco per generare trame al volo. Sto usando il codice seguente (dalla documentazione di Matplotlib ) come punto di partenza:
from pylab import figure, axes, pie, title, show
# Make a square figure and axes
figure(1, figsize=(6, 6))
ax = axes([0.1, 0.1, 0.8, 0.8])
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
fracs = [15, 30, 45, 10]
explode = (0, 0.05, 0, 0)
pie(fracs, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True)
title('Raining Hogs and Dogs', bbox={'facecolor': '0.8', 'pad': 5})
show() # Actually, don't show, just save to foo.png
Non voglio visualizzare la trama su una GUI, invece, voglio salvare la trama in un file (diciamo foo.png), in modo che, ad esempio, possa essere utilizzata negli script batch. Come lo faccio?
savefig
metodo. Quindi puoi chiamare fig = plt.figure()
allora fig.savefig(...)
.
plt.close(fig)
che è particolarmente importante nei grandi loop. Altrimenti le figure restano aperte e attendono in memoria e tutte le figure aperte verranno mostrate al momento dell'esecuzioneplt.show()