Gráfico de área

En este apartado veremos cómo hacer un gráfico de área en Highcharter. Los gráficos de área sirven para representan datos de series temporales principalmente. El área, a diferencia de la línea, permite enfatizar la evolución de las cantidades a lo largo del tiempo. Por ello en muchas ocasiones es recomendable utilizar esta alternativa frente al tradicional gráfico de líneas.

El tema de los gráficos lo puedes encontrar en el capítulo sobre cómo crear temas en highcharter y configurarlo al inicio de la sesión así:

library(highcharter)

options(highcharter.theme = elartedeldato_theme)

Cómo hacer un gráfico de área en highcharter

En primer lugar generamos los datos de series temporales. Utilizaremos el mismo procedimiento del apartado sobre cómo hacer un gráfico de líneas en highcharter.

set.seed(99)
df_series <- data.frame(
  x = rep(as.Date("2025-12-18") + lubridate::days(1:20), 3),
  y = round(abs(cumsum(rnorm(60, 100, 1000) + runif(60, 100, 200))), 0),
  grupo = rep(c("A", "B", "C"), each = 20)
)

Para realizar el gráfico con Highcharter, definimos el argumento type = "area" dentro de la función hchart().

Además, el eliminaremos los puntos de la línea de cada área deshabilitando el marcador con marker = list(enabled = FALSE).

library(highcharter)

hchart(
  df_series,
  type = "area",
  marker = list(enabled = FALSE),
  hcaes(x, y, group = grupo)
  ) |>
  hc_tooltip(table = TRUE, sort = TRUE) |>
  hc_title(text = "<b>Gráfico de área</b>") |>
  hc_subtitle(text = "<i>Ejemplo de gráfico de área en Highcharter con datos generados</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")

Cómo hacer un gráfico de áreas apiladas en Highcharter

Una variante muy común en este tipo de gráficos es el de áreas apiladas. esta variante permite diferenciar mejor la evolución temporal y discernir entre las diferentes cantidades de cada grupo.

Para hacer un gráfico de áreas apiladas basta con añadir en la sentencia anterior la opción stacking = list(enabled = TRUE).

hchart(
  df_series,
  type = "area",
  marker = list(enabled = FALSE),
  stacking = list(enabled = TRUE),
  hcaes(x, y, group = grupo)
  ) |>
  hc_tooltip(table = TRUE, sort = TRUE) |>
  hc_title(text = "<b>Gráfico de área</b>") |>
  hc_subtitle(text = "<i>Ejemplo de gráfico de área en Highcharter con datos generados</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")