从ggsurvplot中的图例中删除变量名称

时间:2020-05-12 08:56:03

标签: r ggplot2 survminer

在由ggsurvplot创建的图例中,是否有一种简便的方法来删除变量名称? 示例:

library(survival)
library(survminer)

set.seed(123)
df=data.frame(gender=c(rep("male", 10), rep("female", 10)), value=c(rnorm(10,mean = 2), rnorm(10,mean = 3)))
fit = surv_fit(Surv(value) ~ gender, data = df)
p = ggsurvplot(fit, data = df,  surv.median.line = "none") 

enter image description here

我想要的是从图例中删除“性别”一词,如下图所示。我可以通过手动设置图例标签来实现:

p = ggsurvplot(fit, data = df,  surv.median.line = "none", legend.labs = c("male", "female")) 

但是有更好的方法吗?

编辑:手动分配性别(图2)时,我不小心交换了男性和女性,这表明此方法的危险性。

enter image description here

3 个答案:

答案 0 :(得分:2)

strata一起使用gsub

names(fit$strata) <- gsub("gender=", "", names(fit$strata))
ggsurvplot(fit, data=df, surv.median.line="none")

enter image description here

答案 1 :(得分:1)

为避免交换图例标签的错误,请在ggsurvplot函数中使用以下选项:legend.labs = levels(df$gender)

答案 2 :(得分:0)

您只需更改strata的属性

attr(fit$strata,'names') <- c('female', 'male')

然后绘制剧情

p = ggsurvplot(fit, surv.median.line = "none")