Librería

GGally

Autor principal

Barret Schloerke

Diagrama de pares con ggpairs

El paquete GGally contiene la función ggpairs que es el equivalente en ggplot2 a la función pairs de R base. Puedes pasar un data frame que contenga tanto variables continuas como categóricas.

Por defecto, el panel superior mostrará la correlación entre las variables continuas, el inferior los diagramas de dispersión entre las variables continuas, la diagonal los gráficos de densidad de las variables continuas y los lados los histogramas y box plots de la combinación entre variables continuas y categóricas.

# install.packages("GGally")
library(GGally)

ggpairs(iris) 

Gráfico de pares en ggplot2

Selección de las columnas

El argumento columns puede ser usado para seleccionar las columnas del data frame. Puedes especificar un vector numérico o de caracteres indicando los nombres de las variables. En el siguiente ejemplo estamos eliminando la variable categórica del conjunto de datos.

# install.packages("GGally")
library(GGally)

ggpairs(iris,          # Data frame
        columns = 1:4) # Columnas

Función ggpairs

Color por grupo

Puedes pasar componententes estéticos a aes. Esto te permitirá crear y colorear gráficos de densidad, de correlación u otro tipo de gráficos en base a grupos.

# install.packages("GGally")
library(GGally)

ggpairs(iris,                 # Data frame
        columns = 1:4,        # Columnas
        aes(color = Species,  # Color por grupo (var. categórica)
            alpha = 0.5))     # Transparencia

Función equivalente a pairs en ggplot2 con colores por grupo

Tamaño de la fuente

Quizás hayas notado que los valores de la correlación no entran en el panel superior. Si necesitas cambiar el tamaño de la fuente puedes usar la siguiente línea de código:

# install.packages("GGally")
library(GGally)

ggpairs(iris, columns = 1:4, aes(color = Species, alpha = 0.5),
        upper = list(continuous = wrap("cor", size = 2.5)))

ggpairs tamaño de la fuente

Paneles superior, inferior y diagonal

Los paneles superior, inferior y diagonal son completamente personalizables con los argumentos upper, lower y diag. Por defecto cada argumento es una lista con una serie de variables. Tendrás que buscar las funciones que acaben en ggally_() y pasarlas a los argumentos como caracter.

Variables continuas

Matriz de diagramas de dispersión en ggplot2

Panel superior

Puedes pasar "points" a la variable continuous de la lista del argumento upper para añadir gráficos de dispersión en el panel superior. Pasamos "points" porque existe una función llamada ggally_points.

# install.packages("GGally")
library(GGally)

ggpairs(iris, columns = 1:4, aes(color = Species, alpha = 0.5),
        upper = list(continuous = "points"))

pairs con líneas de regresión en ggplot2

Panel inferior

En el siguiente ejemplo añadimos gráficos de dispersión con curvas de regresión (ggally_smooth).

# install.packages("GGally")
library(GGally)

ggpairs(iris, columns = 1:4, aes(color = Species, alpha = 0.5),
        lower = list(continuous = "smooth"))

Función ggpairs sin la diagonal

Diagonal

El argumento diag es por defecto "densityDiag". Puedes pasar "barDiag" o eliminar la diagonal con "blankDiag".

# install.packages("GGally")
library(GGally)

ggpairs(iris, columns = 1:4, aes(color = Species, alpha = 0.5),
        diag = list(continuous = "blankDiag"))

Variables categóricas

Si el conjunto de datos contiene variables categóricas es posible personalizar los gráficos representando la combinación entre las variables categóricas y las numéricas, tal y como se muestra a continuación.

Superior

Usando la variable combo puedes asignar diferentes gráficos para las variables categóricas en el panel superior. En el siguiente ejemplo estamos agregando densidades por cada grupo (ggally_facetdensity).

# install.packages("GGally")
library(GGally)

ggpairs(iris[3:5], aes(color = Species, alpha = 0.5),
        upper = list(combo = "facetdensity"))

Agregando densidades de las variables categóricas en ggpairs

Inferior

Lo mismo se puede aplicar en el panel inferior. En el siguiente ejemplo estamos mostrando el conteo de las observaciones usando rectángulos con áreas proporcionales (ggally_count).

# install.packages("GGally")
library(GGally)

ggpairs(iris[3:5], aes(color = Species, alpha = 0.5),
        lower = list(combo = "count"))

ggpairs variables categóricas

También te puede interesar