Gráfico de flujo

En la sección anterior vimos cómo hacer un gráfico de área en highcharter. Ahora veremos cómo hacer un gráfico de flujo o también llamado Streamgraph. Ambos son muy similares, pero el streamgraph fluctúa alrededor de un eje central y suele representarse con las áreas apiladas y suavizadas. Veamos cómo hacerlo con Highcharter!

El tema de los gráficos lo puedes encontrar en la sección 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 flujo en highcharter

Seguimos con el dataset en la sección sobre cómo hacer un gráfico de área en highcharter.

set.seed(11)
df_series <- data.frame(
  x = rep(as.Date("2022-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)
)

El procedimiento es el mismo que en casos anteriores, indicamos el tipo de gráfico dentro de la función hchart() con type = "streamgraph".

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

Cómo añadir etiquetas en un gráfico de flujo de Highcharter

Para añadir etiquetas en un gráfico de flujo habilitamos la opción label en hchart() y al mismo tiempo, deshabilitamos la legenda, para evitar redundancia en el gráfico con showInLegend = FALSE.

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