本文只涉及到生存曲线绘制,不涉及生存分析理论问题
本文采用两种方法绘制生存曲线,其实是用plot()和ggsurvplot()两种函数绘图而已
1. plot()函数绘制生存曲线
基本流程
Surv(): 用于创建生存数据对象 (主要输入生存时间和状态逻辑值)
survfit():对生存数据对象拟合生存函数,创建KM(Kaplan-Meier)生存曲线
survdiff(): 对不同组的生存率进行检验 (案例中我们是对比的是不同性别)
补充说明:
survdiff(formula, data, subset, na.action, rho=0, timefix=TRUE)
#With rho = 0 this is the log-rank or Mantel-Haenszel test,
#with rho = 1 it is equivalent to the Peto & Peto modification of the Gehan-Wilcoxon test.
plot():绘图
绘制过程如下
为了方便对应数据阅读理解,给出数据前几行(数据详细说明R中自行查看)
library(survival)
Lung
head(Lung)
image.png
plot函数绘图:
#Kaplan-Meier曲线
#基本流程:Surv()、survfit()、survdiff()
#绘图用plot()
Lungsurv
Lungfit
survdiff(Lungsurv~Lung$sex, rho=0)
#绘图及美化
plot(Lungfit, conf.int = "none",
col = c('#22cc99', '#772222'), lwd = 2, mark.time=T,
xlab='Time', ylab='Survival Probability')
#下面几行代码大家在R中运行一下便知道每步代码做了什么
abline(h=0.5, lty=3)
abline(v=270, lty=3)
abline(v=426, lty=3)
legend('bottomleft', c('Male','Female'),
col=c('#22cc99', '#772222'), lwd=2)
text(900, 0.9, 'p=0.001') #这里的p值是上述survdiff()函数给出
图像效果如下:
Rplot02.png
2. ggsurvplot()函数绘制生存曲线
ggsurvplot()函数属于survminer包
这里不再进行赘述,大家可以根据需求自行修改参数,绘制代码如下
library(survival)
library(survminer)
vars
Lungsurv
Lungfit
#绘图及美化,大家可以根据自己的需求调节对应参数,详见R说明
ggsurvplot(Lungfit,
data = Lung,
pval = TRUE, #加上log-rank test检验的p-value值
#conf.int = TRUE, #加上置信区间
surv.median.line = "hv",
xlab="Time (day)",
legend.title=paste(vars[5], collapse = "+"),
risk.table = TRUE,
trim.strata.names=TRUE,
risk.table.height=0.4,
palette = "Dark2",
#palette = c('#E7B800','#2E9FDF'), #别的配色
ggtheme = theme_bw(),
#ncensor.plot=TRUE #绘制数据删失情况
)
图形效果如下
Rplot.png
为图像加上置信区间,图像效果如下
Rplot05.png
小结:以上就是我给大家分享的生存曲线的绘制,大家可以根据喜好进行选择。敬请大家批评指正