【发布时间】:2018-03-24 23:22:46
【问题描述】:
我正在尝试在 R 中创建一个地图,该地图在 ggmap 的某个区域的 Google 地图图像上覆盖人工地理边界(由一组 (x, y) 点 w/lat 和 lon 值确定)。我正在使用的代码如下。
ggmap(mapgilbert) +
geom_point(data = df, aes(x = lon, y = lat, fill = "red", alpha = 0.8), size = 1, shape = 21) +
guides(fill=FALSE, alpha=FALSE, size=FALSE) +
for (i in 1:3){
geom_segment(data = coords, aes(x = lon[[i]], y = lat[[i]], xend = lon[[(i+1)]], yend = lat[[(i+1)]], alpha = 0.8))
}
请注意,coords 是一个包含相关纬度和经度值的 data.frame,而 df 是一个类似的包含点值的 data.frame;它们的结构都正确。
只需一次迭代,上面的代码就可以正常工作;出现区域图,出现我要绘制的三个点,并且出现在其中两个点之间绘制的线。但是,当我尝试在 for 循环中迭代地执行此操作时,没有任何行打印。我在一篇类似的文章中读到,这是因为 R 的自动打印功能在循环中不起作用,所以我尝试将相关语句包装在 print() 函数中,但由于某种原因它只是返回“NULL”。我有一种感觉,我犯了一些明显的错误,但我不确定它是什么。提前谢谢!
【问题讨论】:
-
在无法查看数据的情况下,您还不清楚您要做什么,但 for 循环在那里不起作用,部分原因是您需要添加 @987654322 @ 层在彼此之上,这不会发生在这里。
geom_path做我认为你正在寻找的东西。
标签: r for-loop ggplot2 iteration ggmap