R语言:叠中叠,一行代码实现带有风险表的生存曲线插入子图

今天推荐一个不错的绘制生存曲线的R包——ggsurvfit包,这个包最大的优点就是基于ggplot2语法来绘制生存曲线,相比survminer包的ggsurvplot()函数,ggsurvfit包的可定制化程度更高,而且绘制起来更加简单,强力推荐

特别是组合不同的生存曲线图形,极其方便。

昨天我们学习了下怎么在图形中插入子图,今天来学习个稍微复杂点的,怎么将带有风险表的生存曲线插入到主图中。

也就是实现下面这个图形。

84cd3c2907cdf7979b368f1de169e356.png

下面来学习下。

1. 加载数据

使用survival包的lung数据集,数据集包括了NCCTG晚期肺癌患者的生存率。

运行以下代码加载数据:

library(survival)  # 加载包
head(lung)         # 预览数据
4214c2dbd3f0330abb6672186c7791d7.png

2. 拟合曲线

使用survfit2()函数来拟合曲线。

library(ggsurvfit)
fit <- survfit2(Surv(time, status) ~ sex, data = lung)
fit # 可输出部分信息
b4f23ac23134a3f340337f675aab6265.png

3. 简单生存曲线

将拟合模型转化为整洁数据框,然后提取其中的数据使用ggplot2包进行绘图。

ggsurvfit包将绘图代码打包成了一个函数——ggsurvfit()函数,使用ggsurvfit()函数可以轻松绘制生存曲线。

fit %>%
  ggsurvfit()
b0bcba634badd93f9019a6860f825ccf.png

4. 生存曲线排版

可以在主图上面添加带有风险表的子图。

p1 <- survfit(Surv(time, status) ~ sex, data = lung) %>% 
  ggsurvfit(linewidth = 0.8) +
  add_risktable(risktable_stats = "n.risk") +
  theme_classic(base_size = 14) +
  theme(legend.position=c(0.2,0.2)) +
  ggsci::scale_fill_nejm()

p2 <- survfit(Surv(time, status) ~ sex, data = lung) %>% 
  ggsurvfit(linewidth = 0.8, type = "cumhaz") +
  add_risktable(risktable_stats = "n.risk",
                risktable_height = 0.20) +
  theme_classic(base_size = 10) +
  theme(legend.position='none') +
  ggsci::scale_fill_nejm()

绘制很简单,一行代码即可搞定。

library(patchwork)
wrap_plots(ggsurvfit_build(p1)) +
  inset_element(ggsurvfit_build(p2), 
                left = 0.50, bottom = 0.55, right = 1.0, top = 1.0)
f081b0391bcb78201360eb4f7591b9c1.png

如上所示,即绘制好了我们需要的图形。

这个R包是完全基于ggplot2语法来绘制生存曲线的,只要熟练掌握ggplot2语法,可定制化生存曲线各个不同的图形组成元件。

绘制生存曲线非常完美,最强的R包。

本公众提供各种科研服务了!

一、课程培训

2022年以来,我们召集了一批富有经验的高校专业队伍,着手举行短期统计课程培训班,包括R语言、meta分析、临床预测模型、真实世界临床研究、问卷与量表分析、医学统计与SPSS、临床试验数据分析、重复测量资料分析、nhanes、孟德尔随机化等10余门课。如果您有需求,不妨点击查看:

发表文章后退款!2023年郑老师团队多门科研统计直播课程,欢迎报名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值