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

如何修改ggsurvfit绘制的Kaplan-Meier曲线的图例标签?

解决ggsurvfit生存曲线图例标签修改问题

方法一:提前转换数据变量为带标签的因子

先把数据集里的female变量转换成因子并指定标签,ggsurvfit会直接沿用这些标签作为图例文本:

# 假设原始female变量取值为0=男性、1=女性,按需调整对应关系
df$female <- factor(df$female, levels = c(0, 1), labels = c("Male", "Female"))

# 后续运行原生存分析与绘图代码即可
p <- survfit2(Surv(time, death)~female, data=df) 
# ... 原绘图代码保持不变

方法二:绘图时直接指定图例标签

若不想修改原始数据,可在scale_color_manual和scale_fill_manual中添加labels参数,匹配分组值与对应易读标签:

p %>%
ggsurvfit(type = "survival", linewidth=1) +
  labs(
      title = "Kaplan-Meier Curve",
      y = "Survival probability",
      x = "Time, days") + 
    coord_cartesian(xlim=c(0,30)) +
  add_legend_title("Sex") +
  scale_x_continuous(breaks = c(0, 5,10,15,20,25,30)) +
  scale_y_continuous(expand = c(0.01,0)) +
  # 添加labels参数指定图例文本
  scale_color_manual(values = c('dodgerblue2', 'orchid2'), 
                     labels = c("Male", "Female")) +
  scale_fill_manual(values = c('dodgerblue2', 'orchid2'), 
                    labels = c("Male", "Female")) +
  theme_gray() +
  theme(legend.position = "bottom") +
  add_censor_mark() +
  add_confidence_interval() +
  add_risktable(risktable_group = "risktable_stats") + 
  add_pvalue(caption="Log-rank {p.value}",
             location = "annotation", x =4, y=0.10) +
  add_quantile(x_value = 30, linetype = "dotted", color = "grey30", linewidth = 0.8) + 
  add_risktable_strata_symbol(symbol = "\U25CF", size = 10)

注意:两种方法中的levels和labels顺序要与你数据中female变量的实际取值完全对应,若原始变量取值逻辑不同,需调整对应关系。

内容的提问来源于stack exchange,提问作者user19745561

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:58:00