Pairs plot (gráfico por pares) en seaborn con la función pairplot

Conjunto de datos

Considera el conocido conjunto de datos iris para este tutorial, que contiene cuatro variables numéricas representando el ancho y largo de los pétalos y sépalos de diferentes plantas categorizadas por especies en una quinta variable categórica.

import seaborn as sns

df = sns.load_dataset("iris")

Crear y personalizar un gráfico por pares con pairplot

Pairs plot por defecto

La función pairplot de seaborn permite crear gráficos por pares en Python. Tan solo necesitas pasar tu conjunto de datos en long-format, donde cada columna es una variable y cada fila un individuo.

import seaborn as sns

sns.pairplot(df)

Gráfico pairs en seaborn

Selección de variables

Ten en cuenta que también puedes seleccionar las variables que quieras incluir en la representación con vars. En caso de que quieras incluir distintas variables para los ejes X e Y puedes utilizar los argumentos x_vars e y_bars en su lugar.

import seaborn as sns

sns.pairplot(df, vars = ["petal_length", "petal_width"])

Selección de variables en la función pairsplot en seaborn

Color por grupo

Si el conjunto de datos con el que estás trabajando contiene una variable categórica que representa grupos puedes pasarla al argumento hue, de modo que las representaciones gráficas se crearán y colorearán en base a esos grupos.

import seaborn as sns

sns.pairplot(df, hue = "species")

Pairs plot en seaborn por grupo

Personalización

Los argumentos plot_kws y diag_kws se pueden utilizar para realizar una personalización más avanzada del gráfico pasando diccionarios. Mientras que el primero se usa para modificar los estilos de los gráficos de los paneles inferior y superior, el segundo permite personalizar el estilo de la diagonal.

import seaborn as sns

sns.pairplot(df,
             plot_kws = {'color': 'green', 'marker': 's'},
             diag_kws = {'color': 'orange'})

Forma y color de los símbolos en la función pairplot de seaborn

Símbolos personalizados para cada grupo

Ten en cuenta que puedes sobrescribir los símbolos por defecto del gráfico de dispersión con el argumento markers, tal y como se muestra a continuación. Recuerda que puedes pasar una selección de símbolos a esta función.

import seaborn as sns

sns.pairplot(df, hue = "species",
             markers = ['d', 'p', 'v'])

Gráfico pairplot con símbolos personalizados por grupo en seaborn

Eliminar el panel superior

El argumento corner es False por defecto. Si se establece como True se creará un gráfico triangular eliminando el panel superior del gráfico.

import seaborn as sns

sns.pairplot(df, hue = "species",
             corner = True)

Eliminar el panel superior en la función pairplot en Python para crear un gráfico triangular

Tipos de gráficos por pares

Existen varios tipos de gráficos que se pueden crear mediante el argumento kind. Por defecto, se mostrarán gráficos de dispersión en los paneles con histogramas en la diagonal, pero también puedes seleccionar "kde" para estimaciones de densidad tipo núcleo, "hist" para histogramas e histogramas 2D y "reg" para agregar rectas de regresión sobre las nubes de puntos.

Gráfico por pares en Python con estimaciones de densidad tipo núcleo

Estimación tipo núcleo

import seaborn as sns

sns.pairplot(df, kind = "kde")

Agregar histogramas 2D a un gráfico por pares en Python

Histogramas 2D

import seaborn as sns

sns.pairplot(df, kind = "hist")

Agregar regresiones a un gráfico por pares en Python

Regresión

import seaborn as sns

sns.pairplot(df, kind = "reg")

Recuerda que también puedes especificar el argumento hue en estos escenarios, de modo que los datos se representarán y colorearán por grupo.

Tipo de diagonal

La diagonal por defecto de pairplot representa histogramas. Sin embargo, estableciendo el argumento diag_kind como "kde" puedes agregar estimaciones de densidad tipo núcleo en lugar de histogramas y estableciendo el argumento como None mostrará gráficos de dispersión de cada variable frente a si misma (una línea recta), tal y como se muestra en los ejemplos siguientes.

Diagonal con estimaciones de la densidad

import seaborn as sns

sns.pairplot(df, diag_kind = "kde")

Estimaciones de densidad tipo núcleo en lugar de histogramas en la diagonal de pairplot en seaborn

Eliminar la diagonal

import seaborn as sns

sns.pairplot(df, diag_kind = None)

Eliminar la diagonal de pairplot en seaborn

Data Sketches

A journey of imagination, exploration, and beautiful data visualizations

Comprar en Amazon
Better Data Visualizations

A Guide for Scholars, Researchers, and Wonks

Comprar en Amazon

También te puede interesar