如何使用ggsurvfit在KM图内添加风险表并对分组颜色编码?
在ggsurvfit中给KM图添加带分组颜色编码的风险表
ggsurvfit完全支持实现类似SAS的、带分组颜色编码的风险表功能,无需额外复杂语法,只需在绘图时配合几个关键参数即可:
核心实现步骤
- 用
ggsurvfit()绘制KM图时,通过color参数指定分组变量,让曲线按分组上色 - 调用
add_risktable()时开启risktable_group = TRUE,让风险表按分组拆分显示,同时继承KM曲线的颜色编码 - 可选:用
scale_color_xxx()系列函数自定义分组颜色,匹配你需要的配色
代码示例
library(ggsurvfit) library(survival) # 基于lung数据集拟合分组生存模型 fit <- survfit(Surv(time, status) ~ sex, data = lung) # 绘制带分组颜色编码风险表的KM图 ggsurvfit(fit, color = sex) + # 添加分组风险表,设置高度比例 add_risktable(risktable_group = TRUE, risktable_height = 0.2) + # 自定义分组配色(可选,替换为你需要的颜色) scale_color_brewer(palette = "Set1") + # 搭配基础主题(可选) theme_bw()
进阶:让风险表文字也匹配分组颜色
如果需要让风险表中的分组标签、数值也对应分组颜色,可通过add_risktable()的theme参数自定义:
ggsurvfit(fit, color = sex) + add_risktable( risktable_group = TRUE, risktable_height = 0.2, theme = list( theme_risktable_default(), # 按分组指定文字颜色,顺序与分组水平一致 theme(risktable_text = element_text(color = c("#E41A1C", "#377EB8"))) ) ) + scale_color_manual(values = c("#E41A1C", "#377EB8")) + theme_bw()
内容的提问来源于stack exchange,提问作者user23097547
相关产品推荐
相关产品推荐

