我正在学习使用 ggplot 和 sf 来处理空间数据。
当我尝试绘制以下图时,出现错误:
library(sf)
library(ggplot2)
library(rnaturalearth)
library(rnaturalearthdata)
world <- ne_countries(scale = "medium", returnclass = "sf")
ggplot(data = world) +
geom_sf() +
coord_sf(xlim = c(-102.15, -74.12), ylim = c(0, 33.97), expand = FALSE)
# Error in st_cast.POINT(x[[1]], to, ...) :
# cannot create MULTILINESTRING from POINT
然而,如果我只是在任一方向上稍微调整 ylims,它就会起作用!:
ggplot(data = world) +
geom_sf() +
coord_sf(xlim = c(-102.15, -74.12), ylim = c(0.01, 33.97), expand = FALSE)
or
ggplot(data = world) +
geom_sf() +
coord_sf(xlim = c(-102.15, -74.12), ylim = c(-0.01, 33.97), expand = FALSE)
所以这是一个很好的解决方案,但我想知道问题是什么?在最后的情节中,我注意到一些小岛屿悄悄进入了地图(加拉帕戈斯群岛?)
这个多边形的尖端看起来像一个点而不是一个多边形,是否以某种方式干扰了第一段代码?或者发生了其他事情,我怎样才能更优雅地解决呢?