如何在R ggplot中为多分层组绘制多结局时间趋势图及解决报错
ggplot多分层多结局趋势图报错解决
错误原因
你遇到的报错核心是group参数设置有误:当前只按outcome(结局指标)分组,但实际上每条趋势线应该是**分层组(stratum)+结局指标(outcome)**的组合——同一结局在干预组和对照组是两条独立的线条,仅按outcome分组会让ggplot把不同分层的同结局数据混在一起,导致同一条线内的颜色/线型不恒定,触发报错。
修复代码
把group设置为interaction(stratum, outcome),让每个线条对应唯一的分层+结局组合,就能正常绘制:
data %>% ggplot(aes(x = time, y = value, group = interaction(stratum, outcome), colour = stratum)) + geom_point(aes(shape = outcome)) + geom_line(aes(linetype = outcome))
可选优化(自定义图例)
如果需要让图例更贴合需求,可以用guides()调整标题和显示:
data %>% ggplot(aes(x = time, y = value, group = interaction(stratum, outcome), colour = stratum)) + geom_point(aes(shape = outcome)) + geom_line(aes(linetype = outcome)) + guides( colour = guide_legend(title = "分层组"), shape = guide_legend(title = "结局指标"), linetype = guide_legend(title = "结局指标") )
内容的提问来源于stack exchange,提问作者tbo
相关产品推荐
相关产品推荐

