使用tmap包tm_dots函数为地图点添加边框失效问题咨询
解决tmap中tm_dots边框不显示的问题
问题出在点形状(shape)的默认设置上:tmap里tm_dots()默认使用无边框的实心形状(如shape=16),这类形状不支持边框参数,哪怕设置了border.col、border.lwd也不会显示边框。
修复方法
指定带边框的点形状即可,比如shape=21(填充色+边框的圆形),同时可以调整边框宽度让效果更明显:
library(tmap) data(World, metro) tm_shape(World) + tm_polygons() + tm_shape(metro) + tm_dots(col = "red", size = "pop2020", border.col = "blue", shape=21, border.lwd=2) + tm_layout(title = "World Cities Map")
补充说明
- 不同
shape值对应不同点样式:shape=21-25都是带边框的填充形状,shape=1-15多为空心或无边框样式。 - 若用
tm_symbols()替代tm_dots(),同样需要指定带边框的shape才能显示边框,逻辑和tm_dots()一致。
内容的提问来源于stack exchange,提问作者rainbird
相关产品推荐
相关产品推荐

