Los gráficos múltiples, también conocidos por su nombre en inglés subplots, son una forma efectiva para mostrar múltiples visualizaciones de datos en una misma figura. Permitiendo ver al mismo tiempo más de un tipo de dato o tendencia. La mayoría de las bibliotecas de visualización de datos incluye funciones y métodos para esto, lo que no es una excepción en el caso de Seaborn. En esta entrada, se verá cómo se pueden crear gráficos múltiples en Seaborn para disponer de múltiples visualizaciones de una única figura.
Antes de poder crear un gráfico es necesario importar un conjunto de datos. Para hacer más fácil el seguimiento de los ejemplos se va a utilizar uno de los conjuntos de datos que se incluyen en la instalación de Seaborn, el conjunto de datos iris. Un conjunto de datos que contiene las mediciones en centímetros de la longitud y ancho de los pétalos y sépalos de 150 flores de tres especies diferentes. La importación se puede hacer, después de haber importado Seaborn, con la función load_dataset().
import seaborn as sns
# Cargar los datos de ejemplo de Seaborn
iris = sns.load_dataset("iris") Seaborn está basado en Matplotlib, por lo que se pueden usar las herramientas de esta para la creación de gráficos múltiples. La función subplots() de Matplotlib permite crear figuras con varios ejes, uno para cada una de los gráficos. Una vez creada la figura y los ejes, solamente se debe llamar a las funciones de Seaborn con un parámetro que indique en qué eje se debe crear la gráfica.
A la hora de crear una figura con varias gráficas con la función subplots() de Matplotlib es necesario tener en cuenta dos parámetros: nrows, con el que se indica el número de filas que tendrá la figura, y ncols, con el que se indica el número de columnas. La función devuelve dos parámetros, el primero hace referencia a la figura y el segundo es una lista con los diferentes ejes. En la segunda variable, el primer eje hace referencia a posición en las filas y el segundo a la columna. Teniendo esto en mente se puede crear una figura con cuatro gráficas con el siguiente ejemplo.
import matplotlib.pyplot as plt
# Crear una figura y ejes para los subplots
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10, 8))
# Crear los subplots utilizando Seaborn
sns.scatterplot(x=iris['sepal_length'], y=iris['sepal_width'], ax=axes[0, 0])
sns.boxplot(x=iris['species'], y=iris['sepal_length'], ax=axes[0, 1])
sns.histplot(iris['petal_length'], ax=axes[1, 0])
sns.kdeplot(iris['petal_width'], ax=axes[1, 1])
# Añadir títulos y etiquetas a los subplots
axes[0, 0].set_title('Scatterplot')
axes[0, 1].set_title('Boxplot')
axes[1, 0].set_title('Histograma')
axes[1, 1].set_title('Kernel Density Estimation')
# Ajustar el espaciado entre los subplots
plt.tight_layout()
# Mostrar los subplots
plt.show() En este caso primero se ha creado una figura con cuatro ejes mediante la función subplots() de Matplotlib. Indicando que esta figura tenga dos filas de ejes (nrows), dos columnas de ejes (ncols) y el tamaño de la figura sea de 5 por 8 (figsize). Posteriormente se han creado cuatro gráficas diferentes y cada una de ellas se ha dibujado en un eje diferente, el cual se ha indicado a las funciones mediante la propiedad ax. Para lo que se han usado funciones de visualización de Seaborn, como scatterplot(), boxplot(), histplot() y kdeplot(). Sin olvidar agregar los títulos mediante la propiedad set_title() de cada uno de los ejes. Finalmente se ajusta el espacio entre los gráficos múltiples y se muestra la gráfica.
Al llamar a la función subplots() de Matplotlib, en el caso de que no se indique el número de columnas mediante la propiedad ncols, o este sea uno, los ejes se distribuirán de forma vertical. Por lo que no se tendrá una matriz de ejes, sino que un vector. Por ejemplo, se puede ver cómo se crea una figura con dos gráficos mediante el siguiente código.
# Crear una figura y ejes para los subplots
fig, axes = plt.subplots(nrows=2, figsize=(5, 8))
# Crear los subplots utilizando Seaborn
sns.scatterplot(x=iris['sepal_length'], y=iris['sepal_width'], ax=axes[0])
sns.boxplot(x=iris['species'], y=iris['sepal_length'], ax=axes[1])
# Añadir títulos y etiquetas a los subplots
axes[0].set_title('Scatterplot')
axes[1].set_title('Boxplot')
# Ajustar el espaciado entre los subplots
plt.tight_layout()
# Mostrar los subplots
plt.show() Nótese que, como se ha comentado antes, la variable axis ya no contiene una matriz, sino que un vector. Por lo que si se intentase usar el valor axes[0, 0] ser producirá un error en tiempo de ejecución.
# Crear una figura y ejes para los subplots
fig, axes = plt.subplots(ncols=2, figsize=(10, 4))
# Crear los subplots utilizando Seaborn
sns.scatterplot(x=iris['sepal_length'], y=iris['sepal_width'], ax=axes[0])
sns.boxplot(x=iris['species'], y=iris['sepal_length'], ax=axes[1])
# Añadir títulos y etiquetas a los subplots
axes[0].set_title('Scatterplot')
axes[1].set_title('Boxplot')
# Ajustar el espaciado entre los subplots
plt.tight_layout()
# Mostrar los subplots
plt.show() De forma análoga al caso anterior, si no se indica el número de filas este será uno. En el siguiente código se puede ver cómo crear gráficos múltiples con una distribución vertical.
La creación de gráficos múltiples en Seaborn permite organizar y presentar las visualizaciones de manera clara y eficiente. Pudiéndose combinar diferentes tipos de gráficos en una misma figura. Algo que facilita la comprensión de los patrones y las relaciones existentes en los conjuntos de datos.
Es necesario tener en cuenta que usar demasiadas gráficas en una figura puede ser contraproducente. Ya que el tamaño de cada una de las gráficas es menor, pudiendo evitar que se vean claramente los patrones que se desean mostrar. Siempre, al crear gráficos múltiples, es necesario evaluar si no es una mejor opción crear varias figuras en lugar de una sola.
En la era del dato, las organizaciones se enfrentan al reto de gestionar volúmenes masivos…
En la serie Creación de una API REST con Express y TypeScript construimos una API…
Durante la Segunda Guerra Mundial, la Fuerza Aérea de Estados Unidos quería reforzar sus aviones…
En muchas situaciones —ya sea para grabar un tutorial, tomar capturas de pantalla profesionales, probar…
Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…
En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…
This website uses cookies.