Guardar el gráfico en un archivo de imagen en lugar de mostrarlo con Matplotlib
Estoy escribiendo un script rápido y sucio para generar gráficos sobre la marcha. Estoy usando el código siguiente (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 gráfico en una GUI, en su lugar, quiero guardar el gráfico en un archivo (digamos foo.png), para que, por ejemplo, pueda ser utilizado en scripts por lotes. ¿Cómo puedo hacerlo?
1049
3
Aunque la pregunta ha sido respondida, me gustaría añadir algunos consejos útiles cuando se utiliza matplotlib.pyplot.savefig. El formato del archivo puede ser especificado por la extensión:
Dará una salida rasterizada o vectorizada, respectivamente, que pueden ser útiles. Además, encontrará que
pylab
deja un generoso, a menudo indeseable, espacio en blanco alrededor de la imagen. Elimínelo con:La solución es:
Si no te gusta el concepto de "corriente", hazlo: