gpt4 book ai didi

R在 map 上绘制网格值

转载 作者:行者123 更新时间:2023-12-05 08:59:57 24 4
gpt4 key购买 nike

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

感谢支持。

最佳答案

大致有两种选择:一种使用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_boundariesSpatialLines(DataFrame)SpatialPolygons(DataFrame)。可以使用 rgdal 包或 maptools 包 (readShapeLines) 将多边形集读入 R。

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)

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

关于R在 map 上绘制网格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11081707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com