Pie Chart

¿Qué es un pie chart o gráfico de tarta?

El gráfico de tarta, al igual que los gráficos que hemos visto hasta ahora, nos permite representar proporciones de un conjunto. El problema de estos gráficos, aunque visualmente son muy atractivos, es que comparar las diferentes categorías entre sí se hace complicado ya que se representan como ángulos y no distancias en el espacio euclídeo. Además, es un gráfico que no permite agregar muchas categorías al mismo tiempo y no digamos si lo hacemos en 3D!

Veamos cómo realizar este gráfico en highcharter y cómo añadir etiquetas a cada sector.

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 de tarta en highcharter

En esta entrada continuamos utilizando los datos categóricos generados en la sección 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

En highcharter, para hacer un pie chart basta con indicar type = "pie" y listo!

Tal vez, la mayor dificultad venga a la hora de añadir las etiquetas a cada uno de los sectores. Veámoslo en la próxima sección.

library(highcharter)

hchart(
    df_cat,
    type = "pie",
    hcaes(x = x, y = y)
  ) |>
  hc_title(text = "<b>Pie Chart</b>") |>
  hc_subtitle(text = "<i>Ejemplo de pie chart con datos generados</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")

Cómo personalizar etiquetas en un pie chart en highcharter

Para personalizar las etiquetas en un gráfico de tarta o pie chart, recurrimos a la opción dataLabels() que ya hemos visto en posts anteriores, como el de cómo hacer un gráfico en coordendas polares.

Dentro de la función dataLabels() indicamos el formato adecuado con los sigiuientes componentes:

  • point.name indica el nombre de la categoría
  • point.percentage se refiere al porcentaje de la categoría sobre el conjunto total
  • point.total valor absoluto total del conjunto

También podríamos añadir el valor absoluto por categoría con point.y, pero en este caso no lo hemos hecho porque ya se muestra por defecto en el tooltip.

hchart(
    df_cat,
    type = "pie",
    hcaes(x = x, y = y),
    dataLabels = list(
        format = "<b>{point.name}</b><br>{point.percentage:.1f} %<br>total: {point.total}"
      )
  ) |>
  hc_title(text = "<b>Pie Chart</b>") |>
  hc_subtitle(text = "<i>Ejemplo de pie chart con datos generados</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")   

Cómo borrar las etiquetas de un gráfico de tarta en highcahrter

Para borrar las etiquetas de un pie chart basta con indicar enabled = FALSE en la misma función de dataLabels().

hchart(
    df_cat,
    type = "pie",
    hcaes(x = x, y = y),
    dataLabels = list(
      enabled = FALSE
      )
  ) |>
  hc_title(text = "<b>Pie Chart</b>") |>
  hc_subtitle(text = "<i>Ejemplo de gráfico de tarta con datos generados</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")