我有几个具有以下格式的文件:纬度,经度,值。我想为每个纬度、经度点绘制一个具有此类值的彩色网格图,并将其重叠在欧盟地图上。
感谢您的支持。
大致有两种选择:一种使用 lattice 和 sp 包,另一种使用 ggplot2 包:
首先,假设您的数据被调用,您必须将数据转换为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
over spplot
。ggplot2
更灵活,语法更清晰。请注意,它ggplot2
适用于 normal data.frame
,而不适用于 sp-package 的空间对象。
一个最小的例子看起来像:
ggplot(aes(x = lat, y = lon), data = df) + geom_tile(aes(fill = value)) +
geom_path(data = cntry_boundaries)
有关更多信息,请参阅我的这些早期答案: