¿Cómo hacer que tus gráficos cobren vida con solo una línea de código?

¿Cómo hacer que tus gráficos cobren vida con solo una línea de código?

may´23 SEO Soporte 0 comentarios

¡Podemos crear gráficos web interactivos en R con ggplotly()!

Crea gráficos interactivos ggplot2 listos para publicar.

¿Qué nos aportan los gráficos interactivos?

Imagina que quieres visualizar el desplazamiento del motor ( displ) frente a las millas por galón ( hwy) usando el conjunto de datos mpg, podrías preguntarte: "¿cuáles son estos autos con un valor inusualmente alto de hwy dado su displ?". En lugar de intentar escribir código para consultar esas observaciones, sería más fácil e intuitivo dibujar un contorno alrededor de los puntos para consultar los datos detrás de ellos. ¿No?

Pues esto es lo que puedes hacer con gráficos interactivos como el que se enseña a continuación. La interactividad puede aumentar la exploración al permitirnos realizar preguntas de seguimiento.

Simplemente ingresa el gráfico ggplot2 en la función ggplotly() y se abrirá en el visor Viewer de RStudio. ¡Puedes consultar los valores de los puntos y mucho más!

library(plotly)
p<- ggplot(mpg, aes(x = displ, y = hwy, color = class)) + geom_point()
ggplotly(p)

Los gráficos de plotly son interactivos. Haz clic en las entradas de la leyenda para alternar los gráficos, haz clic y arrastra el gráfico para hacer zoom, haz doble clic para escalar automáticamente, presiona Mayús y arrastra para desplazarte.

Opciones de configuración para gráficos integrados de Chart Studio

¡Pero hay más! Puedes vincular una tabla con un diagrama de dispersión de forma tal que puedes consultar más información sobre los puntos de interés (¡como variables que no estén en el gráfico!). 

m <- highlight_key(mpg)
p <- ggplot(m, aes(displ, hwy)) + geom_point()
gg <- highlight(ggplotly(p), "plotly_selected")
crosstalk::bscols(gg, DT::datatable(m))

https://vimeo.com/324366759?embedded=true&source=vimeo_logo&owner=29107273

Al seleccionar con lazo una región de puntos inusuales, se visualiza la tabla de esos datos. Puedes jugar con los datos aquí.

Puedes compartir gráficos interactivos con tus colaboradores para mejorar la conversación: tus colegas pueden señalar cosas que quizás aún no hayas considerado y, en algunos casos, pueden obtener respuestas inmediatas de los propios gráficos.

  • El gráfico basado en la web se puede compartir fácilmente con los colaboradores por correo electrónico o incorporarse dentro de un informe o sitio web automatizado más grande.
  • Estos gráficos interactivos se basan en el marco de htmlwidgets , por lo que funcionan sin problemas dentro de documentos de R  Markdown o Quarto, dentro de aplicaciones Shiny RStudio o Jupiter.

En definitiva, puedes hacer gráficos interactivos basados en web para el análisis de datos a través de plotly de Rsin asumir ninguna experiencia previa con tecnologías web. 

Plotly es un paquete de R para crear gráficos interactivos basados en la web a través de la biblioteca de gráficos de JavaScript de plotly, plotly.js.

El paquete plotly R serializa figuras ggplot2 en el gráfico universal JSON de Plotly . plotly::ggplotly rastreará la figura ggplot2, extraerá y traducirá todos los atributos de la figura ggplot2 a JSON (los colores, los ejes, el tipo de gráfico, etc.) y dibujará el gráfico con plotly.js.

Instalación

¡Puedes instalar plotly desde el CRAN!

install.packages("plotly")

O instala la última versión de desarrollo (en GitHub) a través de devtools:

devtools::install_github("ropensci/plotly")

Los usuarios de RStudio deben descargar la última versión de RStudio para compatibilidad con htmlwidgets.

¿Quieres más? API de animación

Siempre que se indiques una variable para el argumento frame, se produce una animación con botones de reproducción/pausa y un componente deslizante para controlar la animación. También admite un argumento/estética ids para garantizar transiciones fluidas entre objetos con la misma identificación.

El siguiente gráfico recrea la famosa animación de gapminder de la evolución de la relación entre el PIB per cápita y la esperanza de vida a lo largo del tiempo (Bryan 2015) . Los datos se registran anualmente, por lo que el año se asigna a frame, y cada punto del gráfico de dispersión representa un país, por lo que el país se asigna a ids, lo que garantiza una transición fluida de un año a otro para un país determinado.

data(gapminder, package = "gapminder")
gg <- ggplot(gapminder, aes(gdpPercap, lifeExp, color = continent)) +
  geom_point(aes(size = pop, frame = year, ids = country)) +
  scale_x_log10()
ggplotly(gg)

De este modo hemos creado la animación de la evolución de la relación entre el PIB per cápita y la esperanza de vida para numerosos países. Puedes consultar el gráfico aquí.

Puedes consultar más información en este libro gratuito: https://plotly-r.com/overview.html

Si te gustó este post y quieres disfrutar de más consejos para mejorar tus proyectos de datos, inscríbete a nuestro Máster en Ciencia de Datos con R.

Únete a nosotros para formarte con las últimas herramientas y las mejores técnicas en Ciencia de Datos.
Aprende dónde y cuándo quieras y aprovecha las tutorías ilimitadas con nuestros expertos para sacarle jugo a tus datos.

¡Te esperamos!

Twitter | Linkedin | Blog | Youtube

0 comentarios

¹ Todos los campos son obligatorios.
² Tu correo electrónico no será publicado.

Nadie ha publicado ningún comentario aún. ¡Se tu la primera persona!

Te llamamos

Introduce los siguientes datos y nos pondremos en contacto contigo para atender tus dudas sin compromiso.

Te llamamos

Muchas gracias por solicitar información.
Te contactaremos lo antes posible.

Diseño web: Albin Soft.