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

如何在R语言中绘制带分数渐变着色的指定国家世界地图

问题解决方法

你的代码存在语法错误和映射匹配问题,直接导致了object 'region' not found的报错,下面是具体修正方案:

错误点梳理

  1. 代码语法断裂:第一个geom_map中color = 'black'后缺少闭合括号,导致后续代码解析混乱
  2. 映射列名不匹配:你的scores数据框只有Country列,却写了aes(map_id = region),R找不到这个列
  3. 图层数据源缺失:第二个geom_map没指定用scores数据,且同样缺少闭合括号
  4. 潜在名称匹配问题:部分国家名称可能和map_data('world')里的region值不一致,需要统一

修正后的完整代码

library(ggplot2)
library(maps)

# 示例分数数据框
scores <- data.frame(
  Country = c("United States", "France", "India"),
  Score = c(0.4, 0.2, 0.6)
)

world_map <- map_data('world')

gg <- ggplot() +
  # 绘制基础世界地图(白色底+黑色边框)
  geom_map(
    data = world_map,
    map = world_map,
    aes(map_id = region),
    fill = "white",
    color = "black"
  ) +
  # 叠加分数填充图层
  geom_map(
    data = scores,
    map = world_map,
    aes(map_id = Country, fill = Score),
    color = "black"
  ) +
  # 确保地图完整显示
  expand_limits(x = world_map$long, y = world_map$lat) +
  # 设置渐变填充配色
  scale_fill_gradient(low = "#e6f2ff", high = "#003366")

print(gg)

额外提示

如果部分国家没显示对应颜色,检查scores$Country的名称是否和world_map$region完全一致(比如"USA"和"United States"是不同的,需要统一成匹配的名称)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:20:22