R语言 将多条生存曲线画到一起(不是拼图) ,一张图绘制多条生存曲线

网上找破了头都没找到这个办法,只找到一堆拼图的办法

其实方法很简单,survival包自带这个函数:ggsurvplot_combine()

library(survival)
library(survminer)

#首先新建一个列表,包含你想要拼合的生存对象,记住一定要命名fit1、fit2等,如下所示
fitlist<-list(fit1 = survfit(Surv(survivaltime,outcome)~variable1, data = yourdata),
              fit2 = survfit(Surv(survivaltime,outcome)~variable2, data = yourdata)
              )
#然后用ggsurvplot_combine()函数就能把以上list中的生存曲线画到一张图里了
ggsurvplot_combine(fitlist,data = sfdata_pre19)

来看一下实际应用效果:先生成两张单独的生存曲线

library(tidyverse)
library(survival)
library(survminer)
data(lung) # 加载lung数据集
View(lung) # 查看数据集

# 总体生存曲线
fit1 <- survfit(Surv(time,status) ~ 1, data= lung)
ggsurvplot(fit1, data = lung)

# 性别分组的生存曲线
fit2 <- survfit(Surv(time,status) ~ sex, data= lung)
ggsurvplot(fit2, data = lung)

总体生存曲线
性别分组的生存曲线
看一下拼合之后的效果

# 将两个生存对象放入一个list中
fitlist <- list(fit1, fit2)

# 用ggsurvplot_combine画到一张图中
ggsurvplot_combine(fitlist, data = lung)

合并的生存曲线
增加一些修饰让图片更美观(这部分和ggsurvplot是一样的):

# 增加一些修饰条件使图片美观
ggsurvplot_combine(fitlist, data = lung,
                   legend = c(0.75,0.75), # 图例位置
                   legend.title = "", # 图例标题
                   legend.labs = c("总体","男性","女性"), # 图例标签,注意顺序不要标错
                   axes.offset = FALSE, #坐标轴刻度从原点开始
                   xlab="生存时间 (月)",
                   ylab="累积生存率 (%)"
)

在这里插入图片描述

  • 9
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值