Lollipop

Una variante común de los gráficos de columnas son los gráficos lollipop. La principal diferencia es que la forma de la columna es reemplazada por una línea terminada en punto. Esto permite que visualmente esté menos saturado y sea más claro comparar los valores en los entremos. En este post, veremos cómo hacer el gráfico lollipop en highcharter.

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 lollipop en highcharter

Para empezar, generamos un conjunto de datos categóricos sencillos como en el apartado sobre cómo hacer un gráfico de columnas.

df_cat <- dplyr::tribble(
  ~x, ~y,
  "A", 10,
  "B", 23,
  "C", 7,
  "D", 16
)

df_cat
# A tibble: 4 × 2
  x         y
  <chr> <dbl>
1 A        10
2 B        23
3 C         7
4 D        16

A continuación, indicamos el tipo de gráfico en la función hchart() con type = "lollipop" y listo!

library(highcharter)

hchart(
    df_cat,
    type = "lollipop",
    color = "#206999",
    hcaes(x = x, y = y)
  ) |>
  hc_title(text = "<b>Gráfico lollipop</b>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")

Como vemos el gráfico está ordenado alfabéticamente, en el mismo orden de entada del dataset. En la siguiente sección veremos cómo mostrar las líneas ordenadas por la variable numérica y.

Cómo ordenar un gráfico lollipop en highcharter

Para ordenar un gráfico lollipop en highcharter, se utiliza el argumento dataSorting = list(enabled = TRUE), el mismo que utilizamos para ordenar un gráfico de columnas o de barras.

hchart(
    df_cat,
    type = "lollipop",
    color = "#206999",
    hcaes(x = x, y = y),
    dataSorting = list(enabled = TRUE)
  ) |>
  hc_title(text = "<b>Gráfico lollipop</b>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")