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

如何使用ggsurvfit包修改风险表中的标签名称?

修改ggsurvfit风险表标签的方法

你用scale_color_manual和scale_fill_manual仅能修改ggplot图例的标签,但风险表的文本是直接从生存分析对象的分组变量中读取的,因此需要单独配置。以下是两种可行的解决方案:

方法1:提前修改数据的因子水平

直接将原始数据中的分组变量转换为因子并设置自定义标签,这样生存分析和风险表都会自动使用新标签,无需重复配置:

library(tidyverse)
library(ggsurvfit)

# 修改数据中sex列的因子标签
df_lung_mod <- df_lung %>%
  mutate(sex = factor(sex, levels = c(1, 2), labels = c('My label', 'My other label')))

# 绘制生存曲线和风险表
p <- 
  survfit2(Surv(time, status) ~ sex, data = df_lung_mod) %>%
  ggsurvfit(linewidth = 1) + 
  scale_ggsurvfit() + 
  add_risktable(risktable_stats = c("n.risk")) +
  theme_classic() +
  scale_color_manual(values = c('blue', 'magenta')) +
  scale_fill_manual(values = c('blue', 'magenta'))

p

方法2:在add_risktable中直接指定标签

如果不想修改原始数据,可以在add_risktable()函数中通过labels参数直接设置风险表的标签,同时保持scale_*_manual配置来同步图例:

library(tidyverse)
library(ggsurvfit)

p <- 
  survfit2(Surv(time, status) ~ sex, data = df_lung) %>%
  ggsurvfit(linewidth = 1) + 
  scale_ggsurvfit() + 
  add_risktable(
    risktable_stats = c("n.risk"),
    labels = c('My label', 'My other label') # 指定风险表标签
  ) +
  theme_classic() +
  scale_color_manual(
    values = c('blue', 'magenta'),
    labels = c('My label', 'My other label')
  ) +
  scale_fill_manual(
    values = c('blue', 'magenta'),
    labels = c('My label', 'My other label')
  )

p

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 02:25:02