2014-01-29 261 views
2

我有10個經緯度點。使用下面的代碼,我可以繪製座標,按照它們的順序繪製箭頭,並輸出顯示導航順序的gif文件。如何在R中繪製和製作座標(經度/緯度)座標數據?

到目前爲止,我只能用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) 
    } 
}) 

回答

2

是的,只記得來包裝print您的通話ggplot,使他們產生輸出。玩具例子:

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包裹。你嘗試了什麼?

+0

感謝您的快速響應。這很好,讓我注意到,我真正需要的是ggmaps而不是ggplot帶箭頭的經緯度點。 –

+1

你可以在我的答案旁邊的小勾選標記接受此問題並將問題標記爲「已回答」? – Spacedman

+0

我想我現在會放棄我在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)}}) –