代码之家  ›  专栏  ›  技术社区  ›  desert_ranger

缺少Choropleth贴图颜色

  •  1
  • desert_ranger  · 技术社区  · 6 年前

    我正在尝试为爱荷华州的县制作一张Choropleth地图。我从网上下载了地图数据 https://geodata.iowa.gov/dataset/county-boundaries-iowa/resource/183e782f-2d43-4073-8524-fe8e634cf17a

    我确实得到了一张地图,但它是统一的,而不是我从R brewer palletes中选择的颜色,也没有根据数据进行区分-

    library(shiny)
    library(shinydashboard)
    library(ggplot2)
    library(DT)
    library(plotly)
    library(leaflet)
    library(sf)
    library(geojsonio)
    
    
    mymap = st_read("county.shp")%>% st_transform(crs = 4326)
    
    bins <- c((mean(mymap$AREA)-2*sd(mymap$AREA)), (mean(mymap$AREA)-1*sd(mymap$AREA)), (mean(mymap$AREA)),(mean(mymap$AREA)+1*sd(mymap$AREA)),(mean(mymap$AREA)+2*sd(mymap$AREA)))
    pal <- colorBin("YlOrRd", domain = mymap$AREA, bins = bins)
    
    bins_1 <- c((mean(mymap$PERIMETER)-2*sd(mymap$PERIMETER)), (mean(mymap$PERIMETER)-1*sd(mymap$PERIMETER)), (mean(mymap$PERIMETER)),(mean(mymap$PERIMETER)+1*sd(mymap$PERIMETER)),(mean(mymap$PERIMETER)+2*sd(mymap$PERIMETER)))
    pal_1 <- colorBin("YlOrRd", domain = mymap$PERIMETER, bins = bins_1)
    ######################Shiny Dashboard############################################
    sidebar <- dashboardSidebar(
    )
    
    body <- dashboardBody(
      leafletOutput("myplot")
    )
    
    ui <- dashboardPage(
      dashboardHeader(title = "My shiny app"),
      sidebar = sidebar,
      body = body
    )
    
    server <- function(input, output, session) {
    output$myplot = renderLeaflet({leaflet(mymap)%>%addProviderTiles("CartoDB")%>%
        addTiles(group = "OSM (default)")%>%addPolygons(fill = 0, weight = 1, color = "#000000",group = "Base Map")%>%
        addPolygons(fill = ~pal(AREA), weight = 1,group = "Area")%>%
        addLegend(pal = pal, values = ~AREA, opacity = 0.7, title = NULL,
                  position = "bottomright")%>%
        addPolygons(fill = ~pal_1(PERIMETER), weight = 1,group = "Perimeter")%>%
        addLegend(pal = pal_1, values = ~PERIMETER, opacity = 0.7, title = NULL,
                  position = "bottomright")%>%
        addLayersControl(baseGroups = c("Base Map", "Area","Perimeter"))})
    }
    
    
    shinyApp(ui, server)
    
    0 回复  |  直到 6 年前
        1
  •  1
  •   David Buck Richard Ferris    6 年前

    问题是你第二次使用 addPolygons .
    它需要有 color = ~pal(AREA) 不 fill = ~pal(AREA) .

    fill 是真还是假(默认为真)无论它们是否应该用你的颜色填充。
    color 是要填充的实际颜色。