xlabel with savefig pyplot outside found example matplotlib ipython-notebook

matplotlib - with - Llamando a pylab.savefig sin pantalla en ipython



plt title python (2)

Esta es una pregunta matplotlib, y puede evitar esto utilizando un backend que no se muestra al usuario, por ejemplo, ''Agg'':

import matplotlib matplotlib.use(''Agg'') import matplotlib.pyplot as plt plt.plot([1,2,3]) plt.savefig(''/tmp/test.png'')

EDITAR: Si no quiere perder la posibilidad de mostrar tramas, desactive el modo interactivo y solo llame a plt.show() cuando esté listo para mostrar las tramas:

import matplotlib.pyplot as plt # Turn interactive plotting off plt.ioff() # Create a new figure, plot into it, then close it so it never gets displayed fig = plt.figure() plt.plot([1,2,3]) plt.savefig(''/tmp/test0.png'') plt.close(fig) # Create a new figure, plot into it, then don''t close it so it does get displayed plt.figure() plt.plot([1,3,2]) plt.savefig(''/tmp/test1.png'') # Display all "open" (non-closed) figures plt.show()

Necesito crear una figura en un archivo sin mostrarlo en el cuaderno de IPython. No tengo clara la interacción entre IPython y matplotlib.pylab en este sentido. Pero, cuando llamo a pylab.savefig("test.png") , se muestra la cifra actual además de guardarse en test.png . Al automatizar la creación de un gran conjunto de archivos de trazado, esto a menudo es indeseable. O en la situación de que se desee un archivo intermedio para procesamiento externo por otra aplicación.

No estoy seguro de si se trata de una pregunta de cuaderno matplotlib o IPython .


No necesitamos plt.ioff() o plt.show() (si usamos %matplotlib inline ). Puede probar el código anterior sin plt.ioff() . plt.close() tiene el papel esencial. Prueba este:

%matplotlib inline import pylab as plt # It doesn''t matter you add line below. You can even replace it by ''plt.ion()'', but you will see no changes. ## plt.ioff() # Create a new figure, plot into it, then close it so it never gets displayed fig = plt.figure() plt.plot([1,2,3]) plt.savefig(''test0.png'') plt.close(fig) # Create a new figure, plot into it, then don''t close it so it does get displayed fig2 = plt.figure() plt.plot([1,3,2]) plt.savefig(''test1.png'')

Si ejecuta este código en iPython, se mostrará un segundo gráfico, y si agrega plt.close(fig2) al final del mismo, no verá nada.

En conclusión, si cierra figura por plt.close(fig) , no se mostrará.