在R中使用geom_sf绘制shapefiles时遇到问题。

huangapple go评论62阅读模式
英文:

trouble plotting shapefiles in R with geom_sf

问题

我尝试在R中使用ggplot2sf绘制shapefiles,使用geom_sf,但它引发了我无法解决的错误。我可以使用plot()绘制SpatialPolygonsDataFrame,但如果可能的话,我想使用ggplotgeom_sf

这些shapefiles可以在这里找到:https://data.cityofchicago.org/Facilities-Geographic-Boundaries/Boundaries-Neighborhoods/bbvz-uum9

以下是应该是一个MWE:

library(ggplot2)
library(sf)
library(rgdal)

nbrhd_shp <- readOGR(dsn = shapefile_filepath, layer = "geo_export_00bf6ede-a61b-4746-8c69-e1510a184344")
class(nbrhd_shp)

plot(nbrhd_shp)

这两个都有效。class(nbrhd_shp)返回如预期的那样:

> class(nbrhd_shp)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"

但当我尝试使用ggplot绘制时,我得到一个空白图并且有坐标标签在坐标轴上以及一个错误消息:

ggplot(nbrhd_shp) +
  geom_sf(data = nbrhd_shp@data, aes(geometry = nbrhd_shp@polygons))+
  coord_sf(crs = st_crs(nbrhd_shp))

为每个Polygons定义的Regions
警告信息:
`stat_sf()`中计算失败
由`UseMethod()`中的错误引起:
! 对类为 "list" 的对象应用 "st_bbox" 的方法
英文:

I'm trying to plot shapefiles in R using ggplot2 and sf to call geom_sf but it's throwing errors that I can't seem to work around. I am able to plot the SpatialPolygonsDataFrame without issue using plot() but I'd like to work with ggplot and geom_sf if possible.

The shapefiles can be found here: https://data.cityofchicago.org/Facilities-Geographic-Boundaries/Boundaries-Neighborhoods/bbvz-uum9

Here's what should be a MWE:

library(ggplot2)
library(sf)
library(rgdal)

nbrhd_shp &lt;- readOGR(dsn = shapefile_filepath, layer = &quot;geo_export_00bf6ede-a61b-4746-8c69-e1510a184344&quot;)
class(nbrhd_shp)

plot(nbrhd_shp)

these both work. The class(nbrhd_shp) returns as expected:

&gt; class(nbrhd_shp)
[1] &quot;SpatialPolygonsDataFrame&quot;
attr(,&quot;package&quot;)
[1] &quot;sp&quot;

But when I try to plot with ggplot I get a blank plot with coordinate labels on the axes and an error message:

ggplot(nbrhd_shp) +
  geom_sf(data = nbrhd_shp@data, aes(geometry = nbrhd_shp@polygons))+
  coord_sf(crs = st_crs(nbrhd_shp))

Regions defined for each Polygons
Warning message:
Computation failed in `stat_sf()`
Caused by error in `UseMethod()`:
! no applicable method for &#39;st_bbox&#39; applied to an object of class &quot;list&quot;

答案1

得分: 0

我认为你应该首先将其转换为 sf 对象。

nbrhd_shp <- st_as_sf(nbrhd_shp)
ggplot(nbrhd_shp) + geom_sf()

在R中使用geom_sf绘制shapefiles时遇到问题。

英文:

I think you should convert it to an sf object first.

nbrhd_shp &lt;- st_as_sf(nbrhd_shp)
ggplot(nbrhd_shp) + geom_sf()

在R中使用geom_sf绘制shapefiles时遇到问题。

huangapple
  • 本文由 发表于 2023年3月4日 00:26:01
  • 转载请务必保留本文链接:https://go.coder-hub.com/75629578.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定