2012-06-18 138 views
1

我有幾個文件,格式如下:lat,lon,value。我想繪製一個彩色網格地圖,每個緯度和經度都有這樣的值,並在EU地圖上重疊。R在地圖上繪製網格值

感謝您的支持。

回答

7

大致有兩種選擇:一種利用格子和SP包和其他使用GGPLOT2包:

格/ SP

首先,你必須將數據轉變爲SpatialPixelsDataFrame(由提供SP-包),假設你的數據被稱爲df

require(sp) 
gridded(df) = c("lat","lon") 

,然後繪製:

spplot(df, "value") 

諸如國家邊界重疊附加信息可以使用sp.layout參數來完成:

spplot(df, "value", sp.layout = list("sp.lines", cntry_boundaries)) 

其中cntry_boundariesSpatialLines(DataFrame),或SpatialPolygons(DataFrame)。將多邊形讀入R可以使用rgdal程序包或maptools程序包(readShapeLines)完成。

GGPLOT2

我個人更喜歡使用ggplot2超過spplotggplot2更靈活,語法更清晰。請注意,ggplot2與正常的data.frame一起使用,而不是sp-package的空間對象。

一個最小的例子看起來是這樣的:

ggplot(aes(x = lat, y = lon), data = df) + geom_tile(aes(fill = value)) + 
    geom_path(data = cntry_boundaries) 

欲瞭解更多信息,請參閱我的這些早期的答案:

+0

這個答案是那麼好!有同樣的問題,並以此答案爲指導解決我的問題。 +1 – Eduardo