====== 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}}.