R语言 | forestplot包绘制森林图

原文:R语言 | forestplot包绘制森林图
在Meta分析中森林图比较常见,但其实掌握了用R语言中的forestplot包绘制森林图的各个用法,森林图可以用于表示其他数据类型各组间的指标的中值和四分位距的范围。它是在平面直角坐标系中,以一条垂直的无效线(横坐标刻度为1或0)为中心,平行于横轴的多条线段描述了每个组的指标的中值和可信区间,最后一行(Summary)则用棱形(或其它图形)描述了多个组别合并的效应量及可信区间。


首先安装forestplot 包:


install.packages("forestplot")

主函数 forestplot :


用法:

forestplot(labeltext, mean, lower, upper, align,

参数:这里只列出了大部分参数,还有一些比较不常用的可以自行探索

| labeltext | 主要是以矩阵或者list形式将数据导入函数,最好以矩阵,因为数据一般都是矩阵的。 |
| mean | 误差条的均值 |
| lower | 误差条 95%置信区间下限 |
| upper | 误差条 95%置信区间上限 |
| align | 每列文字的对齐方式,偶尔会用到。如:align=c("l","c","c")l:左对齐r:右对齐c:居中对齐 |
| is.summary | 主要的功能是让表格的每一行字体出现差异,从而区分表头。其值主要用TRUE/FALSE进行差异化分配。 |
| graph.pos | 定位森林图所在的位置。通过数字来确定为第几列。 |
| hrzl_lines | 以list形式设置表中线条的类型、影响范围。Eg:“3”=gpar(lwd=1,columns=1:4,col=’red’)意思就是第3行的线条,宽度为1,线段延伸至第四列。Col指的颜色。 |
| clip | x轴的最大最小范围 |
| xlab | x轴的标题 |
| zero | 森林图中基准线的位置(无效线的横坐标) |
| graphwidth | 森林图在表中的宽度如:graphwidth = unit(.4,"npc") |
| colgap |

列与列之间的间隙宽度,默认是 6 mm,需要用 unit 的形式

|
| lineheight | 行的高度,可以是数字,也可以是 unit 的形式 |
| line.margin | 行与行之间的间隙的宽度 |
| col | 森林图横线以及点的颜色。box:box(点估计值)的颜色line:穿过方块的横线的颜色zero:中间那条基准线的颜色summary:summary中菱形的颜色hrz_lines:表中第一条横线的颜色eg:col=fpcolors(box=’royblue’,line=’darkblue’, summary=’royblue’, hrz_lines=’red’) |
| txt_gp | 设置表格中文本的格式:用gpar进行赋值,其中cex为文本字体大小,ticks为坐标轴大小,xlab为坐标轴文字字体大小。label:表格主体文字的格式ticks:森林图下方的坐标轴的刻度文字格式xlab:定义的x轴标题格式title:标题文字的格式eg:txt_gp=fpTxtGp(label=gpar(cex=1.25), ticks=gpar(cex=1.1), xlab=gpar(cex = 1.2), title=gpar(cex = 1.2)) |
| xticks | 横坐标刻度根据需要可随意设置,如:xticks = c(0.5, 1,1.5, 2) |
| lwd.xaxis | X轴线宽 |
| lwd.zero | 无效线的宽度 |
| lwd.ci | 置信区间线条的宽度(粗细) |
| lty.ci | 置信区间的线条类型 |
| ci.vertices | 森林图可信区间两端添加小竖线(TRUE) |
| ci.vertices.height | 设置森林图可信区间两端的小竖线高度,默认是10%行高 |
| boxsize | box(点估计值)的大小 |
| mar | 图形页边距,如:mar=unit(rep(1.25, times = 4), "cm") |
| title | 添加标题 |
| legend | 当同时显示多个置信区间时,需要添加图例 |
|

new_page

| 是否新页 |
| fn.ci_norm | box(点估计值)的形状,默认是方块。如:fn.ci_norm="fpDrawDiamondCI":box 类型选择钻石 |


示例代码①:先从构建的最简单的数据开始


构建示例数据

library(forestplot)
image
tabletext<-cbind(
image

以下使用 forestplot 函数画森林图,注意查看每个代码发生变化的参数以及对应图片中明显变化的地方。

forestplot(tabletext, graph.pos =4, 
image
forestplot(tabletext, graph.pos =4, 
image
forestplot(tabletext, graph.pos =4, 
image
forestplot(tabletext, graph.pos =4, 
image
forestplot(tabletext, graph.pos =4, 
image
forestplot(tabletext, graph.pos =4, 
image
forestplot(tabletext, graph.pos =4, 
image
forestplot(tabletext, graph.pos =4, 
image
# 添加标题
image
# 定义x轴
image
# 取消对头2行和最后1行字体的特殊设置
image

示例代码②:需要定义亚组的数据


准备数据

library(forestplot)

绘制森林图

简单森林图

# 构建tabletext,更改列名称,将 count 和 percent 合并
image
# 写出将要在图中展现出来的文本
image
##绘制森林图
image

接下来要对森林图进行优化:

## 定义亚组
image
png(filename = "Forestplot.png",width=960, height=640)
image

森林图怎么看:


(1)森林图中横短线与中线相交表示无统计学意义;

(2)95% CI上下限均>1,即在森林图中,其95% CI横线不与无效竖线相交,且该横线落在无效线右侧时,说明该指标大于竖线代表的结局;

(3)95% CI上下限均<1,即在森林图中,其95% CI横线不与无效竖线相交,且该横线落在无效线左侧时,说明该指标小于于竖线代表的结局。

(4)最后以菱形所在位置代表总体的评价结果。具体数据具体分析哈!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容

  • 2020-4-18 10:49签到。继续还是三道题。两道easy,一道medium;第二道easy:#### 7...
    三土垚6阅读 202评论 0 0
  • 关于陪伴,你会想到什么?是昨日美好的一段时光;或许是当下的时刻。在我们的成长过程中,会有很多人走进我们的世...
    溪山随笔阅读 236评论 0 1
  • 创建工程可以是java也可以是web 1、引入jar文件 2、设计表同时开发和表的字段名一致的javabean(持...
    蘋果_283e阅读 516评论 0 0
  • 一共7步,下面详细说明 1、链接数据库服务器 2、选择要链接的数据库 3、设置编码格式 4、编写sql语句 5、执...
    heson_ajax阅读 477评论 0 1
  • 初到深圳,是在五月之初,此时的深圳的早已被染绿,葱葱蓉蓉,却不是我喜欢的颜色,作为男人,我不喜欢绿色。 来...
    你家凯爷阅读 319评论 1 1