0

我目前正在尝试在 rworldmap 包中的地图上绘制一些坐标。

从我所看到的情况来看,这应该是相对简单的,但这给我带来了麻烦。

我的数据示例可以在这里找到

为了绘制地图(我专注于欧亚大陆),我使用了:

library(rworldmap)
plot(newmap, xlim = c(-27.0, 174.0), ylim = c(17.5, 77.7), col = "grey",border = "darkgrey",  bg = "lightblue")

下一步是将我在地图上的坐标绘制为点。我的包含坐标的数据框是Coordinate_AD_Clean. 我做了如下:

points(Coordinate_AD_Clean$long, Coordinate_AD_Clean$lat, col = "red", pch = "+")

然而,这就是它崩溃的地方,因为结果图看起来像这样。我知道这是错误的,因为我的坐标都不在海洋中,地图上应该有 116 个点(我的数据框中的数字),而绘图上的点要少得多。

我不确定为什么我的坐标不正确和丢失。我在数据框中的坐标来自谷歌地图,这应该不是问题,因为我随机测试了从谷歌地图中提取的 2 或 3 个不同的坐标,并且这些坐标被很好地绘制到了地图上。问题是如何在我的数据框中格式化数据?我也有多个重复的坐标,这可能是个问题吗?我有点茫然,所以任何帮助将不胜感激。

非常感谢您的阅读!

4

2 回答 2

0

你有什么特别的理由要使用rworldmap吗?否则leaflet是生成交互式地图的最佳选择!

library(leaflet)

m <- leaflet() %>%
  addTiles() %>%  # Add default OpenStreetMap map tiles
  addMarkers(lng=174.768, lat=-36.852, popup="The birthplace of R")
于 2020-03-03T13:59:43.067 回答
0

在咨询了 R 方面比我更有经验的人之后,解决方案已经向我展示了。

在使用dput查看数据中发生的情况后,我可以看到数据框中的大量级别,这些级别在我查看数据本身时并不存在。在某些时候发生了某种隐藏格式,无论是在原始 .csv 数据中还是在我在 R 中格式化数据时。

解决方案是使用write.csv(dataframe, "filename.csv")创建一个新的 .csv 文件,其中仅包含我在 R 中子集化的数据。然后我将这个新 .csv 中的数据读回 R,并改用这个数据框重试绘图,然后问题解决了。

希望这可以帮助!

于 2020-03-04T19:18:24.447 回答