Em postagens anteriores, demonstrei como criar mapas de calor em R , usando, por exemplo , deckgl , ggmap e Leaflet . Também dei uma visão geral de vários pacotes aplicáveis com o objetivo de visualizar dados espaciais em R.
Este post fornece um breve exemplo de codificação de como programar um pequeno aplicativo Shiny em R, implementando o pacote Leaflet para visualizar mapas de calor em blocos de mapas Leaflet.
O código para isso é o seguinte:
# loading required packages
library(shiny)
library(leaflet)
library(leaflet.extras)
library(jsonlite)
# GRAPHICAL USER INTERFACE
ui <- fluidPage(
titlePanel("This is a simple visualization Shiny-App"),
p("Please upload your input in a csv file"),
p("The columns must contain a) longitude, b) latitude, c) observation intensity score or count for each location"),
fileInput(inputId="input_file",label="Please upload input data",placeholder=""),
checkboxInput(inputId="input_header",label="Does your .csv-file have headers?",value=TRUE),
leafletOutput(outputId = "map_result"),
p(""),
actionButton(inputId="input_button",label="Visualize")
)
# SERVER
server <- function(input,output){
output$map_result <- renderLeaflet({
# call to action button
input$input_button
# read and process input data
isolate({
data_file <- req(input$input_file)
if(is.null(data)){
return(NULL)
}else{
data <- read.csv(file=data_file$datapath,header=input$input_header)
}
# visualize output data
leaflet() %>%
addProviderTiles(provider=providers$Hydda) %>%
setView(lng= mean(data[,1]), lat=mean(data[,2]), zoom=6) %>%
addHeatmap(lng =data[,1] , lat=data[,2] , intensity=data[,3])
})
})
}
# APP shinyApp(ui=ui,
server=server)
O aplicativo solicita um arquivo csv como fonte de dados. Este arquivo csv deve conter dados de longitude e latitude em colunas, para cada local que deve ser considerado pelo desenho do mapa de calor. Além disso, o arquivo csv deve conter a observação. Abaixo você vê uma captura de tela exemplar:


Cientista de dados com foco em simulação, otimização e modelagem em R, SQL, VBA e Python
Leave a Reply