我希望能够使用渐变来填充地图上的颜色,但我需要特定的值(如零)才能成为特定的颜色(例如,红色或灰色)。
有没有办法先应用渐变,然后设置这些特定的颜色值?如果可能的话,我希望能够为多个特定值做到这一点。
在下面的示例中,我们如何将 0 值设为红色?
suppressPackageStartupMessages(require(tidyverse))
suppressPackageStartupMessages(require(ggmap))
suppressPackageStartupMessages(require(viridis))
suppressPackageStartupMessages(require(albersusa)) #devtools::install_github("hrbrmstr/albersusa")
us <- usa_composite()
us_map <- fortify(us, region="name") %>%
rename(state = id)
dat <- tibble(state = state.name, value = sample(-2:5, 50, replace = T))
dat %>%
right_join(us_map) %>%
ggplot() +
geom_polygon(aes(x = long, y = lat, fill = value, group = group), color = "white", size = .2) +
coord_fixed(1.3) +
scale_fill_viridis()
#> Joining, by = "state"
由reprex 包(v0.2.1)于 2019 年 2 月 20 日创建