2

我有几个具有以下格式的文件:纬度,经度,值。我想为每个纬度、经度点绘制一个具有此类值的彩色网格图,并将其重叠在欧盟地图上。

感谢您的支持。

4

1 回答 1

9

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

格子/sp

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

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

然后绘制:

spplot(df, "value")

可以使用以下sp.layout参数覆盖附加信息,例如国家边界:

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

哪里cntry_boundaries是 aSpatialLines(DataFrame)SpatialPolygons(DataFrame)。可以使用rgdal包或maptools包 ( readShapeLines)将多边形集读入 R。

ggplot2

我个人更喜欢使用ggplot2over spplotggplot2更灵活,语法更清晰。请注意,它ggplot2适用于 normal data.frame,而不适用于 sp-package 的空间对象。

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

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

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

于 2012-06-18T11:26:10.903 回答