如何在传单等值线图中将 NA 值更改为 NULL?
How to change NA values to NULL in a leaflet choropleth map?
我正在尝试映射具有 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))
看来调色板是正确的
但是当我渲染地图时,NA 值显示为黑色。
如有任何帮助,我们将不胜感激。谢谢
这里有一个有点笨拙的方法,但它确实有效。您可以为 fillOpacity
添加一个函数,returns 0 用于 NA
值,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))
我正在尝试映射具有 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))
看来调色板是正确的
但是当我渲染地图时,NA 值显示为黑色。
如有任何帮助,我们将不胜感激。谢谢
这里有一个有点笨拙的方法,但它确实有效。您可以为 fillOpacity
添加一个函数,returns 0 用于 NA
值,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))