为了训练ggplot以及提高我写R函数的能力,我决定构建一系列生成生存曲线的函数,并添加各种额外功能。我已经成功地构建了一个基本生存曲线的函数,现在正在添加其他功能。其中一个我想做的是,在生存曲线之上叠加在给定时间点处处于危险中的人数的面积图。我希望它看起来像ggplot的
以下代码生成了我想要堆叠在一起的两个(简化的)图。我尝试使用
facet_grid
选项一样,但我没有用这个函数成功实现。我不想把两个图绑定在一起,就像我们可以用grid.arrange
做的那样,而是希望它们有相同的x轴。以下代码生成了我想要堆叠在一起的两个(简化的)图。我尝试使用
facet_grid
来实现,但我认为解决方案不在这里。library(survival)
library(ggplot2)
data(lung)
s <- survfit(Surv(time, status) ~ 1, data = lung)
dat <- data.frame(time = c(0, s$time),
surv = c(1, s$surv),
nr = c(s$n, s$n.risk))
pl1 <- ggplot(dat, aes(time, surv)) + geom_step()
pl2 <- ggplot(dat, aes(time, nr)) + geom_area()
dat.long[dat.long$variable=="surv", ]
将产生与subset(dat.long,variable=="surv")
相同的结果。两种方法都没有特别优越的地方,但了解这些选项是很好的。 - Dinre