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

如何使用R语言绘制欧盟国家及其海洋边界的地图?

实现方案

你可以通过sf、rnaturalearth和ggplot2三个常用R包完成欧盟国家+海洋边界的绘制,核心思路是分别获取欧盟国家的陆域矢量数据、海洋专属经济区(EEZ,通用的海洋管辖边界数据)矢量数据,之后叠加绘图即可。


步骤1:安装加载依赖包

# 首次使用请先安装
install.packages(c("sf", "rnaturalearth", "rnaturalearthdata", "ggplot2", "dplyr"))

# 加载包
library(sf)
library(rnaturalearth)
library(ggplot2)
library(dplyr)

步骤2:筛选目标区域数据

# 1. 筛选欧盟27国陆域数据
# 加载全球国家矢量数据
global_countries <- ne_countries(scale = "medium", returnclass = "sf")
# 定义欧盟成员国列表,可按需增减
eu_member <- c("Austria", "Belgium", "Bulgaria", "Croatia", "Cyprus", "Czech Republic", "Denmark", "Estonia", "Finland", "France", "Germany", "Greece", "Hungary", "Ireland", "Italy", "Latvia", "Lithuania", "Luxembourg", "Malta", "Netherlands", "Poland", "Portugal", "Romania", "Slovakia", "Slovenia", "Spain", "Sweden")
eu_land <- global_countries %>% filter(sovereignt %in% eu_member)

# 2. 筛选欧盟国家对应海洋边界(专属经济区EEZ)数据
global_eez <- ne_download(type = "eez", scale = "medium", returnclass = "sf")
eu_marine <- global_eez %>% filter(sovereign1 %in% eu_member)

步骤3:叠加绘图

ggplot() +
  # 底层绘制海洋区域,填充浅蓝色
  geom_sf(data = eu_marine, fill = "#b3e5fc", color = "#0288d1", linewidth = 0.2) +
  # 上层绘制陆地区域,填充浅绿色
  geom_sf(data = eu_land, fill = "#c8e6c9", color = "#2e7d32", linewidth = 0.3) +
  # 限定绘图范围,聚焦欧洲区域避免展示法国海外领地等无关区域
  coord_sf(xlim = c(-32, 46), ylim = c(30, 73)) +
  # 主题调整
  theme_bw() +
  labs(
    title = "欧盟成员国及海洋管辖边界",
    x = "经度",
    y = "纬度"
  )

补充说明

  • 若需要更高精度的边界,可将scale参数从"medium"改为"large",对应数据加载时间会更长
  • 如果需要自定义边界样式,直接调整geom_sf中的fill(填充色)、color(边界色)、linewidth(边界宽度)参数即可
  • 如需叠加其他地理要素(河流、城市等),可从rnaturalearth包的对应数据接口获取后,新增geom_sf图层叠加即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:24:04