来,挑一款你喜欢的森林图(超实用)
马上要论文答辩了,要做答辩PPT,发现三线表太长,不能用一页PPT完全展示,怎么办?调整行间距,字体变小,两页显示,这都可以。但我都不选择,我选择用森林图,一页全展示。目前,大家也都习惯用森林图来展示回归分析的结果了,R package:forestplot很强大,大家做出来的图也是各式各样,各具特色。今天向大家分享一下我近来做的几张森林图。
首先,我是把回归分析的结果输入在了SPSS里,保存为sav格式数据,并使用read.spss导入R。这个做法是借鉴了医咖会里的教程,虽然看起来有点麻烦,但是很好用。sav格式的数据输入样式如下:

下面开说正题,我先中规中矩地做了一张森林图,对单因素线性回归分析的结果进行了展示(β、95%CI、P Value),如下图:

上图看着还凑合,但我想把表头和各变量名称都突出显示。接下来,我就用is.summary( )将对应的行加粗了一下,如下图:

看着这个图,我又觉得表头和表格内容有点分不开,怎么办?那就在表头下加条横线吧(hrzl_lines),顺带给变量加个阴影,然后换一个区间线的样式(lty.ci)。

细心的朋友应该看出来了,最后一个阴影不是很好。阴影对偶数分组的变量比较好用,可以将阴影中线位置设置在中间,奇数的就有点不太合适了。这个地方不知道大家有没有什么好的解决方法呢?
上面都是单因素分析的结果,我还有多因素回归分析的结果,能不能与单因素合并在一张森林图里显示呢?找了一下R的help文件,答案是能的。先用with( )和cbind( )把单因素和多因素的结果数据合并一下,再按照原来的方式去做森林图。这里需要注意,要设置2个区间线和箱子的颜色。

线性回归分析的森林图做完了,我还有一个二元logistic回归结果,捎带手一起做了吧。但是我又有点舍不得三线表,怎么办?用hrzl_lines( )和gpar( )试试看吧。

看起来还可以,我心甚慰啊。细心的朋友可能又发现了,有两个线的右边是箭头。没错,这里做了个处理。由于有一个变量的RR值过大,会导致其他区间线压缩的太短,我就用clip( )设置了一下范围。
好了,以上就是我近来做的几张森林图,不知道有没有大家喜欢的款。有的话,就挑一个,操练起来吧。在这里呼吁一下,大家也可以分享一下自己做的森林图,一起将可视化进行到底。最后,留下一个问题,下面这种森林图可有站友知道如何做的呢?一起来分享吧!

参考链接:
1. https://www.mediecogroup.com/method_topic_article_detail/369/?ty=methods
2. https://www.plob.org/article/22371.html
3. https://cran.r-project.org/web/packages/forestplot/vignettes/forestplot.html
最后编辑于 2022-03-14 · 浏览 7144