如何使用ggplot2与sf包绘制以南为上的地图?
如何使用ggplot2与sf包绘制以南为上的地图?
嘿,我来帮你搞定这个问题!你之前尝试coord_flip()和scale_y_reverse()没成功是因为coord_sf()有自己的坐标系处理逻辑,普通的翻转函数对它不太管用。这里有个简单直接的方法,用coord_sf()的orientation参数就能轻松实现南朝上的地图效果:
orientation参数需要三个值:(纬度, 经度, 旋转角度),我们把它设置为c(-90, 0, 180)就能让南极成为地图的“顶部”,也就是以南为上。下面是修改后的完整代码:
library(tidyverse) library(sf) library(rnaturalearth) library(rnaturalearthhires) BRA <- ne_states(country = "Brazil", returnclass = "sf") ggplot(BRA) + geom_sf(fill = "white") + coord_sf(orientation = c(-90, 0, 180)) # 核心参数,控制地图朝向
给你解释下这三个参数的作用:
- 第一个值
-90:指定地图“顶部”对应的纬度,这里选南极的纬度; - 第二个值
0:设置地图的中央经度,你也可以根据需求调整成巴西的中央经度(比如-50),地图显示会更贴合; - 第三个值
180:让地图整体旋转180度,保证地理要素的方向正确。
运行这段代码后,你就能看到以南为上的巴西地图啦!
备注:内容来源于stack exchange,提问作者Marcio Cure
相关产品推荐
相关产品推荐

