R语言统计与绘图:绘制不同坐标轴置信区间的森林图
前面我们学习了使用forestplot包绘制简单森林图、多个置信区间的森林图绘制。
R语言统计与绘图:forestplot包绘制森林图
R语言统计与绘图:绘制多个置信区间的森林图
今天继续来学习下复杂点的森林图绘制,如下图所示,相同变量,不同置信区间,不同坐标轴。
今天来学习在R中怎么绘制上面这种森林图。
目 录
1. 安装和加载R包
2. 读取数据
3. 数据处理
3.1 定义亚组
3.2 转换数据格式
4. 绘制森林图
5. 使用PS合并森林图
5.1 用PS打开PDF
5.2 创建新文档
5.3 复制图形到新文档上
5.4 删除文字内容
5.5 调整图形位置
5.6 保存图形
6. 使用AI合并森林图
6.1 用AI打开PDF
6.2 移动图形到一张画板上
6.3 删除文字内容
6.4 调整图形位置
6.5 保存图形
1. 安装和加载R包
forestplot包是基于rmeta包的forestplot函数创建的,但是功能更强大,可以对同一标签添加多个置信区间。
install.packages("forestplot") #安装forestplot包
library(forestplot) # 加载包
2. 读取数据
以前面推文的数据为例,将数据录入到Excel中,录入数据格式如下图所示:
library(readxl) # 使用RStudio软件的导入数据功能
forest <- read_excel("forest.xlsx")
View(forest) # 预览数据
3. 数据处理
3.1 定义亚组
在论文图片中,为了区分以及显示的更清楚,亚组一般会向前缩进两个空格。
subgps <- c(3,4,7,8,11,12,15,16,19,20,23,24,25,26)
# 指定要缩进的亚组,此处向量中的数字表示亚组的行数
forest$Variable[subgps] <- paste(" ",forest$Variable[subgps])
# 亚组前添加两空格
View(forest) # 预览数据看看有没有添加空格
3.2 转换数据格式
attach(forest) # 绑定数据框
labeltext <- as.matrix(forest[,1])
# 将forest数据框的第1列转换为矩阵
# 以矩阵形式将文本数据导入函数
4. 绘制森林图
今天要绘制的森林图为相同变量,不同置信区间,每个置信区间的坐标轴还不一样。在forest包没找到一次性出图的办法,可以考虑先分别绘制每张森林图,导出PDF后再在AI或PS软件中进行合并。
根据示例数据所示,我们要先分别绘制三张森林图,导出PDF格式图形。
# 设置导出图形为PDF格式,命名为forestplot1。
pdf("forestplot1.pdf", width = 8, height = 6.0)
# 绘制图形
forestplot(labeltext, # 图形文本部分
mean = HR, # 图形 HR 部分
lower = Lower, # 95%CI下限
upper = Upper, # 95%CI上限
zero = 1.0, # 设置无效线的横坐标
xlab = "<favor usual care- -favor alert>", # 设置x轴标题
xticks = c(0.5,1.0,1.5,2.0,2.5), # 设置x轴刻度ticks
boxsize = 0.3, # 设置Box的大小,保持大小一样
graphwidth = unit(0.25, "npc"),
ci.vertices = TRUE, # 森林图置信区间两端添加小竖线,默认FALSE
ci.vertices.height = 0.2, # 设置森林图置信区间两端小竖线的高度,默认0.1
align = "l", # 文字对齐方式,"l"、"r"和"c"分别为左对齐,右对齐和居中对齐
txt_gp = fpTxtGp(label = gpar(cex = 1.0), # 设置文本字体大小
ticks = gpar(cex = 1.0), # 设置坐标轴刻度大小
xlab = gpar(cex = 1.0))) # 设置坐标轴标题大小
dev.off()
如上图所示,我们根据代码已经绘制了第一张森林图,后面两张森林图也根据上述代码绘制,不过需要修改部分参数。修改参数如下:
# 第二张森林图
pdf("forestplot2.pdf", width = 8, height = 6.0)
mean = HR1
lower = Lower1
upper = Upper1
# 第三张森林图
pdf("forestplot3.pdf", width = 8, height = 6.0)
mean = HR2
lower = Lower2
upper = Upper2
# 其他参数根据需要酌情修改。
<<< 左右滑动见更多 >>>
5. 使用PS合并森林图
5.1 用PS打开PDF
将3张PDF格式图形分别用PS打开,在打开时选择分辨率,一般设置为600分辨率。
5.2 创建新文档
在创建新文档之前查看每一张PDF森林图的宽度和高度。点击PS软件菜单栏的图象
-图象大小
查看。
森林图的宽度为12.65厘米,高度为14.24厘米,我们要横着合并图形,3张图则37厘米多。
5.3 复制图形到新文档上
创建好新文档后,界面分别移动到三张图上,使用快捷键Ctrl+A
全选,Ctrl+C
复制,在新文档上使用Ctrl+V
粘贴图形。
如上所示,将三张图形移动到了新文档中,通过移动工具
调整图形的摆放顺序。
5.4 删除文字内容
选中不同的图层,使用矩形选框工具
,分别选中第2张、第3张森林图的文字部分,使用delete
键删除文字内容。
5.5 调整图形位置
删除文字内容后,分别选中第2张、第3张森林图,配合shift
键调整两张图形的位置。
5.6 保存图形
如上图所示,图形合并好了,先通过裁剪工具
裁剪不必要的部分,还可以通过图象
-图象大小
调整输出图象的大小。
通过文件
-存储为
-选择TIFF格式
保存图形。
选择图象压缩类型为LZW
,图层压缩选择扔掉图层并存储拷贝
,点击确定
输出图形。
6. 使用AI合并森林图
6.1 用AI打开PDF
将3张PDF格式图形分别用AI打开,如下图所示:
6.2 移动图形到一张画板上
在第1张图形上,用鼠标选中所有的图形元素,使用快捷键Ctrl+G
将所有图形元素编组。第2张、第3张图形同样操作。
使用快捷键ctrl+C
复制第二张、第三张图,ctrl+V
粘贴这两张图形到第1张图形上。
6.3 删除文字内容
使用画板工具
调整画板大小,使用Ctrl+Shift+G
快捷键取消第2张、第3张的图形编组,然后鼠标选中第2张、第3张图形的文字部分,然后使用Delete
删除掉。
6.4 调整图形位置
删除掉文字部分后,使用鼠标分别选中第二张、第三张的图形部分,然后使用快捷键Ctrl+G
将图形部分编组,调整移动这两张图形的位置。
6.5 保存图形
如上图所示,使用画板工具
调整画板的大小。
调整好大小以后,通过文件
-存储为
-选择EPS格式
保存为EPS格式图形。
还可以选择文件
-导出
-导出为-选择TIFF格式
保存为TIFF格式,在导出时可以选择图形的分辨率。
至此,使用PS和AI合并森林图已经完成了。
相关文章