如何用tmap包将tm_polygons的border.col绑定GDP变量生成分级边框色
解决方法
你可以通过叠加tm_borders图层单独映射人均GDP到边框颜色,修改后的代码如下:
library(spData) # example datasets library(tmap) # map creation library(sf) # spatial data reprojection world_moll = st_transform(world, crs = "+proj=moll") tm_shape(world_moll) + # 填充色映射预期寿命 tm_polygons(col = "lifeExp", alpha = 0.8) + # 边框色映射人均GDP,可自定义分组、色盘、边框宽度 tm_borders(col = "gdp_cap_est", lwd = 1.2, # 可选:自定义GDP分组区间 breaks = c(0, 10000, 30000, 50000, Inf), # 可选:自定义边框色盘 palette = c("#fee0d2", "#fc9272", "#ef3b2c", "#a50f15"), # 边框图例标题 title = "人均GDP(美元)") + tm_layout(legend.outside = TRUE)
修改说明
- 原代码中
tm_polygons的border.col参数仅支持传入固定颜色值,要实现边框颜色的变量映射,需要额外叠加tm_borders图层 tm_borders的col参数直接传入数据集中的人均GDP字段名gdp_cap_est即可自动按区间分组映射颜色- 你可以根据需求调整
breaks参数自定义GDP分组区间、调整palette参数更换边框配色方案、调整lwd参数修改边框粗细
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

