使用ggsurvfit包中ggcuminc函数时出现报错求助
解决ggsurvfit包ggcuminc绘图时geom_step报错问题
问题重现
使用ggsurvfit的ggcuminc()绘制累积发病率函数时,执行以下代码报错:
cuminc(Surv(ttdeath, death_cr) ~ trt, trial) %>% ggcuminc(outcome = "death from cancer") + geom_step(linewidth = 1)
报错信息:
Error in `geom_step()`: ! Problem while setting up geom. ℹ Error occurred in the 2nd layer. Caused by error in `compute_geom_1()`: ! `geom_step()` requires the following missing aesthetics: x and y
补充说明:ggplot2 3.4.0版本中size美学已被弃用,替换为linewidth。
报错原因
ggcuminc()函数内部已自动生成绘制累积发病率曲线的geom_step()图层,且该图层的x/y轴变量映射为内部处理逻辑。手动额外添加geom_step()时,无法继承内部的x/y映射关系,因此触发缺失美学参数的报错。
解决方案
无需手动添加geom_step(),直接通过ggcuminc()自带参数调整线条宽度:
cuminc(Surv(ttdeath, death_cr) ~ trt, trial) %>% ggcuminc(outcome = "death from cancer", linewidth = 1)
若需要更复杂的样式自定义,可通过override.aes配合theme()调整,或通过ggplot_build()提取绘图数据后再自定义图层,但常规场景下使用ggcuminc()自带的linewidth参数即可解决问题。
内容的提问来源于stack exchange,提问作者ebay
相关产品推荐
相关产品推荐

