R绘制地图上的网格值

1 r geospatial ggplot2 lattice

我有几个文件格式如下:lat,lon,value.我想为每个lat,lon点绘制一个带有这样值的彩色网格地图,并将其重叠在EU地图上.

感谢你的支持.

Pau*_*tra 8

大致有两种选择:一种使用lattice和sp包,另一种使用ggplot2包:

格子/ sp

首先SpatialPixelsDataFrame,假设您的数据被调用,您必须将数据转换为(由sp-package提供)df:

require(sp)
gridded(df) = c("lat","lon")
Run Code Online (Sandbox Code Playgroud)

然后绘图:

spplot(df, "value")
Run Code Online (Sandbox Code Playgroud)

可以使用以下sp.layout参数覆盖诸如国家边界之类的附加信息:

spplot(df, "value", sp.layout = list("sp.lines", cntry_boundaries))
Run Code Online (Sandbox Code Playgroud)

其中cntry_boundariesSpatialLines(DataFrame)SpatialPolygons(DataFrame).将多边形集读入R可以使用rgdal包或maptoolspackage(readShapeLines)来完成.

GGPLOT2

我个人更喜欢使用ggplot2spplot.ggplot2更灵活,语法更清晰.请注意,ggplot2使用普通data.frame的,而不是sp-package的空间对象.

一个最小的例子看起来像:

ggplot(aes(x = lat, y = lon), data = df) + geom_tile(aes(fill = value)) + 
    geom_path(data = cntry_boundaries)
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅我之前的这些答案: