ggplot2散点图标签异常求助:显示行号而非国家名如何修复?
解决ggplot散点图标签显示行号而非国家名的问题
问题根源
你用xlim()和ylim()限制坐标轴范围时,这两个函数会直接丢弃超出范围的数据行,导致geom_text()无法正确匹配剩余数据点与对应的country标签,最终显示成了行号。
修改方案
用
coord_cartesian()替代xlim()和ylim()——它仅缩放坐标轴视图,不会删除数据,能保证标签与数据点的对应关系:ggplot(data = World, aes(x = pop_age, y = peace_index_score, label = country)) + geom_point() + labs(title = "Youth Buldge and Instability", x = "Median Age in Country", y = "Overall Peacefulness of Country") + theme_economist() + coord_cartesian(xlim = c(15, 45), ylim = c(0, 4)) + # 替换原xlim/ylim geom_smooth(method = lm, color = "red") + geom_text() # 无需重复指定aes(label=country),全局已定义可选优化:如果标签重叠严重,可添加参数自动移除重叠标签或调整位置:
geom_text(check_overlap = TRUE, hjust = 0.5, vjust = -0.5)
内容的提问来源于stack exchange,提问作者talkingtoducks
相关产品推荐
相关产品推荐

