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

如何在tmap中从同一混合几何数据集仅绘制点要素

在tmap中绘制混合几何类型数据集的简便方法

你可以利用tmap图层的filter参数,不用拆分数据集就能分别绘制不同几何类型的要素,比重复子集化的写法更简洁:

方法1:直接在图层中用st_dimension筛选

library(tmap)
library(sf)

tm_shape(nc) +
  tm_polygons(filter = st_dimension(nc) == 2) +  # 仅绘制多边形(维度为2)
  tm_dots(filter = st_dimension(nc) == 0)        # 仅绘制点(维度为0)

方法2:提前添加几何类型字段(更直观)

如果需要多次筛选,可以先给数据集添加一个标识几何类型的字段,后续直接用该字段筛选:

# 新增几何类型列
nc$geom_type <- st_geometry_type(nc)

tm_shape(nc) +
  tm_polygons(filter = geom_type == "POLYGON") +
  tm_dots(filter = geom_type == "POINT")

tmap的图层函数默认会处理数据集中所有几何类型,所以必须通过筛选来指定要绘制的要素。上面两种方法都无需拆分数据集,能实现你要的同时显示多边形和对应点要素的效果。

内容的提问来源于stack exchange,提问作者Maël

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:12:09