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

使用R脚本创建新西兰静态地图遇问题求助

解决新西兰地图显示极小的问题

你的问题根源是rnaturalearth的ne_countries返回的新西兰数据包含了其远在太平洋的附属小岛(如托克劳、查塔姆群岛等),这些小岛的极端坐标会把绘图范围拉到全球尺度,导致主岛被压缩成极小的点。以下是几种解决方法:

方法1:过滤掉面积过小的附属区域

通过计算每个地理单元的面积,只保留面积较大的主岛部分:

library(sf)
library(ggplot2)
library(rnaturalearth)
library(rnaturalearthdata)
library(ggspatial)
library(dplyr)

theme_set(theme_bw())

# 获取新西兰数据
newzealand <- ne_countries(country="New Zealand", type="countries", scale='large', returnclass = "sf")

# 计算面积并过滤(保留面积大于1000平方公里的区域)
newzealand_main <- newzealand %>%
  mutate(area = st_area(.)) %>%
  filter(area > units::set_units(1000, km^2))

# 绘图
ggplot(data = newzealand_main) +
  geom_sf()

方法2:手动限定绘图坐标范围

直接指定新西兰主岛的经纬度范围,缩小绘图视野:

ggplot(data = newzealand) +
  geom_sf() +
  # 新西兰主岛大致经纬度范围,可根据需求微调
  coord_sf(xlim = c(166, 178), ylim = c(-47, -34))

方法3:使用更细分的区域数据

如果需要更精细的地图,可以调用ne_states获取新西兰的省级区域数据,默认只包含主岛相关区域:

newzealand_states <- ne_states(country = "New Zealand", returnclass = "sf")

ggplot(data = newzealand_states) +
  geom_sf()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:22:38