【问题标题】:How do I plot my shape with a list of polygons with ggplot2?如何使用 ggplot2 用多边形列表绘制我的形状?
【发布时间】:2020-04-26 11:51:03
【问题描述】:

这是我第一次使用空间数据。我的项目的目标是可视化梅赫伦市(比利时)房地产市场的价格演变。我想在城市中不同社区的地理地图上可视化这种颜色编码。

我从城市收到了一个形状文件 (.shp),它可以显示所有不同的社区,我可以使用 sf 包导入它,但我无法使用 ggplot2 包绘制它。

请在下面找到我当前的代码:

library(sf)
library(ggplot2)

#WORKING PART - reading the shape file
shapefile_df <- “/filepath.shp" %>%
  st_read()

#NOT WORKING PART - plotting the shapefile
map <- ggplot() +
  geom_polygon(data = shapefile_df, 
               aes(x = long, y = lat, group = group),
               color = 'gray', fill = 'white', size = .2)

print(map)

读取形状文件时,我得到一个 4 列数据框,其中第 4 列是称为geometry 的多边形列表。

我的问题:如何从这个多边形列表中获取经纬度? 还是我完全是从错误的角度看待问题?

当我输入 shapefile_df$geometry 时供您参考,RStudio 回复:

Geometry set for 12 features 
geometry type:  POLYGON
dimension:      XY
bbox:           xmin: 4.370086 ymin: 50.99116 xmax: 4.549005 ymax: 51.07861
epsg (SRID):    4326
proj4string:    +proj=longlat +datum=WGS84 +no_defs
First 5 geometries:
POLYGON ((4.471225 51.03026, 4.471367 51.03, 4....
POLYGON ((4.496646 51.02285, 4.496969 51.02247,...
POLYGON ((4.484093 51.01383, 4.484615 51.01353,...
POLYGON ((4.450368 51.0356, 4.450477 51.03558, ...
POLYGON ((4.439164 51.0608, 4.439563 51.06049, ...

有人可以帮忙吗?我认为共享形状文件可能很有用。是否有在此处共享文件的最佳做法?

请记住,这是我的第一篇文章,我已经阅读了很多关于在这里正确提问的内容,如果某些解释/代码不够简约,请提供反馈。

【问题讨论】:

  • 欢迎来到 Stack Overflow!您应该提供reproducible example
  • 也许您想使用geom_sf 而不是geom_polygon
  • 正如 Axeman 所说,我认为您的数据是一个 SF 对象。如果你有 SF 对象并想绘制多边形,你可以使用geom_sf(),这让你的生活变得轻松。如果你有一个 SP 对象,你需要强化数据并使用geom_polygon()
  • 感谢您的回复!我从错误的角度看。这确实是通过使用 geom_sf() 解决的!

标签: r ggplot2 polygon spatial sf


【解决方案1】:

你看错了,但别担心。这比你想象的要容易。

Shapefiles 和 sf 对象与通常的 data.frames 略有不同。 geom_sf 知道如何绘制点、线和多边形,而无需您确切地告诉它要做什么。

为了让你的情节发挥作用:

#start with a basic plot:
ggplot() +
  geom_sf(data = shapefile_df)

您可以从那里添加颜色、填充、大小等参数。

看起来您的数据是由多边形组成的,所以希望看到类似的东西,但与您所在地区的邻域边界。

从 sf 包中的示例数据绘制。

【讨论】:

  • 谢谢,我确实是从错误的角度看它。这回答了我的问题!
猜你喜欢
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
  • 2018-04-26
  • 2022-01-25
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多