如何在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
相关产品推荐
相关产品推荐

