tmap绘图中,连接标签文本和点的线

4
我正在使用形状文件进行tmap绘图,我想要在形状文件上绘制几个具有经度和纬度坐标的点。我的绘图已经正常运行,但是地图上的点太多,导致不同点的标签文本重叠,总体上并不特别清晰易读。
这是当前绘图的样子。 enter image description here 我希望绘图中的文本在实际地图外,并通过细线与绘图中的点相连,以融入整体美感。
以下是一些示例数据:
       name      long      lat
1  location -71.40909 41.82426
2  location -71.41959 41.82796
3  location -71.41277 41.79667
4  location -71.37327 41.81737
5  location -71.37170 41.89266
6  location -71.33356 41.87736

以下是我用来显示上面图表的代码:plot2_points.df是假设的数据框,而shapes则是底层的形状文件。

library(tmap)
library(sp)
library(rgdal)


coordinates(plot2_points.df) <- c("long", "lat")
proj4string(plot2_points.df) <- CRS("+proj=longlat +datum=WGS84")

plot2_points.df <- spTransform(plot2_points.df, CRS("+proj=utm +zone=19T ellps=WGS84"))

# plot
tm_shape(shapes) + tm_borders() + tm_shape(plot2_points.df) + tm_dots(col = "blue", size = 0.4) + tm_text("name", col = "blue", size = 0.75, just = "top", ymod = 0.75)

我找不到任何函数可以实现这个功能。 tm_lines() 不起作用,但是我感觉它是为完全不同的事情而设计的。另外,也许使用 just = 选项可以实现这个功能?到目前为止,我尝试过的所有方法都没有任何效果,所以我想在这里询问一下。非常感谢您的帮助 :)

1个回答

0

虽然你所要求的确切解决方案(从文本注释中绘制细线)极其不切实际,而且(据我所知)在tmap中也没有实现,但你可以通过使用tm_symbols()而非tm_dots()并使用spa名称的shape属性来改善潜在问题(tm_dots()将形状设置为#16 = 点)。这些符号的含义将在标准图例中解释。

这将是一种更加“lege artis”的解决重叠文本注释问题的方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接