En el curso de “EXPERTO EN DATA SCIENCE Y VISUALIZACIÓN DE DATOS” se enseña a trabajar en el ámbito del Data Science y la Inteligencia Artificial con datos geoespaciales, así como a visualizarlos de una forma dinámica en Tableau. Este curso te ofrece los conocimientos y herramientas necesarias para trabajar en este ámbito y en plataformas como RStudio, y seguir avanzando, por eso en esta ocasión te presento una nueva librería para trabajar con R llamada “globe4r” de John Coene.

En su repositorio tienes todas las indicaciones para trabajar con esta librería, pero te dejo los pasos básicos para empezar con ella sin complicaciones, antes que nada, instala y activa las siguientes librerías, “remotes” para traer la librería “globe4r” desde el repositorio en GitHub y “shiny” es una librería muy interesante que te permite desplegar y publicar en la web tus propias aplicaciones.

Vamos a trabajar con un dataset incluido en la librería (“agriland”) aunque puedes utilizar otros como “cables” o “population”, y le damos simbología:

Y a continuación vamos a definir la aplicación, para ello «shiny» tiene un esquema de código básico, el cual posee tres partes básicas, ui dónde se integra la parte visual, el servidor, dónde se crea la función para lanzar el globo y la tercera parte que lanza la app. Con el siguiente código ya se lanzaría:

Y veríamos algo tal que así:

En el siguiente paso se van a incluir diferentes líneas de código para apuntar al dataset, incluir un par de “widgets” que permiten cambiar la resolución del globo así como un botón que te permite lanzar los datos y dibujarlos en el mapa, también hemos cambiado el mapa base:

Y al lanzarlo (ojo ábrelo en el navegador “Open in Browser») lo veríamos así:

Te dejo el código completo:

library(remotes)
remotes::install_github("JohnCoene/globe4r")
library(globe4r)
library(shiny)

df <- agriland
scale_color <- scales::col_numeric(c("#FFCC99","#FF9933", "#FF8000"), c(0, 1))
df$color <- scale_color(df$percent)
df$percent <- (df$percent / 5) + .1

ui <- fluidPage(
  sliderInput(
    "width",
    "Change width",
    min = 300,
    max = 900,
    step = 50,
    value = 250
  ),
  globeOutput("globe", width = 500,height = 500),
  actionButton("draw", "Draw polygons")
)

server <- function(input, output){
  output$globe <- render_globe({
    create_globe()%>% 
    globe_img_url(image_url("blue")) #“night”, “blue-marble”, “dark”, “topology”
  })
  
  observeEvent(input$draw, {
    globe_proxy("globe") %>% 
      globe_choropleth(
        data = df,
        coords(
          country = country_code,
          altitude = percent,
          cap_color = color))%>% 
    globe_dimensions(width = input$width)
  })
}

shinyApp(ui, server)

Con esto te animo a que lo curiosees y pruebes con otros datos, si quieres aprender más sobre R solicita información de nuestros cursos.

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)

Cargando…

Formación de calidad impartida por profesionales