手把手教你绘制NEJM级生存曲线

2020-11-13 10:08:58 浏览数 (1)

今天在文献上看到这样一张图片。

图上的大图和小图是同一张图片,都是生存曲线,只不过小图的y轴起始点不一样

今天来绘制这张图片或者说怎么把小图添加到大图里。

1. 安装和加载R包

首先绘制生存曲线需要survival和survminer包。

代码语言:javascript复制
install.packages("survival")  # 安装包
install.packages("survminer") # 安装包
library(survival) # 加载包
library(survminer) # 加载包

2. 绘制简单生存曲线

使用colon数据集进行演示。

代码语言:javascript复制
data(colon) # 加载内置数据集
fit <- survfit(Surv(time,status) ~ sex,  
               data = colon) # 拟合生存曲线

ggsurvplot(fit, data = colon) # 绘制大图

再画个y轴起始点不一样的,通过调整ylim参数来限制y轴起点。

代码语言:javascript复制
ggsurvplot(fit, data = colon,
           ylim = c(0.4, 1)) # 绘制小图

这里绘制的生存曲线是比较简单的,更详细的生存曲线教程请参见R语言统计与绘图:ggsurvplot()函数绘制Kaplan-Meier生存曲线这篇推文。

如上所示,生存曲线的大图和小图我都绘制出来了,然后可以导出图片,通过PS或AI或PPT将这两张图片进行合并。

下面演示怎么使用PPT合并,PS和AI就不演示了。

先导出PPT格式图片,导出PPT格式需要用到eoffice包。

代码语言:javascript复制
install.packages("eoffice") # 安装包
library(eoffice) # 加载包

# 导出大图
ggsurvplot(fit, data = colon) # 绘制图形
topptx(filename = "C:/Rdata/datu.pptx", 
       width = 8 height = 7  # 设置宽度和高度

小图可以设置导出的宽度和高度稍小点。

代码语言:javascript复制
# 导出小图
ggsurvplot(fit, data = colon, ylim = c(0.4, 1))
topptx(filename = "C:/Rdata/xiaotu.pptx", 
       width = 4 height = 3  # 设置宽度和高度

经过上面操作后,可以导出两个PPT文件,打开两个PPT文件,将小图复制到大图PPT里面。

上图小图复制过去后小图背景是白色的,会遮盖后面的大图,这时可以设置为无填充色,操作见下图。

PPT里面的图形元素都是可调整的,需要添加什么元素或者去掉哪些元素都可以自行调整,具体操作看各自图形要求。

ps

0 人点赞