今天画森林图我之前明明学会了来着,但是一年没用现在又忘记了,人老了,唉!还是写个笔记好。这里以一篇文献里面的森林图为例(PMID: 34285580)。
1. 首先准备以上文献图的单因素或者多因素Cox回归相关数据的表格(表格名称为example forest.csv),如下图
2. 加载需要的R包并将以上csv文件读入R中,读入R语言后的表格如下所示:
library(forestplot)
exp<- read.csv("example forest.csv",header = F)
3. 对以上结果进行森林图的可视化,代码及输出结果如下,差不多吧。
forestplot(labeltext=as.matrix(exp[,1:3]), #直接显示在图中的文本设置
mean=exp$V4, #森林图中中间点的位置数据设置
lower=exp$V5, #森林图的最小值设置
upper=exp$V6, #森林图的最大值设置
is.summary=c(T,F,F,F,F,F,F,F,F), #设置重点突出显示的文本(标题等)
hrzl_lines=list("2"=gpar(col="black",lwd="2"), "10"=gpar(col="black",lwd="2")), #在森林图中添加线条并设置线条的颜色,粗细
xlab="Hazard Ratio", #设置森林图底部的标签名称
zero=1, #设置森林图中的标准线,可设置多条
lwd.zero=2,#设置标准线的粗细
clip = c(0.8, 3), #设置森林图的误差线范围,超出部分显示为箭头
xticks = c(1,1.5,2,2.5,3),#设置森林图的下标刻度
txt_gp = fpTxtGp(label = gpar(fontfamily = "serif"),ticks = gpar(cex = 1), xlab = gpar(cex = 1), cex = 1),#设置文本的字体,字体大小
boxsize = 0.3, #设置平均数点的大小
graph.pos = 4, #设置森林图的位置,第四列
fn.ci_norm = fpDrawDiamondCI, #设置平均数点的类型,有标准、圆等可选
col=fpColors(line = "black", box="coral1",zero = "cadetblue",), #设置线,点的颜色
lty.ci = 7, #设置误差线的类型
lwd.ci = 2, #设置误差线的粗细
colgap=unit(0.05,"npc"), #设置列之间的距离
graphwidth=unit(0.2,"npc")) 设置森林图在整个图中的大小
补充一个今天学习到的小tips:
使用windowsFonts()查看R语言系统自有的三种字体:serif代表Times New Roman字体,sans代表Arial字体,mono代表Courier New字体。
使用函数:family=“serif”,font=2。