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

如何在ggplot2地图中移除南极洲边界?

如何在ggplot的borders()中排除南极洲?

你可以通过borders()的regions参数直接排除南极洲,不需要用ylim来裁剪。有两种简洁的实现方式:

方法1:提前生成排除南极洲的区域列表

先提取所有世界区域,移除南极洲后传给regions参数:

library(dplyr)
library(ggplot2)
library(maps)

# 获取除南极洲外的所有区域
world_regions <- map_data("world") %>% 
  pull(region) %>% 
  unique() %>% 
  setdiff("Antarctica")

# 绘制地图:自定义多边形数据 + 过滤后的边界
ggplot() +
  geom_polygon(data = map_data("world") %>% filter(region != "Antarctica"),
               aes(x = long, y = lat, group = group)) +
  borders(regions = world_regions)

方法2:直接给regions传过滤函数

borders()的regions参数支持传入一个筛选函数,写法更简洁高效:

library(dplyr)
library(ggplot2)
library(maps)

ggplot() +
  geom_polygon(data = map_data("world") %>% filter(region != "Antarctica"),
               aes(x = long, y = lat, group = group)) +
  borders(regions = ~.x != "Antarctica")

原理很直接:borders()默认会加载完整的世界地图数据,所以之前单独过滤geom_polygon的数据不会影响边界层。通过regions参数明确指定要包含的区域(排除南极洲),就能让边界只绘制目标区域的轮廓。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:04:50