gpt4 book ai didi

r - 防止 spData::world 国家环绕 map /裁剪 map 区域

转载 作者:行者123 更新时间:2023-12-04 07:25:49 26 4
gpt4 key购买 nike

我正在使用 sf::world 制作 map ,我只想绘制欧洲、非洲、亚洲和大洋洲:

library(sf)
map = spData::world %>%
dplyr::filter(!continent %in% c("South America", "North America", "Antarctica"))

ggplot() +
geom_sf(data=map, aes(geometry=geom))
enter image description here
就目前情况而言,俄罗斯和大洋洲的一些部分正在环绕并在图上留出大量空白。
我尝试了 st_crop 的各种组合来自 this answer , 裁剪出空白做:
st_crop(map, xmin=-30, xmax=180, ymin=-180, ymax=180)
但它似乎返回一张没有几何图形的空白 map 。我觉得解决方案是简单使用此功能,但我无法到达那里。

最佳答案

您可以使用此答案中提出的方法 https://stackoverflow.com/a/67977330/7756889

library(sf)
library(ggplot2)

map = spData::world %>%
dplyr::filter(!continent %in% c("South America", "North America", "Antarctica"))

# Russia only will not do; Fiji also crosses the antimeridean...
rossiya <- subset(map, iso_a2 %in% c("RU", "FJ"))

pacified_rossiya <- st_shift_longitude(rossiya)

rest_of_world <- subset(map, !iso_a2 %in% c("RU", "FJ"))

map2 <- rbind(pacified_rossiya,
rest_of_world)

plot(st_geometry(map2))
enter image description here
不过,它似乎在基本图中效果最好,并且在应用于 ggplot2 时会崩溃。

关于r - 防止 spData::world 国家环绕 map /裁剪 map 区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68224036/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com