Boxplot

Dentro del conjunto de gráficos de distribución se encuentra el boxplot o diagrama de caja que sirve para representar la distribución de una variable numérica a través de sus cuartiles.

El tema de los gráficos lo puedes encontrar en la sección 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 boxplot en Highcharter

Highcharter cuenta con ciertas funciones para poder transformar los datos de entrada en el formato específico para un tipo de gráfico. Por ejemplo, para hacer el diagrama de sankey utilizábamos una función específica para transformar los datos al formato de entrada de la librería. En este caso, la función que necesitamos es data_to_boxplot() que contiene los siguientes parámetros:

  • data: dataframe principal que contiene las variables a representar

  • variable: variable para calcular los datos del boxplot

  • group_var: variable categórica para dividir el cálculo

  • group_var2: segunda variable para crear series separadas

  • add_outliers: valor lógico que indica si se deben calcular las series de valores atípicos, por defecto es FALSE

Para el ejemplo, utilizaremos los datos de la librería palmerpenguins y seleccionaremos la variable longitud del pico de los pingüinos en mm y la especie del animal.

library(highcharter)

data(penguins, package = "palmerpenguins") 

boxplot_input <- data_to_boxplot(na.omit(penguins), bill_length_mm, species, sex)

En este caso, con llamar a la función highchart() es suficiente ya que la librería reconocerá automáticamente a partir del dato de entrada que vamos a representar un boxplot. Eso sí, es necesario indicar que el eje x será de tipo categórico con hc_xAxis(type = "category").

highchart() %>%
  hc_add_series_list(boxplot_input)  |>
  hc_xAxis(type = "category") |>
  hc_title(text = "<b>Boxplot</b>") |>
  hc_subtitle(text = "<i>Longitud del pico de pingüinos del archipiélago Palmer - librería: palmerpenguins</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")