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

如何在ggplot2地图中移除南极洲并复现散点式地图教程

嘿,我来帮你搞定移除南极洲的问题!你用maps包绘制世界地图时,默认会包含南极洲,这里有几个简单实用的方法可以解决,还能完美适配你原来的散点地图教程:

方法1:直接排除南极洲区域

borders()函数可以通过exclude参数指定不绘制的区域,地图数据里南极洲的名称是"Antarctica",直接传这个参数就行:

library(readr)
library(dplyr)
library(ggplot2)
library(maps)
library(ggthemes)

# 读取你的RLadies数据
url_csv <- 'https://raw.githubusercontent.com/d4tagirl/R-Ladies-growth-maps/master/rladies.csv'
rladies <- read_csv(url(url_csv)) %>% select(-1)

# 绘制不含南极洲的地图 + 散点
ggplot() +
  borders("world", colour = "gray85", fill = "gray80", exclude = "Antarctica") +
  geom_point(data = rladies, aes(x = lon, y = lat), color = "#88398A", size = 2) +
  theme_map()

这个方法最直接,相当于告诉绘图函数直接跳过南极洲的图层,完全不会加载它的绘制数据。

方法2:通过坐标范围裁剪可视区域

如果第一种方法因为地图数据名称差异没生效(偶尔会有这种情况),可以用coord_map()限制显示的纬度范围——南极洲基本都在南纬60度以南,我们把纬度下限设为-60就能把它裁掉:

ggplot() +
  borders("world", colour = "gray85", fill = "gray80") +
  geom_point(data = rladies, aes(x = lon, y = lat), color = "#88398A", size = 2) +
  coord_map(xlim = c(-180, 180), ylim = c(-60, 90)) + # 限制纬度在-60到90之间
  theme_map()

这种方式是从视觉上隐藏南极洲,适合只需要调整显示效果、不需要修改底层地图数据的场景。

方法3:用更现代的地理数据工具(可选)

如果你想更灵活地处理地理数据,推荐用sf+rnaturalearth的组合,它们能提供更精准的地图数据,过滤南极洲也更直观:

先安装依赖包(如果没装过):

install.packages(c("sf", "rnaturalearth"))

然后绘制地图:

library(sf)
library(rnaturalearth)

# 获取不含南极洲的世界地图数据
world_sf <- ne_countries(returnclass = "sf") %>%
  filter(name != "Antarctica")

# 绘制散点地图
ggplot() +
  geom_sf(data = world_sf, colour = "gray85", fill = "gray80") +
  geom_point(data = rladies, aes(x = lon, y = lat), color = "#88398A", size = 2) +
  theme_map()

这个方法的优势是后续可以对地理数据做更多高级操作,比如区域筛选、投影转换等。


内容的提问来源于stack exchange,提问作者Vasilis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:39:41