您如何从 Leaflet 图例中排除 NA 值?

How do you exclude NA values from Leaflet legend?

这是我的数据:https://paste.kodi.tv/omohuzawec

dput 的更新数据输出:已编辑

我正在尝试复制以下情节:

这是我到目前为止用来复制的代码,我唯一想不通的是如何从图例中删除 NA。

pal <- colorFactor(palette =  c("#F5DCA4","#E8A46A","#D16769","#B74146"), 
                domain = zipcodes@data$risk.factor)

leaflet(zipcodes) %>% 
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(
    fillColor = ~pal(risk.factor),
    weight = 1, #weight of lines between zip codes
    color = "gray", #color of line between zip codes
    fillOpacity = .9, #fill opacity of zip codes
    popup = state_popup) %>%
  addLegend("bottomright", 
            pal = pal, #pal = palette declared earlier
            values = ~risk.factor, 
            title= "Risk: Lowest to Highest",
            opacity = 1) 

正确的代码,这是我们需要的 na.color :

colorFactor(palette =  c("#F5DCA4","#E8A46A","#D16769","#B74146"), 
                domain = zipcodes@data$risk.factor,
                na.color = NA)

函数 addLegend() 有一个参数 na.label,默认设置为 "NA"。从 here 看来可以设置 na.label = "" 从图例中删除 NA 标签。

na.color=rgb(0,0,0,0) 添加到 colorFactor 函数,将 na.label = "" 添加到 addLegend 函数

就这样 na.color = NA

colorFactor(palette =  c("#F5DCA4","#E8A46A","#D16769","#B74146"), 
            domain = zipcodes@data$risk.factor,
            na.color = NA)

对于那些不想让 NA 出现在他们的图例中,但仍然希望他们的具有 NA 值的多边形具有悬停标签和某种颜色的人,我还找到了@canovasjm 提到的 GitHub solution ,它定义了两个不同的调色板,有帮助:

pal <- colorFactor(
    palette =  c("#F5DCA4","#E8A46A","#D16769","#B74146"), 
    domain = zipcodes@data$risk.factor,
    na.color = "grey" # desired color for NA polygons on map
)

pal_noNA <- colorFactor(
    palette =  c("#F5DCA4","#E8A46A","#D16769","#B74146"), 
    domain = zipcodes@data$risk.factor
    na.color = NA
)

leaflet(zipcodes) %>% 
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(
    fillColor = ~pal(risk.factor),
    weight = 1, #weight of lines between zip codes
    color = "gray", #color of line between zip codes
    fillOpacity = .9, #fill opacity of zip codes
    popup = state_popup) %>%
  addLegend("bottomright", 
            pal = pal_noNA,
            values = ~risk.factor, 
            title= "Risk: Lowest to Highest",
            opacity = 1)