Cómo hacer un gráfico de burbujas en highcharter

Siguiendo con datos numéricos, en el post de hoy veremos cómo hacer un gráfico de burbujas en highcharter. Se trata de un gráfico muy similar al de dispersión, pero aquí el tamaño de los puntos se utiliza para representar una tercera variable. Vamos a verlo!

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

Generamos en primer lugar, los datos con los que trabajaremos para hacer el gráfico de burbujas. Se trata de un dataset numérico de 3 variables, x, y, y z, donde esta última indicará el tamaño de los puntos.

df_num <- data.frame(
  x = runif(20, 1000, 10000),
  y = runif(20, 1000, 10000),
  z = runif(20, 1000, 10000),
  grupo = c("A", "B")
)

Para realizar el gráfico, dentro de la función hchart() indicaríamos type = "bubble" o bien type = "scatter". De ambas formas obtenemos el mismo resultado.

library(highcharter)

hchart(
    df_num,
    type = "bubble",
    hcaes(x = x, y = y, z = z, group = grupo)
  ) |>
  hc_title(text = "<b>Gráfico de burbujas</b>") |>
  hc_subtitle(text = "<i>Ejemplo de gráfico de burbujas en Highcharter con datos generados</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")

En este caso, el tooltip no tiene un formato legible para el usuario, por lo que sería aconsejable modificarlo. Veamos cómo modificar el tooltip en un gráfico de burbujas de Highcharter.

Cómo modificar el tooltip de un gráfico de burbujas de Highcharter

Ya sabemos, que para personalizar el tooltip en un gráfico de hicharter se utiliza la función hc_tooltip(). Para este ejemplo, haremos uso del argumento pointFormat e indicaremos en HTML exactamente un texto y formato más legible.

hchart(
    df_num,
    type = "bubble",
    hcaes(x = x, y = y, z = z, group = grupo)
  ) |>
  hc_tooltip(
    pointFormat = "
    <b>Variable x: </b>{point.x:,.2f}<br>
    <b>Variable y: </b>{point.y:,.2f}<br>
    <b>Variable z: </b>{point.z:,.2f}"
  ) |>
  hc_title(text = "<b>Gráfico de burbujas</b>") |>
  hc_subtitle(text = "<i>Ejemplo de gráfico de burbujas en Highcharter con datos generados</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")

Otra variante de estos gráficos que puede ser útil cuando se trabaja con dos variables, y no queremos recurrir al scatter plot habitual, es el gráfico de burbujas en una dimensión.

Cómo hacer un gráfico de burbujas sobre un eje en highcharter

Para hacer un gráfico de burbujas unidimensional, indicamos el valor de y nulo con y = 0 en la estética y modificamos los ejes para cuadrar los puntos exactamente sobre el eje mejorando la distribución final del gráfico.

hchart(
    df_num,
    type = "bubble",
    hcaes(x = x, y = 0, z = z, group = grupo)
  ) |>
  hc_plotOptions(
    bubble = list(
      minSize = 5,
      maxSize = 40
    )
  )|>
  hc_size(height = 220) |>
  hc_xAxis(offset = -32)  |>
  hc_yAxis(visible = F) |>
  hc_tooltip(
    pointFormat = "
    <b>Variable x: </b>{point.x:,.2f}<br>
    <b>Variable z: </b>{point.z:,.2f}"
  ) |>
  hc_title(text = "<b>Gráfico de burbujas unidimensional</b>") |>
  hc_subtitle(text = "<i>Ejemplo de gráfico de burbujas unidimensional en Highcharter con datos generados</i>") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com")

También indicamos con hc_plotOptions(bubble) los límites entre los que pueden variar las burbujas, asegurándonos que son visibles y se adecuan al gráfico.

Paula L. Casado
Paula L. Casado
Data Scientist

Científica de datos especializada en visualización de datos.

Relacionado