【问题标题】:Identifying grids into a map/shapefile将网格识别为地图/形状文件
【发布时间】:2018-04-26 04:25:50
【问题描述】:

我有一些关于地图/shapefile 的问题。我不是 R 方面的专家,因此,为了更容易理解我的目标,我将列举:

1- 识别地图上的每个网格,并可能省略其中一些网格。 2- 根据数据框中的值为每个网格着色

我刚刚使用 Photoshop 制作了我想要制作的东西,以帮助说明我的目标here

我使用“intersect”函数制作了this map,并使用了我从互联网获得的 shapefile 和使用“rastertoPolygons”函数制作的网格,但我不确定使用 .shp 是否是获得什么的最佳方式我想要,尽管这是我发现这样做的唯一方法,因为我在尝试使用 ggplot2 选项时迷路了(而且我对这个包非常熟悉)

任何帮助或建议都会很棒。

对不起,如果我提出了一个愚蠢的问题并为我的英语不好感到抱歉。

【问题讨论】:

  • 我认为这是正确的做法。使用你的多边形来显示一个网格。之后,您可以使用其他信息随意为所有这些多边形着色。

标签: r ggplot2 spatial shapefile


【解决方案1】:

如果你问如何在 ggplot 中做到这一点,你可以很容易地做到这一点。如果不是,你能澄清你在问什么吗?

您可以轻松绘制巴西地图,并直接使用您的 shapefile,或进行一些调整。由于我没有你的 shapefile,我将使用我自己的一个,你可以自己调整。我刚刚制作了两个任意框,并用名为id 的字段标记它们。您的分组名称可能不同。

library(ggplot2)
library(maps)
library(rgdal)

brasilia <- borders("world", regions = "Brazil")
brazil <- ggplot() + brasilia + theme_bw() + xlab("Longitude (decimals)") + ylab("Latitude (decimals)") + 
  theme(panel.border = element_blank(), panel.grid.major = element_line(colour = "grey80"), panel.grid.minor = element_blank()) +
  coord_fixed(1.0)
brazil # You can see just the map of Brazil

接下来,使用rgdal 导入您的shapefile,它应该读取所​​有元数据,这样您就不必告诉它什么投影等。只需告诉它它在哪里,以及shape 文件的名称是什么。请参阅?readOGR 寻求帮助。

shapes <- readOGR(dsn = "C:/foo/GIS/Brazil", layer = "brazil_grid")
brazil_shapes <- brazil + geom_path(data = shapes, aes(x = long, y = lat, group = id), color = "red")
brazil_shapes

用您想要的颜色填充它们可能需要最多的工作,创建一个表格来将您的填充级别映射到网格。不过,看起来这个答案可以为您指明正确的方向。 R ggplot2 merge with shapefile and csv data to fill polygons

这是 R 中映射的一个很好的概述。http://eriqande.github.io/rep-res-web/lectures/making-maps-with-R.html

【讨论】:

  • 非常感谢你,@匿名懦夫。这不是我想要的,但我在您的帮助和链接(:
猜你喜欢
  • 1970-01-01
  • 2012-07-25
  • 1970-01-01
  • 2023-04-04
  • 2022-12-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
相关资源
最近更新 更多