You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在R语言中制作含英国与爱尔兰的地图并解决报错问题?

搞定R语言中英国+爱尔兰地图的实用方案

别担心!作为R新手遇到地图拼接的问题太正常了,我来给你一步步拆解怎么实现目标,还能轻松导入你的经纬度数据点~

推荐方案:用rnaturalearth+ggplot2(最适合新手)

这个组合能直接获取标准的国家边界数据,操作简单,兼容性强,完全适配新手需求。

1. 安装并加载必要的包

第一次使用时先安装依赖包,之后每次使用加载即可:

# 安装依赖包(仅第一次运行)
install.packages(c("rnaturalearth", "sf", "ggplot2"))

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

2. 获取英国和爱尔兰的边界数据

ne_countries函数直接调取两个国家的空间数据,指定returnclass = "sf"是为了让数据能被ggplot2直接识别:

# 获取英国+爱尔兰的空间边界数据
uk_ie_map <- ne_countries(country = c("United Kingdom", "Ireland"), returnclass = "sf")

小提示:如果遇到国家名称匹配问题,可以用ISO代码代替,比如英国是"GB",爱尔兰是"IE",代码改成country = c("GB", "IE")即可。

3. 绘制基础地图

ggplot2geom_sf函数快速生成地图,还能自定义样式:

ggplot() +
  geom_sf(data = uk_ie_map, fill = "#f8f8f8", color = "#2d2d2d") + # 自定义填充色和边界色
  theme_minimal() + # 清爽的极简主题
  labs(title = "英国与爱尔兰地图")

4. 添加你的经纬度数据点

假设你的数据存储在CSV文件里,包含lon(经度)和lat(纬度)列,按以下步骤把数据点叠加到地图上:

# 读取你的数据(替换成你的实际文件路径)
your_points <- read.csv("your_data.csv")

# 叠加数据点到地图
ggplot() +
  geom_sf(data = uk_ie_map, fill = "#f8f8f8", color = "#2d2d2d") +
  geom_point(data = your_points, aes(x = lon, y = lat), 
             color = "#e63946", size = 2.5, alpha = 0.8) + # 自定义点的颜色、大小和透明度
  theme_minimal() +
  labs(title = "英国与爱尔兰地图 + 自定义数据点")

常见报错排查

如果你之前尝试时出现报错,大概率是这几个原因:

  • 旧包的区域名称问题:旧版maps包对区域名称匹配很严格,比如用"UK"可能无法识别包含北爱尔兰的全英国,换成rnaturalearth就能避免这个问题。
  • 经纬度搞反:新手常把纬度(lat)和经度(lon)弄混,务必确保geom_point里是x=lony=lat
  • 坐标系不匹配:如果你的数据不是WGS84坐标系,需要用st_transform()转换,比如:
    your_points_sf <- st_as_sf(your_points, coords = c("lon", "lat"), crs = 4326)
    

试试上面的方法,应该就能顺利生成符合需求的地图啦~

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

火山引擎 最新活动