【问题标题】:How to plot and animate coordinates (latitude/longitude) data in R?如何在 R 中绘制和动画坐标(纬度/经度)数据?
【发布时间】:2014-02-21 14:47:36
【问题描述】:

我有 10 个纬度和经度点。使用下面的代码,我可以绘制坐标,按箭头顺序绘制箭头,并输出一个显示导航顺序的 gif 文件。

到目前为止,我只能使用 plot {graphics} 函数来做到这一点。因为箭头 {graphics} 和 saveGIF{animation} 似乎只适用于绘图功能。我想知道这是否可能是一个更合适的库,例如 ggmap(编辑:我误说 ggplot)、googleVis 等。

library(graphics)
library(animation)

lat <- c(34.083398,34.072467,34.030237,34.597334,34.587142,34.488386,33.443484,33.946902,33.062739,32.273711,32.272611)

lon <- c(-107.907107,-106.893156,-107.971542,-105.225107,-105.13397,-103.196355,-104.52479,-103.655698,-106.0156,-107.71744,-107.713977)

coords = data.frame(lat,lon)

x <- coords$lat ; y <- coords$lon 
s <- seq(length(x)-1)  # one shorter than data


saveGIF({
  for(s in 1:length(x)){
    plot(x,y)  
    arrows(x[s], y[s], x[s+1], y[s+1], col = 1:s)
  }  
})

【问题讨论】:

    标签: r animation plot maps coordinates


    【解决方案1】:

    是的,只需记住将您的 ggplot 调用包装在 print 中,以便它们产生输出。玩具示例:

    data=data.frame(i=1:100,x=runif(100),y=runif(100))
    saveGIF({for(i in 2:100){print(ggplot(data[1:i,],aes(x=x,y=y))+geom_point())}})
    

    只需编写代码以使用ggplot2 函数生成每个帧并包装在print 中。你尝试了什么?

    【讨论】:

    • 感谢您的快速回复。这很好用;让我注意到我真正需要的是 ggmaps 而不是 ggplot 用于带箭头的纬度/经度点。
    • 您能否在我的答案旁边打勾以接受此问题并将问题标记为“已回答”?
    • 我想我现在会放弃在 ggmap 中做这件事的希望。所以我尝试了,ggplot。它在绘制坐标时效果很好,但箭头功能似乎仍然不适用于 ggplot。这是我的代码 saveGIF({for(i in 2:30){print(ggplot(data.frame(x,y)[1:i,],aes(x=x,y=y))+geom_point() ) 箭头(x[i], y[i], x[i+1], y[i+1], col = 1:30)}})
    • 不,ggplot 不能那样工作。暂时忘记动画并开始一个新问题,描述你想要绘制的内容,显示执行它的基本图形方法(如果你已经这样做了),并添加“我想在 ggplot 中执行此操作(或使用 ggmap背景)”
    猜你喜欢
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    相关资源
    最近更新 更多