【问题标题】:Changing facet_wrap Graph Titles for Survival Curves更改生存曲线的 facet_wrap 图形标题
【发布时间】:2020-04-20 05:31:06
【问题描述】:

我目前需要为研究论文格式化 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”。我想将每个标题更改为正式名称,即“女性”。我使用了贴标机功能,但没有运气,我假设它是因为地层被分解的方式。我可以使用 ggsurvplot 函数,但我喜欢刻面的外观,我只需要更改标题。无论如何我可以做到这一点还是我需要使用不同的图形包?

【问题讨论】:

  • 你能不能把add的结构贴出来,把dput(add)的结果贴出来,不然dput(head(add))太大了

标签: r ggplot2 survival-analysis facet-wrap


【解决方案1】:

一种方法是使用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 创建

【讨论】:

  • 这很完美,两种解决方案都可以完美运行,非常感谢。
猜你喜欢
  • 2014-10-14
  • 2016-02-05
  • 2014-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
相关资源
最近更新 更多