如何改变NA值与空的传单地区分布图?

问题描述 投票:0回答:1

我试图映射有NA值的分类变量。我想NA值出现在地图上显示为透明的,但他们似乎显示为黑色。

library(sf)
library(leaflet)
library(tidyverse)

demo(nc, ask = FALSE, echo = FALSE)

# Add arbitrary factor column

nc <- nc %>% 
  mutate(
    factor_col = rep(c("A", "B", "C", "D", NA),20)
  )


factpal <- colorFactor(topo.colors(4), nc$factor_col, na.color = NA)
previewColors(factpal, unique(nc$factor_col))

leaflet(nc) %>%
  addPolygons(stroke = FALSE, smoothFactor = 0.2, fillOpacity = 1,
              color = ~factpal(factor_col))

看来,调色板是正确的

enter image description here

但是,当我渲染图,NA值显示黑色代替。

enter image description here

任何帮助将不胜感激。谢谢

r leaflet sf
1个回答
1
投票

这里是一个有点哈克的方式做到这一点,但它的作品。您可以为fillOpacity对于NA值返回0,1一切增加一个功能。

factop <- function(x) {
  ifelse(is.na(x), 0, 1)
}

leaflet(nc) %>%
  addPolygons(stroke = FALSE, smoothFactor = 0.2, fillOpacity = ~factop(factor_col),
              color = ~factpal(factor_col))
© www.soinside.com 2019 - 2024. All rights reserved.