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

