为地图创建标签,使用 R 中的 ggplot 制作

Creating labels for maps, made with ggplot in R

我有一个关于如何为我的地图制作标签以及如何为这些标签制作图例的问题。 例如,我有一个 sf 对象,其中包含有关 55 个 NY subboroughs 的信息,它看起来像:

           SUBBOROUGH                       geometry Spending_per_capita_all        brks ID
1             Astoria MULTIPOLYGON (((592483.9 45...            0.2299462931       0.1-1  1
2           Bay Ridge MULTIPOLYGON (((582292.3 44...            0.0084253956  0.006-0.01  2
3 Bayside/Little Neck MULTIPOLYGON (((607770.6 45...            0.0012083661 0.001-0.003  3
4  Bedford Stuyvesant MULTIPOLYGON (((589322.6 45...            0.0238263409   0.01-0.05  4
5         Bensonhurst MULTIPOLYGON (((585215.6 44...            0.0009825423      <0.001  5
... 

我想用ggplot制作地图,让我们这样简化:

ggplot() + geom_sf(data = sub_boroughs_morning_rides, aes(fill = brks))

在生成的地图中(在下图中,这是一个更复杂的地图)我想在每个多边形的中心都有标签,代表相应子区域的 ID(“ID”字段已包含此 ID 值).我还希望这些 ID 在图例中得到解释,例如:1 - Astoria,2 - Bay Bridge 等等。

current_map

有什么办法吗?

要在多边形中心列出 ID,请考虑 ggplot2::geom_sf_text() 调用,如下例所示;为了解释我建议在 R / RStudio 之外执行此操作的图例。

library(sf)
library(ggplot2)

shape <- st_read(system.file("shape/nc.shp", package="sf")) # included with sf package

ggplot(data = shape) +
   geom_sf() + # polygon of North Carolina
   geom_sf_text(aes(label = CNTY_ID)) # labels