2012-06-18 141 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