히트 맵 그리기를위한 Leaflet Shiny 앱 코딩

이전 게시물에서 예를 들어 R에서 히트 맵을 만드는 방법을 시연했습니다. deckgl, ggmap 및 전단지.

또한 R에서 공간 데이터를 시각화하기 위해 적용 할 수있는 여러 패키지에 대한 개요를 제공했습니다. 이 게시물은 Leaflet지도 타일에서 히트 맵을 시각화하기위한 Leaflet 패키지를 구현하여 R에서 작은 Shiny 앱을 프로그래밍하는 방법에 대한 간단한 코딩 예제를 제공합니다.

이에 대한 코드는 다음과 같습니다.

# 필수 패키지로드
library(shiny)
library(leaflet)
library(leaflet.extras)
library(jsonlite)

# 그래픽 사용자 인터페이스
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 <- function(input,output){
  output$map_result <- renderLeaflet({
    # call to action button
    input$input_button
    
    # 입력 데이터 읽기 및 처리
    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)
      }

      # 출력 데이터 시각화
      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])
    })
  })
}


# 앱
shinyApp(ui=ui,
         server=server)

앱이 데이터 소스로 csv 파일을 요청합니다. 이 csv 파일은 열지도 도면에서 고려해야하는 각 위치에 대한 경도 및 위도 데이터를 열에 포함해야합니다. 또한 csv 파일에는 관찰 내용이 포함되어야합니다. 아래에 예시 스크린 샷이 있습니다.

Leave a Reply

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

Close

메타