savefig pyplot plots jpg how guardar bbox_inches matplotlib jpeg figure

pyplot - save matplotlib figure as jpg



matplotlib savefig en formato jpeg (5)

Estoy usando matplotlib (dentro de pylab) para mostrar figuras. Y quiero guardarlos en formato .jpg. Cuando simplemente uso el comando savefig con extensión jpg, esto devuelve:

ValueError: Format "jpg" is not supported.

Supported formats: emf, eps, pdf, png, ps, raw, rgba, svg, svgz.

¿Hay una manera de realizar esto?


Acabo de actualizar matplotlib a 1.1.0 en mi sistema y ahora me permite guardar en jpg con savefig .

Para actualizar a matplotlib 1.1.0 con pip , use este comando:

pip install -U ''http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/matplotlib-1.1.0.tar.gz/download''

EDITAR (para responder al comentario):

pylab es simplemente una agregación de los espacios de nombres matplotlib.pyplot y numpy (así como algunos otros) en un solo espacio de nombres.

En mi sistema, pylab es simplemente esto:

from matplotlib.pylab import * import matplotlib.pylab __doc__ = matplotlib.pylab.__doc__

Puede ver que pylab es solo otro espacio de nombres en su instalación de matplotlib. Por lo tanto, no importa si lo importa o no con pylab o con matplotlib.pyplot .

Si aún tiene problemas, supongo que el backend de macosx no admite el guardado de gráficos en jpg. Podrías intentar usar un backend diferente. Vea here para más información.


Matplotlib puede manejar jpg de forma directa y transparente si ha instalado PIL. No necesitas llamarlo, lo hará por sí mismo. Si Python no puede encontrar PIL, generará un error.


Para aclarar y actualizar @neo respuesta útil y la pregunta original. Una solución limpia consiste en instalar Pillow , que es una versión actualizada de la Biblioteca de Imágenes de Python (PIL). Esto se hace usando

pip install pillow

Una vez que se instala Pillow, los comandos estándar de Matplotlib

import matplotlib.pyplot as plt plt.plot([1, 2]) plt.savefig(''image.jpg'')

guardará la figura en un archivo JPEG y ya no generará un ValueError.

Contrariamente a la respuesta de @amillerrhodes, a partir de Matplotlib 2.0, los archivos JPEG no parecen ser compatibles. Si elimino el paquete Pillow, todavía recibo un ValueError sobre un tipo de archivo no compatible.


Puede guardar una imagen como ''png'' y usar la biblioteca de imágenes de Python (PIL) para convertir este archivo a ''jpg'':

import Image import matplotlib.pyplot as plt plt.plot(range(10)) plt.savefig(''testplot.png'') Image.open(''testplot.png'').save(''testplot.jpg'',''JPEG'')

El original:

La imagen JPEG:


Simplemente instale la almohada con la pip install pillow y funcionará.