Guardando imágenes en python a una calidad muy alta.

¿Cómo puedo guardar plots de python en muy alta calidad?

Es decir, cuando sigo acercándome al objeto guardado en un archivo pdf, ¿no hay nada borroso?

Además, ¿cuál sería el mejor modo de guardarlo?

png , eps ? ¿O algún otro? No puedo hacer pdf porque hay un número oculto que sucede con la comstackción de Latexmk .

Related of "Guardando imágenes en python a una calidad muy alta."

Si está utilizando matplotlib e intenta obtener buenas cifras en un documento de látex, guárdelo como eps. Específicamente, intente algo como esto después de ejecutar los comandos para trazar la imagen:

 plt.savefig('destination_path.eps', format='eps', dpi=1000) 

Descubrí que los archivos eps funcionan mejor y el parámetro dpi es lo que realmente hace que se vean bien en un documento.

ACTUALIZAR:

Para especificar la orientación de la figura antes de guardar, simplemente llame a lo siguiente antes de la llamada plt.savefig , pero después de crear la gráfica (suponiendo que ha trazado con un eje con el nombre del eje):

 ax.view_init(elev=elevation_angle, azim=azimuthal_angle) 

Donde elevation_angle es un número (en grados) que especifica el ángulo polar (desde el eje z vertical) y el ángulo azimuthal_angle especifica el ángulo azimutal (alrededor del eje z).

Encuentro que es más fácil determinar estos valores trazando primero la imagen y luego girándola y observando los valores actuales de los angularjs que aparecen hacia la parte inferior de la ventana, justo debajo de la gráfica real. Tenga en cuenta que las posiciones x, y, z aparecen de forma predeterminada, pero se reemplazan con los dos angularjs cuando comienza a hacer clic + arrastrar + rotar la imagen.

Sólo para agregar mis resultados, también utilizando matplotlib.

.eps puso todo mi texto en negrita y quitó la transparencia. .svg me dio imágenes de alta resolución que en realidad se parecían a mi gráfica.

 import matplotlib.pyplot as plt fig, ax = plt.subplots() # Do the plot code fig.savefig('myimage.svg', format='svg', dpi=1200) 

Utilicé 1200 ppp porque muchas revistas científicas requieren imágenes en 1200/600/300 ppp dependiendo de la imagen. Convertir a dpi deseado y formatear en GiMP o Inkscape.

EDITAR: Obviamente, los ppp no ​​importan ya que .svg son gráficos vectoriales y tienen “resolución infinita”.

Bueno, encontré la respuesta de spencerlyon2 funcionando, sin embargo, en caso de que alguien se encontrara sin saber qué hacer con esa única línea, tuve que hacerlo de esta manera:

 beingsaved = plt.figure() # some scatters plt.scatter(X_1_x, X_1_y) plt.scatter(X_2_x, X_2_y) beingsaved.savefig('destination_path.eps', format='eps', dpi=1000) 

En caso de que esté trabajando con plots marinas , en lugar de matplotlib, puede guardar una imagen .png como esta:

Supongamos que tiene un objeto de matrix (ya sea pandas o numpy) y desea tomar un mapa de calor:

 import seaborn as sb image = sb.heatmap(matrix) # this gets you the heatmap image.figure.savefig("C:/Your/Path/ ... /your_image.png") # this saves it 

Este código es compatible con la última versión de seaborn. Otros códigos alrededor de stackoverflow funcionaron solo para versiones anteriores.

Otra forma que me gusta es esta. Establecí el tamaño de la siguiente imagen de la siguiente manera:

 plt.subplots(figsize=(15,15)) 

Y luego, más adelante, grafico la salida en la consola, desde la cual puedo copiarla y pegarla donde quiera. (Dado que el transporte marítimo se construye sobre matplotlib, no habrá ningún problema).