You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 07:58:06