Gráfico de barras

En la sección anterior aprendimos a hacer un gráfico de columnas en highcharter de forma sencilla. En el día de hoy seguiremos con datos categóricos y veremos cómo hacer un gráfico de barras 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 de barras

Como ejemplo, utilizaremos los datos generados en la última entrada.

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

Para construir el gráfico utilizamos la función hchart() e indicamos el tipo de gráfico con type = "barras".

hchart(
  df_cat,
  name = "Barras", # Nombre de la serie
  type = "bar", # Tipo de gráfico
  hcaes(x = x, y = y) # Mapeado de variables
) |>
hc_title(text = "<b>Gráfico de barras</b>") |> # Título
hc_subtitle(text = "<i>Orden por defecto</i>")  |> # Subtítulo
hc_credits(enabled = TRUE, text = "http://elartedeldato.com") -> hc # Créditos 

hc

Si nos fijamos, highcharter interpreta las barras como un gráfico de columnas traspuesto, es decir, la variable x (categórica) la representa en el eje y, y la variable y (numérica), en el eje x.

Además, highcharter por defecto no ordena la variable categórica, como ocurriría en ggplot2 por ejemplo, si no que muestra las categorías según el dataset de entrada. Veamos cómo un gráfico de barras en highcharter.

Cómo ordenar un gráfico de barras en highcharter

Para ordenar un gráfico de barras en highcharter habilitamos el argumento dataSorting dentro de la función hchart() y listo!

df_cat |>
  hchart(
    name = "Barras",
    type = "bar",
    hcaes(x = x, y = y),
    dataSorting = list(enabled = TRUE), # Ordenar el eje y por variable x
  ) |>
  hc_title(text = "<b>Gráfico de barras</b>") |>
  hc_subtitle(text = "<i>Ordenado por variable y</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")  -> hc_ordenado

hc_ordenado