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

在R中按纬度分区着色绘制世界地图的实现方案问询

按纬度带为世界地图着色的可行方案

核心思路

放弃依赖rworldmap中绑定国家的函数,改用sf+ggplot2组合直接处理地理多边形数据:先给每个国家判定所属纬度带,再关联你的Value数据完成可视化,完全绕开国家分类的限制。

具体实现步骤

1. 安装并加载所需包

需要用到rnaturalearth获取标准世界地理数据,sf处理空间对象,ggplot2绘图,dplyr做数据清洗:

install.packages(c("rnaturalearth", "sf", "ggplot2", "dplyr"))
library(rnaturalearth)
library(sf)
library(ggplot2)
library(dplyr)

2. 准备你的示例数据

替换成你实际的数据集即可,这里用模拟数据演示:

# 示例数据:国家名称 + 对应Value值
user_data <- data.frame(
  Country = c("China", "Brazil", "United States", "Australia", "South Africa"),
  Value = c(15, 22, 18, 25, 12)
)

3. 获取地理数据并添加纬度带分类

用ne_countries()获取带属性的国家空间数据,通过计算国家中心点纬度来判定所属纬度带:

# 获取世界国家的sf格式空间数据
world_sf <- ne_countries(returnclass = "sf")

# 计算每个国家的中心点纬度,划分纬度带
world_sf <- world_sf %>%
  mutate(
    # 提取多边形中心点的纬度值
    center_lat = st_coordinates(st_centroid(geometry))[,2],
    # 按回归线划分纬度带
    lat_belt = case_when(
      center_lat > 23.5 ~ "北温带",
      abs(center_lat) <= 23.5 ~ "热带",
      center_lat < -23.5 ~ "南温带"
    )
  )

注:如果觉得中心点判定不够准确,也可以提取国家多边形的纬度范围(比如st_bbox(geometry)[["ymin"]]和ymax),再根据范围调整判定逻辑(比如只要有区域覆盖热带就归为热带)。

4. 关联你的Value数据

按国家名称合并地理数据和你的业务数据,注意统一名称拼写,避免匹配失败:

# 按国家名称合并(ne_countries的国家名称列是`name`)
world_data <- world_sf %>%
  left_join(user_data, by = c("name" = "Country"))

如果名称匹配有问题,建议改用ISO代码(ne_countries提供iso_a3列)匹配,准确率更高。

5. 绘制最终地图

用ggplot2的geom_sf实现按纬度带区分、Value值控制颜色深浅的地图:

ggplot(world_data) +
  geom_sf(aes(fill = Value, color = lat_belt), linewidth = 0.2) +
  # 设置Value值的颜色渐变方案
  scale_fill_viridis_c(option = "plasma", na.value = "gray80") +
  # 设置不同纬度带的边界颜色
  scale_color_manual(values = c("北温带" = "darkblue", "热带" = "darkorange", "南温带" = "darkgreen")) +
  # 添加标题和图例标签
  labs(title = "世界地图:按纬度带划分的Value分布",
       fill = "Value值",
       color = "纬度带") +
  # 优化主题样式
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, size = 14),
    legend.position = "bottom"
  )

额外调整方向

如果需要严格按纬度区域(而非国家归属)着色,可以直接创建三个横向纬度带的多边形图层,和国家图层叠加显示,但这种方式会覆盖国家边界,适合只展示纬度区域分布的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 06:54:54