Python

Cómo crear gráficos múltiples en Seaborn

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.

Importación de datos de ejemplo: iris

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")

Creación de gráficos múltiples en Seaborn

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()
Gráficos múltiples en Seaborn distribuidos en una matriz de dos por dos

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.

Gráficos múltiples verticales con Seaborn

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()
Gráficos múltiples en Seaborn distribuidos en vector vertical de dos elementos

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.

Gráficos múltiples horizontales con Seaborn

# 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()
Gráficos múltiples en Seaborn distribuidos en vector horizontal de dos elementos

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.

Conclusiones

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.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Seaborn

Recent Posts

WOE e IV: La Base Matemática del Credit Scoring

Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…

6 horas ago

Lanzamiento de la versión 1.0 del laboratorio de Analytics Lane con nuevas herramientas de scoring

En el octavo aniversario de Analytics Lane seguimos ampliando nuestro laboratorio de aplicaciones interactivas y,…

3 días ago

¡Analytics Lane cumple ocho años!

Hoy, 2 de mayo de 2026, Analytics Lane cumple exactamente ocho años. Todo empezó con…

3 días ago

Analytics Lane lanza una Calculadora de Rentabilidad con Flujos Irregulares basada en TIR (XIRR)

La nueva herramienta permite calcular la rentabilidad real de inversiones con múltiples aportaciones, retiradas y…

4 días ago

Analytics Lane lanza un Conversor CSV ↔ JSON para transformar datos en tiempo real

Analytics Lane continúa ampliando su laboratorio de utilidades para desarrolladores y analistas de datos con…

4 días ago

Analytics Lane lanza un nuevo Formateador y Tester de Expresiones Regulares para desarrolladores

Analytics Lane continúa ampliando su laboratorio de herramientas para desarrolladores con el lanzamiento del Formateador…

5 días ago

This website uses cookies.