Gráfico de áreas (area chart) en ggplot2 con geom_area

Conjunto de datos de muestra

Considera el siguiente data frame que contiene el precio de cierre de tres índices bursátiles europeos.

df <- as.data.frame(EuStockMarkets[, 1:3])

Gráfico de área de una única línea

Para crear un gráfico de área de una columna del data frame puedes pasar las fechas (si están disponibles) o un índice a x y la variable a y y usar geom_area.

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

# Gráfico de área
ggplot(df, aes(x = seq_along(SMI), y = SMI)) + 
  geom_area()

Gráfico de área básico en ggplot2

Colorear el área

Por defecto el área será de un color gris muy oscuro. Sin embargo, puedes cambiarlo pasando un color al argumento fill.

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

# Gráfico de área
ggplot(df, aes(x = seq_along(SMI), y = SMI)) + 
  geom_area(fill = 4)

Colorear el área de un gráfico en ggplot2

Transparencia del área

También puedes cambiar la transparencia del área con el argumento alpha de la función.

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

# Gráfico de área
ggplot(df, aes(x = seq_along(SMI), y = SMI)) + 
  geom_area(fill = 4,
            alpha = 0.5)

Transparencia el área en ggplot2

Personalización de la línea

La línea superior del área se puede personalizar con varios argumentos, como color, lwd o linetype.

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

# Gráfico de área
ggplot(df, aes(x = seq_along(SMI), y = SMI)) + 
  geom_area(fill = 4,
            alpha = 0.5,
            color = 1,    # Color de la línea
            lwd = 0.5,    # Ancho de la línea
            linetype = 1) # Tipo de línea

ggplot2 personalización del borde del área

Gráfico de áreas de varias líneas

Gráfico de áreas de varias variables en ggplot2

En caso de que quieras añadir más variables tendrás que especificar la estética dentro de cada geom_area para cada variable. Ten en cuenta que si el número de áreas a añadir es superior a dos o tres deberías considerar crear un gráfico de áreas apiladas.

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

# Gráfico de área
ggplot(df) + 
  geom_area(aes(x = seq_along(SMI), y = SMI),
            fill = 4, alpha = 0.85) +
  geom_area(aes(x = seq_along(DAX), y = DAX),
            fill = 3, alpha = 0.85)

También te puede interesar