====== Gráficos con Python ======
Para realizar gráficos con Python se pueden usar varias bibliotecas. Las más comunes son Matplotlib y Seaborn.
[[https://matplotlib.org|Matplotlib]] es una biblioteca completa para crear visualizaciones estáticas, animadas e interactivas en Python.
[[https://seaborn.pydata.org|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 {{ :wiki:seabornplots.tar.gz |ejemplo de varios gráficos con Seaborn}}.