在 Choroplet 地图中查找区域

问题描述 投票:0回答:1

我正在尝试准备科索沃的等值区域地图。我的目的是绘制以下地区/地区的地图:Ferizaj、Gjakova、Gjilan、Mitrovica、Pecki、Pristina 和 Prizren。

我尝试用 ggplot2 来做到这一点,下面你可以看到我的代码:

library(ggplot2)
mapdata_df <- map_data("world") 

sub_set<-mapdata_df%>%
    dplyr::filter(region %in%  c("Kosovo"))

但是在 ggplot2 内部,虽然我找到了科索沃,但找不到该地区的名称。那么有人可以帮助我如何解决这个问题并准备带有区域的等值线地图吗?

r ggplot2 choropleth
1个回答
0
投票

为了说明我的评论,以下是如何使用

osmdata
ggplot2
创建科索沃不同地区的地图:

library(ggplot2)
library(osmdata)
#> Data (c) OpenStreetMap contributors, ODbL 1.0. https://www.openstreetmap.org/copyright

q <- getbb("kosovo") |>
  opq() |>
  add_osm_feature(key = "admin_level", value = "4") |>
  osmdata_sf()

kosovo_districts <- q |>
  purrr::pluck("osm_multipolygons") |>
  dplyr::filter(`is_in:country`=="Republic of Kosovo")

ggplot(data = kosovo_districts) +
  geom_sf() +
  geom_sf_text(aes(label = `name:en`)) +
  theme_void()

输出:

OpenStreetMap wiki 显示了请求返回地区的行政级别,也可以进行修改以返回国家边界。由于科索沃的边界框还返回了塞尔维亚的一些地区等效边界,因此我将其过滤掉。希望这对您有帮助!

创建于 2024-03-22,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.