Gráfico Sunburst

En esta sección veremos cómo hacer un gráfico Sunburst en 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 Sunburst en highcharter

Primero, generaremos unos datos de tipo jerárquico asignando valores a las variables padre e hijo.

df_jerarquico <- dplyr::tribble(
  ~padre, ~hijo, ~valor,
  "A", "A1", 20,
  "A", "A2", 10,
  "A", "A3", 13,
  "B", "B1", 12,
  "B", "B2", 60,
  "C", "C1", 29,
  "C", "C2", 34
)

df_jerarquico
# A tibble: 7 × 3
  padre hijo  valor
  <chr> <chr> <dbl>
1 A     A1       20
2 A     A2       10
3 A     A3       13
4 B     B1       12
5 B     B2       60
6 C     C1       29
7 C     C2       34

En highcharter, para realizar un gráfico Sunburst necesitamos que los datos sean de tipo jerárquico. Para ello, la librería cuenta con una función llamada data_to_hierarchical() que tiene los siguientes argumentos:

  • data: Datos de entrada
  • group_vars: Indica el nombre de las dos variables categóricas jerárquicas
  • size_var: Indica la variable del tamaño del sector
  • colors: Vector con el color de cada grupo
library(highcharter)

df_jerarquico_format <- data_to_hierarchical(
   data =  df_jerarquico, 
   group_vars = c(padre, hijo), 
   size_var = valor, 
   colors = c("#aedcc0", "#206999", "#ffab44")
   )

A continuación indicamos en la función hchart() el tipo de gráfico que queremos, en este caso sunburst y listo!

hchart(
    df_jerarquico_format,
    type = "sunburst",
    dataLabels = list(
    style = list(
      fontSize = "20px",
      textOutline = FALSE
        )
      )
    ) |>
  hc_title(text = "<b>Gráfico Sunburst</b>") |>
  hc_subtitle(text = "<i>Ejemplo de Gráfico Sunburst en Highcharter con datos generados</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")