ggplot2按颜色分组绘图时如何设置geom_text文本为黑色且不偏移位置
错位原因
color参数在你的代码中同时承担了分组依据和颜色设置两个作用:你在全局aes()中定义的color = type是position_dodge()默认的分组规则,当你在geom_text()的非映射参数(即aes()外)直接设置color = "black"时,会覆盖全局的color映射,导致geom_text失去分组依据,所有文本都对齐到x轴刻度的中心位置,出现错位。
解决方案
在geom_text()的美学映射中显式指定group = type保留分组规则,同时在映射外设置color = "black"即可,完全不需要改动原有文本的对齐参数。
修改后的完整代码如下:
library(ggplot2) ggplot(grouped_mean, aes(x = fi.cat, y = mean, color = type)) + geom_point(position = position_dodge(0.9), size = 2) + geom_errorbar(aes(ymin = mean-sd, ymax = mean+sd), position = position_dodge(0.9), size = 1, width = 0.2) + geom_text(aes(label = round(mean, 2), group = type), color = "black", vjust = -5.5, position = position_dodge(0.9), size = 3) + labs(x = "FI category", y = "Mean FI score", color = "FI type") + scale_color_brewer(palette = "Blues") + theme_minimal()
内容的提问来源于stack exchange,提问作者Dani
相关产品推荐
相关产品推荐

