如何使用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等多种作图工具,小伙伴们可以依据自己的爱好自行选择哦。
图片新闻
最新活动更多
-
即日-1.14火热报名中>> OFweek2025中国智造CIO在线峰会
-
7月30-31日报名参会>>> 全数会2025中国激光产业高质量发展峰会
-
精彩回顾立即查看>> 【上海线下】设计,易如反掌—Creo 11发布巡展
-
精彩回顾立即查看>> 【线下论坛】华邦电子与莱迪思联合技术论坛
-
精彩回顾立即查看>> 【线下论坛】华邦电子与恩智浦联合技术论坛
-
精彩回顾立即查看>> 2024(第五届)全球数字经济产业大会暨展览会
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论