如何使用Survminer包优雅的绘制生存曲线?

科研菌
关注

#风险表也需要分割

#每一个facet plot item对应一个风险表,水平垂直都分割ggsurv$table + facet_grid(rx ~ adhere, scales = "free")+  theme(legend.position = "none")

#或者,每一个facet columns对应一个风险表,只分割垂直方向tbl_facet <- ggsurv$table + facet_grid(.~ adhere, scales = "free")tbl_facet + theme(legend.position = "none")

#最终合并分割后生存曲线和风险表,主要应用ggplot包的gridExtra函数

# 合并生存曲线和风险表g2 <- ggplotGrob(curv_facet)g3 <- ggplotGrob(tbl_facet)min_ncol <- min(ncol(g2), ncol(g3))#gridExtra::gtable_rbind表示合并表格g <-gridExtra::gtable_rbind(g2[, 1:min_ncol], g3[, 1:min_ncol], size="last")g$widths <- grid::unit.pmax(g2$widths, g3$widths)# 最终绘制于一张图上grid::grid.newpage()grid::grid.draw(g)

#因图片偏大,建议自行运行代码查看

3.主要函数arrange_ggsurvplots ()

3.1用法:

arrange_ggsurvplots(x, print = TRUE, title = NA, ncol = 2,     nrow = 1, surv.plot.height = NULL, risk.table.height = NULL,     ncensor.plot.height = NULL, ...)

3.2 参数详解:

参数用法xggsurvplots的列表print逻辑值。如果为TRUE,则显示排列的图title图片的标题。默认值为NAsurv.plot.height网格上生存点的高度,默认:0.75risk.table.height网格上风险表的高度,默认值为0.25,当risk.table=FALSE时忽略ncensor.plot.height删失点的高度,当 ncensor.plot = TRUE时使用3.3 示例:
# 从lung数据库和colon数据库中分别构建两个生存曲线fit1<- survfit(Surv(time, status) ~ sex, data = lung)fit2<- survfit(Surv(time, status) ~ adhere, data = colon)# 图1选择fit1,图2选择fit2,先分别画图splots <-list()splots[[1]] <- ggsurvplot(fit1, data = lung, risk.table = TRUE,                           ggtheme = theme_minimal())splots[[2]]<- ggsurvplot(fit2, data = colon, risk.table = TRUE,                           ggtheme = theme_grey())# 合并在同一张图中arrange_ggsurvplots(splots, print = TRUE,                    ncol = 2, nrow = 1, risk.table.height = 0.4)

# 也可以不输出,直接保存pdf格式在指定文件夹res <- arrange_ggsurvplots(splots, print = FALSE)ggsave("myfile.pdf", res)

4.主要函数ggcoxzph()

4.1 用法:

ggcoxzph(fit, resid = TRUE, se = TRUE, df = 4, nsmo = 40, var,       point.col = "red", point.size = 1, point.shape = 19,       point.alpha = 1, caption = NULL, ggtheme = theme_survminer(), ...)

4.2 参数:

参数作用fitcox.zph类对象resid逻辑值,如果为TRUE,则残差和拟合度包括在绘图中se如果逻辑值为TRUE,则将在两个标准误差处添加置信区间df拟合曲线的自由度,df=2,表示线性拟合nsmo用来画拟合的样条平滑曲线点的数目4.3 示例:
#依旧使用 lung数据# 行cox回归和ph检验fit <- coxph(Surv(time, status) ~ sex + age, data = lung)ftest <- cox.zph(fit)# 查看cox回归整体模型ftest

#画所有变量ggcoxzph(ftest)

# 用指定变量顺序和变量画图,font.main标题的字体样式ggcoxzph(ftest, var = c("age", "sex"), font.main = 10)

#Cox模型Ph检验图看法:(以上图结果为例)

cox回归模型cox.zph.fit,模型的整体检验P值(GLOBAL)是0.194,大于0.05,说明模型整体满足PH检验。从上图可以看出,二个变量的P值均大于0.05,说明每个变量均满足PH检验。上图中实线是拟合的样条平滑曲线(黑色实线),虚线表示拟合曲线上下2个单位的标准差(黑色虚线)。如果残差曲线(红色的点)偏离2个单位的标准差则表示不满足比例风险假定。从上图中可见,各协变量满足PH风险假设。?正常情况下,以上Schoenfeld残差(图中红色的点)应该与时间无关,如果残差与时间有相关趋势,则违反PH假设的证据。残差图上,横轴代表时间,如果残差均匀的分布,则表示残差与时间相互独立。

5.小结

   当然,实现生存分析可视化的方法还有很多,比如:SPSS、Graphpad Prism等多种作图工具,小伙伴们可以依据自己的爱好自行选择哦。

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存