【问题标题】:leaflet shiny palette issue传单闪亮的调色板问题
【发布时间】:2020-11-15 02:33:18
【问题描述】:

我试图在传单地图上绘制的变量是二进制的,但我无法为每个值(1 和 0)设置两种不同的颜色。加载地图时,缺失值以红色绘制,但实际值的颜色相同(介于绿色和黄色之间)。 1 值应该是绿色,0 应该是黄色。以下是我server.R的内容:

server <- function(input, output) {

  
  colorpalette1 <- c("#3EA055", "#C68E17")
  
  output$mymap1 <- renderLeaflet({
    leaflet() %>%
      setView(0, 28, 2)
  })
  
  selected <- reactive({
    data2 <- shape_data[[input$year]]
    data2
  })
  
  observeEvent(input$year, {
    bins1 <- c(1, 0)
    pal1 <- colorBin(colorpalette1, domain = selected(), bins = bins1, na.color = "#8C001A")
    
    leafletProxy("mymap1") %>%
      clearShapes() %>%
      addPolygons(data = shape_data,
                  fillColor = ~pal1(selected()),
                  weight = 1,
                  opacity = 1,
                  color = "black",
                  fillOpacity = 0.7
      )
  })
}

input$year 是一个selectInput,用于选择要在地图上绘制的变量。

【问题讨论】:

    标签: r shiny leaflet


    【解决方案1】:

    最好提供一个可重复性最低的示例,以便我们验证问题并测试解决方案。您可以尝试以下方法:

    observeEvent(input$year, {
      if (!is.null(input$year)){
        bins1 <- c(1, 0)
        pal1 <- colorBin(colorpalette1, domain = selected(), bins = bins1, na.color = "#8C001A")
        
        leafletProxy("mymap1") %>%
          clearShapes() %>%
          addPolygons(data = shape_data,
                      fillColor = ~pal1(selected()),
                      weight = 1,
                      opacity = 1,
                      color = "black",
                      fillOpacity = 0.7
          )
      }else{return(NULL)}
    })
    

    【讨论】:

      【解决方案2】:

      我找到了答案,colorNumeric()colorBin() 更合适。

      pal1 <- colorNumeric(colorpalette1, domain = shape_data[[input$year]], na.color = "#8C001A")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-17
        相关资源
        最近更新 更多