example - Matplotlib: Guardar figura como archivo desde el cuaderno iPython
plot python 3 (2)
Estoy tratando de guardar una figura de Matplotlib como un archivo de un cuaderno de iPython.
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([1,1,1,1])
ax.plot([1,2])
fig.savefig(''test.png'')
La vista en línea en el cuaderno iPython se ve bien:
Sin embargo, el archivo ''test.png'' está casi vacío. Parece que la trama se desplaza hacia la parte superior derecha, puedes ver las etiquetas de marca ''1.0'' y ''0.0'' en la esquina.
¿Cómo puedo producir un archivo desde el cuaderno iPython que se parece a la vista en línea?
En realidad, el savefig
está funcionando correctamente. Cuando llama a add_axes
, su lista especifica un rectángulo: [left, bottom, width, height]
. Ya que la figura va de 0 a 1 en ambos ejes con el origen en la parte inferior izquierda, estás haciendo un rectángulo de ancho y altura 1 a partir de la parte superior derecha de la figura. Es probable que desee hacer ax = fig.add_axes([0,0,1,1])
.
No estoy seguro de por qué la trama en línea no respeta dónde has colocado los ejes. Si tuviera que adivinar, diría que el backend en línea calcula automáticamente el cuadro delimitador y coloca la figura en línea de acuerdo con eso.
Problema resuelto: agregue ''bbox_inches=''tight''
a savefig.
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([1,1,1,1])
plt.plot([1,2])
savefig(''test.png'', bbox_inches=''tight'')
No entiendo lo que está sucediendo aquí, pero el archivo parece el archivo en línea de la notebook iPython ahora. Hurra.