r - 如何将传单等值线图中的 NA 值更改为 NULL?

标签 r leaflet r-sf

我正在尝试映射具有 NA 值的分类变量。我希望 NA 值在 map 上显示为透明,但它们似乎显示为黑色。

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

但是当我渲染 map 时,NA 值显示为黑色。

enter image description here

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

最佳答案

这是一种有点古怪的方法,但它确实有效。您可以为 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))

关于r - 如何将传单等值线图中的 NA 值更改为 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54544068/

相关文章:

javascript - Leaflet.contextmenu回调

r - 使用 R 包 sf 编写带坐标的 CSV

r - 如何在ggplot中应用多边形 mask 层

r - dplyr 0.7.0 tidyeval 包

r - 用置信区间在 ggplot 中绘制月平均温度

javascript - 我的服务仅在我的 ngx 传单 map 上显示最后一个 json 元素标记

在 R shiny 中双击将 plotoutput 替换为 leafletoutput

sql - 在 SQL Server 中转换 MS Access 更新查询

回归表中的引用类别

r - 在 R 中提取栅格的最快方法(提高我的可重现代码的时间)