Gráfico de coordenadas paralelas en ggplot2 con ggparcoord

Librería

GGally

Autor principal

Barret Schloerke

Conjunto de datos de muestra

En los siguientes ejemplos vamos a usar el conjunto de datos iris, que contiene distintas medidas sobre el largo y ancho de los pétalos y sépalos de flores de diferentes especies.

iris

Gráfico de coordenadas paralelas básico con GGally

La función ggparcoord del paquete GGally permite crear gráficos de coordenadas paralelas en ggplot2. Para crear un gráfico básico pasa un data frame a la función.

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

ggparcoord(data = iris)

Gráfico básico de coordenadas paralelas en ggplot2

Seleccionar columnas

Si quieres seleccionar solo algunas columnas para ser mostradas en el eje X pasa un vector con las variables al argumento columns.

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

ggparcoord(data = iris,
           columns = 1:4)

Coordenadas paralelas con ggparcoord

Transparenia de las líneas

La transparencia de las líneas se puede controlar con alphaLines. Si hay muchas líneas se recomienda reducir el nivel de transparencia.

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

ggparcoord(data = iris, 
           columns = 1:4,
           alphaLines = 0.2)

Función ggparcoord de GGally

Color por grupo

Si tu conjunto de datos contiene una variable categórica que represente grupos puedes pasarla al argumento groupColumn y colorear las líneas por grupo.

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species")

Gráfico de coordenadas paralelas por grupo

Personalización del color

Como ggparcoord se basa en ggplot puedes cambiar el color de las líneas con scale_color_manual o scale_color_brewer, por ejemplo.

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species") +
           scale_color_brewer(palette = "Set2")

Personalizar el color de las coordenadas paralelas en R

Añadir puntos

La función proporciona un argumento lógico llamado showPoints que puede ser establecido a TRUE para mostrar los puntos.

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species",
           showPoints = TRUE) +
           scale_color_brewer(palette = "Set2")

Gráfico de coordenadas paralelas con puntos en ggplot2

Interpolación spline

Las líneas se pueden suavizar a través de interpolación spline estableciendo splineFactor = TRUE.

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species",
           splineFactor = TRUE) +
           scale_color_brewer(palette = "Set2")

Coordenadas paralelas suavizadas con spline en R

Agregar box plots

Coordenadas paralelas con box plot en ggplot2

Es posible añadir gráficos de caja para cada variable estableciendo boxplot = TRUE.

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

ggparcoord(data = iris,
           columns = 1:4,
           alphaLines = 0.2,
           showPoints = TRUE,
           boxplot = TRUE)

Caja ggparcoord

También puedes agregar una caja desde el máximo al mínimo de cada variable.

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

ggparcoord(data = iris,
           columns = 1:4,
           alphaLines = 0.2,
           showPoints = TRUE,
           boxplot = TRUE,
           shadeBox = 4)

Métodos de escalado

La función proporciona varios métodos de escalado que pueden ser seleccionados con el argumento scale. El método por defecto es "std" y los otros métodos disponibles se muestran a continuación. Escribe ?ggparcoord para obtener detalles adicionales.

Escala “robust”

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species",
           scale = "robust") +
           scale_color_brewer(palette = "Set2")

Método de escala robust en ggparcoord

Escala “uniminmax”

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species",
           scale = "uniminmax") +
           scale_color_brewer(palette = "Set2")

Escala uniminmax en ggparcoord

Escala “globalminmax” (sin escalado)

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species",
           scale = "globalminmax") +
           scale_color_brewer(palette = "Set2")

Escala globalminmax

Escala “center”

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species",
           scale = "center") +
           scale_color_brewer(palette = "Set2")

Escala center ggparcoord

Escala “centerObs”

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species",
           scale = "centerObs") +
           scale_color_brewer(palette = "Set2")

Método de escalado centerObs en ggparcoord

Métodos de ordenación

También hay varios métodos para ordenar las variables mostradas en el eje X. El orden por defecto se basa en las columnas seleccionadas, pero puedes especificar un order o seleccionar uno de los métodos mostrados a continuación. Escribe ?ggparcoord para obtener detalles adicionales de cada método.

Orden de las variables por su separación entre una clase y el resto en ggparcoord

Orden “anyClass” (en base al máximo de K estadísticos F)

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species",
           order = "anyClass") +
           scale_color_brewer(palette = "Set2")

Orden de las coordenadas en base al estadístico F

Orden “allClass” (en base al estadístico F de un ANOVA)

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species",
           order = "allClass") +
           scale_color_brewer(palette = "Set2")

Orden basado en la asimetría muestral

Orden “skewness” (en base a la asimetría muestral)

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species",
           order = "skewness") +
           scale_color_brewer(palette = "Set2")

Gráfico de coordenadas paralelas en R

Orden “Outlying” (en base a la medida escagnóstica)

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

ggparcoord(data = iris,
           columns = 1:4,
           groupColumn = "Species",
           order = "Outlying") +
           scale_color_brewer(palette = "Set2")

Coordenadas paralelas para cada grupo

Puedes hacer uso de la función facet_wrap para crear un gráfico de coordenadas paralelas para cada uno de los grupos.

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

ggparcoord(data = iris,
           columns = 1:4,
           alphaLines = 0.2,
           boxplot = TRUE,
           groupColumn = "Species",
           order = "Outlying") +
           scale_color_brewer(palette = "Set2") +
  facet_wrap(~ Species)

Coordenadas paralelas por grupo en ggplot2

También te puede interesar