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

En el post de ayer vimos cómo hacer un gráfico de área en highcharter. Hoy 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 entrada 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 del post anterior 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"
.
library(highcharter)
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")