Gráfico de radar (radar chart o spider plot) en R con fmsb

Librería

fmsb

Autor principal

Minato Nakazawa

Conjuntos de datos de muestra

La función radarchart del paquete fmsb necesita un data frame donde la primera columna representa los valores máximos de los datos (10) y la segunda fila los valores menores (0). En otro caso, tendrás que establecer maxmin = FALSE. Ten en cuenta que el número de columnas debe ser superior a dos.

Cada columna es una variable y las filas adicionales representan grupos o individuos. Dentro de df tenemos solo un grupo y 8 variable diferentes.

Conjunto de datos con un grupo

set.seed(1)
df <- data.frame(rbind(rep(10, 8), rep(0, 8),
                       matrix(sample(0:10, 8),
                              nrow = 1)))
colnames(df) <- paste("Var", 1:8)

Si quieres añadir más grupos o individuos agrega más filas al data frame. En df2 tenemos 8 variables de tres grupos diferentes.

Conjunto de datos con varios grupos

set.seed(1)
df2 <- data.frame(rbind(rep(10, 8), rep(0, 8),
                       matrix(sample(0:10, 24,
                                     replace = TRUE),
                              nrow = 3)))
colnames(df2) <- paste("Var", 1:8)

Gráfico de radar básico

Se puede crear el gráfico de radar por defecto pasando el data frame a la función radarchart de la librería.

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

radarchart(df)

Radar chart con el paquete fmsb

Si no te gusta el estilo por defecto puedes personalizarlo. Los argumentos cglty, cglcol y cglwd pueden ser usados para cambiar el tipo de línea, color y ancho de las líneas del grid mientras que pcol, plwd y plty cambiar el color, el ancho y el tipo de línea de la línea que representa las variables.

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

radarchart(df,
           cglty = 1,       # Tipo de línea del grid
           cglcol = "gray", # Color del grid
           cglwd = 1,       # Ancho líneas grid
           pcol = 4,        # Color de la línea
           plwd = 2,        # Ancho de la línea
           plty = 1)        # Tipo de línea

Radar chart en R con la función radarchart

Colorear el área

Radar chart o spider plot en R

Puedes colorear el área del polígono creado haciendo uso de pfcol. Se recomienda usar un color con transparencia para obtener un mejor resultado.

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

radarchart(df,
           cglty = 1, cglcol = "gray",
           pcol = 4, plwd = 2,
           pfcol = rgb(0, 0.4, 1, 0.25))

Función radarchart con líneas de sombreado

Líneas de sombreado

De manera alternativa, puedes añadir líneas de sombreado a los polígonos con pdensity y cambiar su ángulo con pangle.

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

radarchart(df,
           cglty = 1, cglcol = "gray",
           pcol = 1, plwd = 2,
           pdensity = 10,
           pangle = 40) 

Gráfico de radar de varios grupos

El proceso para crear un gráfico de radar con varios grupos o individuos es el mismo al descrito en la sección previa, tan solo tienes que pasar el data frame con varias variables que creamos en la primera sección.

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

radarchart(df2) 

Gráfico de radar o radar chart con varios grupos en R

Personalización de las líneas

En este escenario puedes personalizar los colores, tipo y ancho de las líneas para cada grupo.

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

radarchart(df2,
           cglty = 1,       # Tipo de línea del grid
           cglcol = "gray", # Color del grid
           pcol = 2:4,      # Color para cada línea
           plwd = 2,        # Ancho para cada línea
           plty = 1)        # Tipos de línea

Personalizar un gráfico de radar en R

Colorear las áreas

También puedes colorear las áreas para cada grupo.

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

# Colores de las áreas
areas <- c(rgb(1, 0, 0, 0.25),
           rgb(0, 1, 0, 0.25),
           rgb(0, 0, 1, 0.25))

radarchart(df2,
           cglty = 1,       # Tipo de línea del grid
           cglcol = "gray", # Color líneas grid
           pcol = 2:4,      # Color para cada línea
           plwd = 2,        # Ancho para cada línea
           plty = 1,        # Tipos de línea
           pfcol = areas)   # Color de las áreas

Radar chart en R

Por último, es recomendable añadir una leyenda cuando se muestran varios grupos haciendo uso de la función legend, tal y como se muestra en el siguiente ejemplo.

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

areas <- c(rgb(1, 0, 0, 0.25),
           rgb(0, 1, 0, 0.25),
           rgb(0, 0, 1, 0.25))

radarchart(df2,
           cglty = 1,       # Tipo de línea del grid
           cglcol = "gray", # Color líneas grid
           pcol = 2:4,      # Color para cada línea
           plwd = 2,        # Ancho para cada línea
           plty = 1,        # Tipos de línea
           pfcol = areas)   # Color de las áreas 

legend("topright",
       legend = paste("Grupo", 1:3),
       bty = "n", pch = 20, col = areas,
       text.col = "grey25", pt.cex = 2)

Agregar una leyenda a un radar chart en R

También te puede interesar