El arte de {highcharter} bien contado

Introducción

highcharter es un wrapper de R basado en la librería de javascript Highcharts desarrollado por Joshua Kunst.

Al tratarse de un wrapper, la sintaxis está inspirada en su origen, el lenguaje javascript. Ésto hace que highcharter quede un poco más alejado de la filosofía de programación de otras librerías de R, como ggplot2 por ejemplo, pero con la ventaja de que incluye muchísimas más funcionalidades propias de una librería de gráficos interactivos de javascript.

Nos preguntaremos, ¿por qué highcharter?. Sí, es cierto que existen otras librerías para realizar gráficos interactivos con R, como plotly, pero sin duda, highcharter, bajo mi punta de vista, es una de las más completas y flexibles que existen. Además, tiene una fuerte componente de diseño que permite, sin tener que hacer mucha manualidad, que el resultado final sea un gráfico claro, elegante y entendible. Puedes echar un vistazo a la documentación original de la API y te darás cuenta de lo que hablo ;)

Por último, highcharter cuenta con una gran variedad de pluggins y módulos extras para los gráficos, como añadir una línea de regresión a un gráfico de dispersión automáticamente, agrupar categorías en un gráfico de columnas o realizar gráficos más avanzados como el de pareto o de sankey.

Cómo instalar highcharter

Para instalar highcharter puedes hacerlo desde CRAN:

install.packages("highcharter")

o descagar la versión en desarollo de GitHub:

remotes::install_github("jbkunst/highcharter")

Cómo hacer un gráfico con highcharter

En general puedes hacer cualquier gráfico llamando a la función hchart().

library(highcharter)
Registered S3 method overwritten by 'quantmod':
  method            from
  as.zoo.data.frame zoo 
hchart(iris,"scatter",
  hcaes(x = Sepal.Length, y = Sepal.Width, group = Species)) -> hc

hc

La función hcaes() está inspirada en aes() de ggplot2 y permite indicar las variables x e y a representar del dataframe, así como la varible categórica que indicará cada grupo.

Añadir un título, subtítulo y créditos

Para que el gráfico anterior quede más completo, podemos añadirle un título, subtítulo y créditos. Para ello utilizamos las funciones hc_title, hc_subtitle y hc_credits.

hc |>
  hc_title(text = "Iris") |>
  hc_subtitle(text = "Fuente: datasets de R") |>
  hc_credits(enabled = TRUE, text = "http://elartedeldato.com") -> hc

hc

Así tendríamos nuestro primer gráfico en highcharter con unas pocas líneas. Existen distintos tipos de gráficos que podemos realizar con highcharter. Veremos cada uno de ellos en los próximas secciones de esta guía.

Licencia

Un detalle final importante es que highcharter solo es gratuito para fines no comerciales. Esto quiere decir que en caso de utilizarse en una empresa, por ejemplo, debería pagarse la licencia correspondiente. Esto se debe a que depende de Highcharts, un producto de Highsoft que no es gratuito para uso comercial y gubernamental.