如何在ggplot2地理地图中按工资区间填充纯色区域?
解决方法
你可以通过创建分类变量来指定填充规则,替代原来的连续Wage变量,具体修改如下:
修改后的代码
right_join(prov2022, df, by = "COD_PROV") %>% mutate(fill_group = case_when( between(Wage, 700, 1500) ~ "red_area", # 标记700-1500区间为红色组 TRUE ~ "other" # 其他情况归为另一组 )) %>% ggplot(aes(fill = fill_group)) + geom_sf() + theme_void() + scale_fill_manual( values = c("red_area" = "red", "other" = "white"), # 指定对应颜色 guide = "none" # 不需要图例可添加此行 )
关键说明
- 用
mutate()+case_when()生成分类变量fill_group,精准划分需要纯红色填充的区间 - 将
aes(fill)的映射对象从连续的Wage切换为分类的fill_group - 通过
scale_fill_manual()直接定义每个分类的颜色,确保目标区间区域是纯红色 - 若不需要显示图例,添加
guide = "none"即可隐藏
内容的提问来源于stack exchange,提问作者io_boh
相关产品推荐
相关产品推荐

