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

如何去除Kaplan-Meier曲线图例中的列名Scenario?

解决Kaplan-Meier曲线图例简化问题

我懂你这种想把图例简化的需求!之前我也遇到过类似的情况,用survminer画Kaplan-Meier曲线时,默认的图例带变量名确实有点冗余。下面给你几个靠谱的解决办法,都是基于R语言的survival和survminer包(毕竟你参考的教程用的就是这套工具):

方法1:提前修改数据的因子水平(最彻底)

直接把数据中Scenario列的因子水平名称改成你想要的,这样绘图时会自动用修改后的名字当图例:

# 假设你的数据集叫df
df$Scenario <- factor(df$Scenario, 
                      levels = c("actual", "Best", "Worst"),  # 原水平值
                      labels = c("Actual", "Best", "Worst"))   # 替换后的名称

修改完数据后,再运行你的ggsurvplot绘图代码,图例就会直接显示Actual、Best、Worst,完全不带Scenario = 前缀。

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

如果不想修改原始数据,可以在ggsurvplot里用legend.labs参数直接定义图例内容,顺序要和生存曲线的分组顺序一致:

library(survival)
library(survminer)

# 先拟合生存模型(假设你的时间变量是time,结局变量是status)
fit <- survfit(Surv(time, status) ~ Scenario, data = df)

# 绘图时指定图例标签
ggsurvplot(fit, data = df,
           legend.title = "",  # 可以去掉图例的标题(比如原来的"Scenario")
           legend.labs = c("Actual", "Best", "Worst"))  # 自定义图例项名称

方法3:用ggplot的scale函数修改图例

如果你习惯用ggplot的语法调整样式,也可以在ggsurvplot后面加上scale_color_discrete(控制曲线颜色的图例)或scale_fill_discrete(控制填充区域的图例)来修改标签:

ggsurvplot(fit, data = df, legend.title = "") +
  scale_color_discrete(labels = c("Actual", "Best", "Worst")) +
  scale_fill_discrete(labels = c("Actual", "Best", "Worst"))

之前你尝试的labs函数没生效,大概率是因为ggsurvplot有自己的图例控制参数(比如legend.labs),优先级高于普通的ggplot labs设置,用上面的方法就能解决啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:56:15