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

如何用tmap高效为BC省5个区域设置不同边框颜色?

为BC省卫生区域地图设置不同边框颜色的高效方法

你完全不需要拆分文件转成线图层再逐个添加,tmap的tm_polygons本身就支持直接给多边形边框设置对应颜色,一步就能搞定,代码精简很多:

library(bcmaps)
library(dplyr)
library(sf)
library(tmap)

# 获取数据、重命名并添加颜色列(修正原代码里的重复赋值问题)
ha_outline <- bcmaps::health_ha() |> 
  rename_with(tolower, everything()) |> 
  mutate(colour = c("#3891A7", "#C3860D", "#C42E2E", "#67A63C", "#914FAB"))

# 直接绘制多边形,同时指定边框颜色和宽度
tm_shape(ha_outline) +
  tm_polygons(border.col = "colour", lwd = 2)

为什么这个方法更高效?

  • 省去了手动筛选每个区域、转成线图层、重复添加多个tm_lines的冗余操作
  • 直接利用多边形图层的边框参数,逻辑更清晰,代码量减少一半以上
  • 后续如果要调整颜色或边框宽度,只需要修改一处即可

如果需要保留多边形填充色(比如原代码里的默认填充),可以给tm_polygons加上col参数指定填充色:

tm_shape(ha_outline) +
  tm_polygons(col = "white", border.col = "colour", lwd = 2)

内容的提问来源于stack exchange,提问作者PhDavey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:35:16