将世界地图子集化为北温带纬度 ggplot2

5

我希望创建一个标明我的研究地点位置的地图。所有地点都位于北温带纬度。为了实现这一目标,我首先加载了世界地图,然后将y轴设置为仅包括北温带纬度(经度在23.5到66.5度之间)。

#build map
world <- map_data("world") # we already did this, but we can do it again
map <- ggplot() + geom_polygon(data = world, aes(x=long, y = lat, group = group))
map <- map + coord_map(ylim = c(23.5, 66.5))
map

然而,这会混淆地图顶部的内容,并且在北纬50度以北放置了一条黑色的限制线,该如何解决? 输入图片描述


2
似乎是coord_map()出了问题。将其替换为coord_quickmap()就可以正常工作了。 - GL_Li
这个可行,谢谢@GL_Li,如果你想把它作为正式答案留下来,我会接受的,否则我明天会处理它。 - colin
1个回答

4

您可以将其切片并使用真实的投影:

library(ggalt)
library(ggplot2)

world <- map_data("world") 

ggplot() +
  geom_cartogram(
    data = world, map = world,
    aes(x=long, y = lat, group = group, map_id=region)
  ) +
  coord_proj("+proj=wintri", ylim = c(23.5, 66.5))

enter image description here


嘿 - 这看起来很棒,我很想实现它,但是运行这段代码会返回错误:Error in zero_range(from) : x must be length 1 or 2 - colin
这绝对与 coord_proj("+proj=wintri", ylim = c(23.5, 66.5)) 行有关,因为 geom_cartogram 函数正常工作并返回世界地图。 - colin
1
尝试从Github安装ggalt。我还使用了最新的Github ggplot2。 - hrbrmstr
知道了。安装 ggplot2 的 Github 版本才让它正常工作。谢谢! - colin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接