R在地图上绘制填充的经度 - 纬度网格单元格

Ric*_*ard 5 plot r geospatial ggplot2

我有一个包含许多(x,y,z)数据点的数据框,(x,y)是大小经度 - 纬度单元格的右下坐标w(例如1度网格).该z值已在此单元格上取平均值.

我想在R中绘制这些点,以便整个网格单元格中填充一些颜色z.

结果看起来像这些图像之一: 填充经度 - 纬度网格单元格

投影本身(例如Lambert conformal conic,equirectangular)并不重要,只是网格单元绘图.

我的数据很稀疏:并非每个经度 - 纬度单元都有与之关联的数据.

我的希望是类似的解决方案

library(maps)
map("state")
grid_points(my_data,c("x","y","z"),0.5)
Run Code Online (Sandbox Code Playgroud)

其中0.5是上面的网格分辨率,表示0.5度单元格.

有什么想法吗?

谢谢!

Pau*_*tra 7

使用的另一种任一spplotimage是使用ggplot2.相关的几何形状是geom_rastergeom_tile.第一个应该表现更好,产生更小的文件,第二个更标准.以下示例调用:

ggplot(aes(x = x, y = y, fill = value), data = dat_grid) + geom_tile() + 
  geom_path(data = ant_ggplot)
Run Code Online (Sandbox Code Playgroud)

来自我的博文中的orginates.此外,还ggplot2支持通过mapproj包装的一系列投影,coord_map有关详细信息,请参阅.

以下是一个工作示例(假设您已定义YOUR_DATA为具有x,y,z列):

library(ggplot2)
library(maps)
us_states <- map_data("state")
(ggplot(aes(x=x,y=y,fill=z),data=YOUR_DATA) + geom_tile())+geom_polygon(data=us_states,aes(x=long, y=lat, group=group), colour="black", fill="white", alpha=0)
Run Code Online (Sandbox Code Playgroud)