2

我正在使用形状文件进行 tmap 绘图,并且我想将我具有长纬度坐标的几个点绘制到形状文件上。我的绘图工作得很好,但是地图上的点太多,这意味着不同点的标签文本是重叠的,而且一般来说不是特别清晰。

这是情节目前的样子。 在此处输入图像描述 我真的希望情节中的文本位于实际地图之外,并通过融入地图整体美感的细线连接到情节中的点。

这是一些示例数据:

       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 =另外,也许它可以用这个选项做点什么?到目前为止,我尝试过的没有任何效果,所以我想我会在这里问。任何帮助将不胜感激,非常感谢你:)

4

1 回答 1

0

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

这将是解决重叠文本注释问题的一种更“法律艺术”的方式。

于 2018-02-19T11:22:14.807 回答