如何修改ggcompetingrisks绘制的竞争风险图分组变量的图例标签
要修改分组变量对应的颜色图例标签,可通过以下两种方式实现:
方法1:绘图时直接修改颜色刻度标签(改动最小)
在你现有代码的绘图部分,新增scale_color_manual()层即可,修改后的完整运行代码如下:
library(ggplot2) library(cmprsk) library(survminer) # 模拟数据 comp.risk.data <- data.frame("tfs.days" = rweibull(n = 100, shape = 1, scale = 1)*100, "status.tfs" = c(sample(c(0,1,1,1,1,2), size=50, replace=T)), "Typing" = sample(c("A","B","C","D"), size=50, replace=T)) # 拟合竞争风险模型 CR <- cuminc(ftime = comp.risk.data$tfs.days, fstatus = comp.risk.data$status.tfs, cencode = 0, group = comp.risk.data$Typing) p <- ggcompetingrisks(fit = CR, multiple_panels = F, xlab = "Days", ylab = "Cumulative incidence of event", title = "Competing Risks Analysis") + scale_linetype_manual(name="my genotype",values=c(1, 2),labels=c("yes","no")) p$mapping <- aes(x = time, y = est, colour = group, linetype = event) # 新增scale_color_manual修改分组标签 p + labs(linetype = "event", colour = "my group") + scale_color_manual( name = "my group", # 沿用默认配色,需要自定义颜色可替换为自定义颜色向量,例如c("#F8766D","#7CAE00","#00BFC4","#C77CFF") values = scales::hue_pal()(4), # 按原始分组名和自定义标签的对应关系配置 labels = c("A" = "one", "B" = "two", "C" = "three", "D" = "four") )
方法2:提前修改原始数据的因子水平(全局生效)
在拟合模型之前,直接将分组列转为因子并修改水平标签,后续模型输出和绘图的分组名会自动替换为自定义内容:
# 在生成comp.risk.data之后、拟合cuminc模型之前运行这部分代码 comp.risk.data$Typing <- factor( comp.risk.data$Typing, levels = c("A", "B", "C", "D"), labels = c("one", "two", "three", "four") )
这种方式无需额外修改绘图代码,适合需要在所有分析场景统一分组标签的情况。
内容的提问来源于stack exchange,提问作者MDStat
相关产品推荐
相关产品推荐

