更改 facet_wrap 生存曲线的图表标题
Changing facet_wrap Graph Titles for Survival Curves
我目前需要为一篇研究论文格式化 5 条生存曲线。我的生存函数的代码如下。
all<-survfit(Surv(MD,Censor)~DepTyp,data=add,conf.type='log-log')
根据上面的代码,我生成了 5 条生存曲线,我想使用 ggplot 的 facet_wrap 来构造它们。我的代码ggplot代码是:
sg<-summary(all)
ggplot()+geom_line(all,mapping=aes(x=time,y=surv))+facet_wrap(sg$strata,ncol=2)
其中 sg 是每条生存曲线的摘要。我的问题是试图改变多面生存曲线的标题。目前,每条曲线的标题都像 "Title=A"。我想将每个标题更改为正式名称,即"Female"。我使用了贴标机功能,但运气不佳,我假设它是因为分层的方式。我可以使用 ggsurvplot 函数,但我喜欢 facet 的外观,我只需要更改标题即可。无论如何我可以做到这一点还是我需要使用不同的绘图包?
一种方法是使用 labeller
修改分面标签文本。另一种方法是修改数据以更改 strata
变量的标签。
由于我没有您的生存数据,因此我使用来自 chest
的 diab_df
数据作为示例:
library(survival)
library(ggplot2)
library(chest) # example data diab_df
# Fit model
all <- survfit(Surv(t0, t1,Endpoint) ~ Sex,
data =diab_df,conf.type='log-log')
all <- broom::tidy(all)
# Original plot
ggplot(data = all, aes(x = time, y = estimate))+
geom_line()+
facet_wrap(.~strata)
# Solution 1:
stratalabs <- c("Male", "Female")
names(stratalabs) <- c("Sex=1", "Sex=2")
ggplot(data = all, aes(x = time, y = estimate))+
geom_line()+
facet_wrap( .~ strata, labeller = labeller(strata = stratalabs))
# Solution 2:
all$strata = factor(all$strata, levels = c("Sex=1", "Sex=2"),
labels = c("Male", "Female"))
ggplot(data = all, aes(x = time, y = estimate))+
geom_line() +
facet_wrap( .~ strata)
由 reprex package (v0.3.0)
于 2020-01-01 创建
我目前需要为一篇研究论文格式化 5 条生存曲线。我的生存函数的代码如下。
all<-survfit(Surv(MD,Censor)~DepTyp,data=add,conf.type='log-log')
根据上面的代码,我生成了 5 条生存曲线,我想使用 ggplot 的 facet_wrap 来构造它们。我的代码ggplot代码是:
sg<-summary(all)
ggplot()+geom_line(all,mapping=aes(x=time,y=surv))+facet_wrap(sg$strata,ncol=2)
其中 sg 是每条生存曲线的摘要。我的问题是试图改变多面生存曲线的标题。目前,每条曲线的标题都像 "Title=A"。我想将每个标题更改为正式名称,即"Female"。我使用了贴标机功能,但运气不佳,我假设它是因为分层的方式。我可以使用 ggsurvplot 函数,但我喜欢 facet 的外观,我只需要更改标题即可。无论如何我可以做到这一点还是我需要使用不同的绘图包?
一种方法是使用 labeller
修改分面标签文本。另一种方法是修改数据以更改 strata
变量的标签。
由于我没有您的生存数据,因此我使用来自 chest
的 diab_df
数据作为示例:
library(survival)
library(ggplot2)
library(chest) # example data diab_df
# Fit model
all <- survfit(Surv(t0, t1,Endpoint) ~ Sex,
data =diab_df,conf.type='log-log')
all <- broom::tidy(all)
# Original plot
ggplot(data = all, aes(x = time, y = estimate))+
geom_line()+
facet_wrap(.~strata)
# Solution 1:
stratalabs <- c("Male", "Female")
names(stratalabs) <- c("Sex=1", "Sex=2")
ggplot(data = all, aes(x = time, y = estimate))+
geom_line()+
facet_wrap( .~ strata, labeller = labeller(strata = stratalabs))
# Solution 2:
all$strata = factor(all$strata, levels = c("Sex=1", "Sex=2"),
labels = c("Male", "Female"))
ggplot(data = all, aes(x = time, y = estimate))+
geom_line() +
facet_wrap( .~ strata)
由 reprex package (v0.3.0)
于 2020-01-01 创建