今天在文献上看到这样一张图片。
图上的大图和小图是同一张图片,都是生存曲线,只不过小图的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里面的图形元素都是可调整的,需要添加什么元素或者去掉哪些元素都可以自行调整,具体操作看各自图形要求。