移动位于 AK 和 HI 的河流以匹配 plot_usmap

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

我用

plot_usmap
做了一个可爱的叶绿素:

plot_usmap(data = state_difference, values = "my_variable") +
    theme(legend.position = "bottom") +
    scale_fill_stepsn(breaks = as.vector(quantile(state_difference$median_premium, probs = seq(0, 1, 1/5))), colors = heat.colors(5)) +
    labs(title = "Graph title")

然后有人说,“你知道吗?我们应该把地形特征放在这张地图上。”所以我找到了一个很好的定义河流的形状文件:

rivers <- st_read("sources/river_files")

## Match projection to that of 'plot_usmap' (ESRI:102003):
rivers2 <- sf::st_transform(rivers, "ESRI:102003")

这是如此接近

plot_usmap(data = state_difference, values = "my_variable") +
    theme(legend.position = "bottom") +
    scale_fill_stepsn(breaks = as.vector(quantile(state_difference$median_premium, probs = seq(0, 1, 1/5))), colors = heat.colors(5)) +
    labs(title="Graph title") +
    geom_sf(rivers2)

问题是

plot_usmap
将阿拉斯加和夏威夷放在美国大陆以南,而 shapefile 将它们放在它们的实际位置。所以我需要移动美国大陆以南的阿拉斯加和夏威夷的河流来匹配
plot_usmap
.

通常的方法(见这里)涉及标记为“阿拉斯加”和“夏威夷”的geoms可以转换,但shapefile只有河流。我尝试将

shift_geometry
应用到
rivers2
,但结果是垃圾。

r maps sf
© www.soinside.com 2019 - 2024. All rights reserved.