You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 05:15:11