在地图上的[R地块网格值(R plot grid value on maps)

2019-06-25 13:40发布

我有以下几种格式的文件:纬度,经度,值。 我想用绘制的纬度,经度点的每一个这样的价值和欧盟地图上重叠它的彩色栅格地图。

感谢你的支持。

Answer 1:

大致有两种选择:使用一个格子和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) 。 读取polygonset成R可以用做rgdal包,或maptools包( readShapeLines )。

GGPLOT2

我个人更喜欢使用ggplot2超过spplotggplot2更加灵活,有一个更清晰的语法。 需要注意的是ggplot2正常工作data.frame的,而不是与SP包的空间对象。

一个最小的例子看起来是这样的:

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

欲了解更多信息,请参阅我的这些早期的答案:

  • 绘制在地图上插数据
  • 一个点数据集,以网格数据集的平均值


文章来源: R plot grid value on maps