如何使用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
相关产品推荐
相关产品推荐

