从 ggsurvplot 中的图例中删除变量名称
Remove variable name from legend in ggsurvplot
有没有一种简洁的方法可以去掉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")
我想要的是从图例中删除 'gender' 一词,如下图所示。我可以通过手动设置图例标签来实现:
p = ggsurvplot(fit, data = df, surv.median.line = "none", legend.labs = c("male", "female"))
但是有没有更好的方法呢?
编辑:我手动分配性别(2.情节)时不小心交换了男性和女性,可见这种方法有多么危险。
用 gsub
破解 strata
。
names(fit$strata) <- gsub("gender=", "", names(fit$strata))
ggsurvplot(fit, data=df, surv.median.line="none")
你可以简单地改变strata
的属性
attr(fit$strata,'names') <- c('female', 'male')
然后制作剧情
p = ggsurvplot(fit, surv.median.line = "none")
为避免交换图例标签的错误,请在 ggsurvplot 函数中使用此选项:legend.labs = levels(df$gender)
有没有一种简洁的方法可以去掉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")
我想要的是从图例中删除 'gender' 一词,如下图所示。我可以通过手动设置图例标签来实现:
p = ggsurvplot(fit, data = df, surv.median.line = "none", legend.labs = c("male", "female"))
但是有没有更好的方法呢?
编辑:我手动分配性别(2.情节)时不小心交换了男性和女性,可见这种方法有多么危险。
用 gsub
破解 strata
。
names(fit$strata) <- gsub("gender=", "", names(fit$strata))
ggsurvplot(fit, data=df, surv.median.line="none")
你可以简单地改变strata
attr(fit$strata,'names') <- c('female', 'male')
然后制作剧情
p = ggsurvplot(fit, surv.median.line = "none")
为避免交换图例标签的错误,请在 ggsurvplot 函数中使用此选项:legend.labs = levels(df$gender)