R ggplot:重复测量设计中为不同组别设置不同折线颜色
解决ggplot重复测量折线图两组颜色不同的问题
你当前代码里把colour设为固定值#FC4E07,导致两条折线和误差线都用同一种颜色。要让两组呈现不同颜色,只需把colour映射到分组变量Condition即可,具体修改如下:
修改后的完整代码
ggplot(data = DataXY) + aes(x = Number, y = Score, group = Condition) + # 将colour放入aes中,绑定Condition变量 stat_summary(aes(linetype = Condition, colour = Condition), fun = mean, geom = "line", linewidth = 1) + # 误差线也绑定Condition,保证和对应折线同色 stat_summary(aes(colour = Condition), fun.data = mean_sd, geom = "errorbar", width = 0.2) + scale_y_continuous(breaks = seq(from = -1, to = 8, by = 1)) + # 统一图例标题,避免出现两个Condition图例 labs(x = "Number", y = "rating", colour = "Condition", linetype = "Condition") + # 可选:自定义两组的颜色,替换成你数据中Condition的实际取值 scale_colour_manual(values = c("基线组" = "#FC4E07", "治疗组" = "#00AFBB")) + theme_bw() + theme(legend.position = "bottom", legend.direction = "horizontal", plot.title = element_text(hjust=0.5), text = element_text(size = 11, family = "Calibri"))
关键修改点
- 颜色映射分组:把
colour从stat_summary的固定参数移到aes()内部,绑定Condition变量,ggplot会自动为不同组分配不同颜色。 - 误差线同步颜色:误差线的
colour同样绑定Condition,确保每组的折线和误差线颜色一致。 - 自定义颜色(可选):用
scale_colour_manual()可以指定你想要的颜色值,把代码里的组名替换成你数据中Condition的实际取值即可。 - 合并图例:通过
labs()把colour和linetype的图例标题设为相同,ggplot会自动合并成一个图例,避免重复。
内容的提问来源于stack exchange,提问作者Lucy991
相关产品推荐
相关产品推荐

