Información y ayuda

HPC Universidad de Oriente

Herramientas de usuario

Herramientas del sitio


hpc-grafico-python

Gráficos con Python

Para realizar gráficos con Python se pueden usar varias bibliotecas. Las más comunes son Matplotlib y Seaborn.

Matplotlib es una biblioteca completa para crear visualizaciones estáticas, animadas e interactivas en Python.

Seaborn es una biblioteca de visualización de datos de Python basada en Matplotlib. Proporciona una interfaz de alto nivel para dibujar gráficos estadísticos atractivos e informativos. La visualización es la parte central de Seaborn que ayuda en la exploración y comprensión de los datos. Se debe estar familiarizado con Numpy, Matplotlib y Pandas para graficar con Seaborn.

La creación de gráficos con Matplotlib o Seaborn en una PC es relativamente fácil, pero la realización de gráficos en el HPC UO puede generar errores. Ellos se deben a que los nodos del HPC están optimizados para realizar cálculos y no para desplegar gráficos. Además, porque Matplotlib trabaja con los llamados backend. En este caso, el frontend es el código del gráfico mientras que el backend hace todo el trabajo detrás para crear la figura. Hay dos tipos de backend: interactivo y no interactivo.

Matplotlib y Seaborn trabajan por defecto con el backend interactivo, que se usa al graficar en una PC. Pero para crear gráficos con estas bibliotecas en el HPC UO hay que especificar el uso del backend no interactivo.

La especificación o selección del backend se puede hacer de varias formas: con el parámetro rcParms[“backend”], especificando la variable de entorno MPLBACKEND o usando la función matplotlib.use(). Se recomienda usar la función matplotlib.use() para especificar el backend no interactivo y usar el backend Agg (que usa la biblioteca C++ Anti-Grain Geomety).

Para la especificación del backend no interactivo, los usuarios tienen que escribir dos líneas en el codigo.py de Matplotlib o Seaborn:

import matplotlib
matplotlib.use("Agg")

Es importante notar que las líneas anteriores tienen que aparecer antes de que matplotlib.pyplot sea importado por primera vez.

Otro aspecto a tener en cuenta es que en el codigo.py que se envía a ejecutar en el HPC UO no tiene sentido incluir plt.show(). Si se incluye, el sistema devuelve un error.

Finalmente, para grabar los ficheros creados usando el backend no interactivo, hay que usar

matplotlib.pyplot.savefig('nombrefichero').

Los formatos gráficos soportados son eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif y tiff.

A continuación, dos códigos ilustrativos, uno de Matplotlib y otro de Seaborn.

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
x = [1,2,3,4]
plt.plot(x)
plt.savefig(linea.png)
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import seaborn as sns

# Set Seaborn style
sns.set_style('darkgrid')
# Import Data
titanic_dataset = sns.load_dataset("titanic")

# Construct plot
sns.barplot(x = "sex", y = "survived", data = titanic_dataset)
plt.savefig(survied_vs_sex.png)

Descargar ejemplo de varios gráficos con Seaborn.

hpc-grafico-python.txt · Última modificación: 2022/11/29 16:34 por Beatriz Valdés Díaz