如何在R语言中绘制带分数渐变着色的指定国家世界地图
问题解决方法
你的代码存在语法错误和映射匹配问题,直接导致了object 'region' not found的报错,下面是具体修正方案:
错误点梳理
- 代码语法断裂:第一个
geom_map中color = 'black'后缺少闭合括号,导致后续代码解析混乱 - 映射列名不匹配:你的
scores数据框只有Country列,却写了aes(map_id = region),R找不到这个列 - 图层数据源缺失:第二个
geom_map没指定用scores数据,且同样缺少闭合括号 - 潜在名称匹配问题:部分国家名称可能和
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
相关产品推荐
相关产品推荐

