Estoy escribiendo un script rápido y sucio para generar tramas sobre la marcha. Estoy usando el siguiente código (de la documentación de Matplotlib ) como punto de partida:
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
No quiero mostrar el diagrama en una GUI, en cambio, quiero guardar el diagrama en un archivo (por ejemplo, foo.png), para que, por ejemplo, pueda usarse en scripts por lotes. ¿Cómo puedo hacer eso?
savefig
método. Entonces puedes llamar fig = plt.figure()
entonces fig.savefig(...)
.
plt.close(fig)
que es especialmente importante en los bucles grandes. De lo contrario, las cifras se mantienen abiertos a la espera en la memoria y todas las figuras abiertas se le aparecen al momento de celebrarplt.show()