如何为ggcuminc绘制的累积发病率函数(CIF)设置差异化颜色?
为竞争事件累积发病率函数(CIF)自定义颜色的解决方案
完整可运行代码
# 加载依赖包 library(tidycmprsk) library(ggplot2) library(dplyr) # 处理示例数据集:给结局变量添加可读标签 data(trial) trial <- trial %>% mutate( death_cr = factor(death_cr, levels = c(0, 1, 2), labels = c("截尾", "癌症死亡", "其他原因死亡")) ) # 拟合竞争风险模型 cif_model <- cuminc( time = ttdeath, status = death_cr, data = trial ) # 绘制带自定义颜色的CIF图 ggcuminc(cif_model) + aes(color = event) + # 将事件类型与颜色绑定 scale_color_manual( values = c( "癌症死亡" = "#FF6B6B", # 自定义癌症死亡的颜色 "其他原因死亡" = "#4ECDC4" # 自定义其他原因死亡的颜色 ) ) + labs( x = "随访时间", y = "累积发病率", color = "死亡原因" ) + theme_bw()
关键步骤说明
- 预处理结局变量:将
death_cr转换为带中文标签的因子,让模型输出的事件名称更直观,避免用数字代码匹配颜色。 - 颜色映射:通过
aes(color = event)建立事件类型和颜色美学的关联,这是让不同事件显示不同颜色的核心。 - 手动指定颜色:使用
scale_color_manual()的values参数,为每个事件类型设置你需要的颜色(支持十六进制代码、RGB值或R内置颜色名称,比如"red"、"blue")。 - 可选调整:如果不想预处理因子,也可以直接用模型默认的事件名称(比如
"death_cr: 1"、"death_cr: 2")来匹配颜色值。
内容的提问来源于stack exchange,提问作者Pashtun
相关产品推荐
相关产品推荐

