You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:27:04