R语言forestplot包绘制森林图

这篇具有很好参考价值的文章主要介绍了R语言forestplot包绘制森林图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

森林图在论文中很常见,多用于表示多因素分析中的变量与结果变量的比值效应,可以用图示的方法比较直观的绘制出来。既往我们在文章《R语言快速绘制多因素回归分析森林图(1)》《R语言使用forestploter包绘制单组及双组森林图(2)(附有超详细备注)》已经介绍了怎么绘制森林图,今天继续介绍forestplot包绘制森林图,forestplot包的特点是简单易上手,不容易出错。
下面我们进入正题,先导入数据和R包

library(forestplot)
dt<-read.csv("E:/r/test/forest2.csv",sep=',',header=TRUE)

R语言forestplot包绘制森林图
这是一个森林图数据(公众号回复:森林图数据2,可以获得数据)这个数据,
前几个变量我解释一下Subgroup:分组,就是的组别和亚组,Treatment:治疗组例数,Placebo:使用安慰剂,也就是对照组的例数。Est:效应值,可以是OR或者HR,low:效应值的最低值,可以认为是可信区间的下限,hi:效应值的最高值,可以认为是可信区间的上限。
我们先来画一个最基础的森林图,后面的几个数据暂时不需要,我们先精简一下数据

dt <- dt[,1:6]
View(dt)

R语言forestplot包绘制森林图
假设我们想把1—3列数据进行绘制森林图,得到数据后不能直接绘图,要把数据预处理一下,变成需要的绘图的矩阵格式,这里介绍2种方法。
第一种方法:

tabletext1<- cbind(c("Subgroup","\n",dt$Subgroup), 
                   c("Treatment","\n",dt$Treatment), 
                   c("Placebo","\n",dt$Placebo),
                   c("est","\n",dt$est),
                   c("low","\n",dt$low),
                   c("hi","\n",dt$hi))

R语言forestplot包绘制森林图
这样就生成一个绘图的矩阵了,但这里要注意一下,第二行是空的,什么都没有,要把第二行删除掉,不然会报错。

tabletext1<-tabletext1[-2,]

R语言forestplot包绘制森林图
删除掉后表格紧凑了一点,就可以直接绘图了,这里要注意一下,mean,lower,upper要的是dt,也就是原数据。graph.pos就是图片位置,你想选第几行绘图就填几,我这里填最右边

forestplot(labeltext=tabletext1[,1:3],graph.pos="right", 
           mean=c(NA,dt$est),
           lower=c(NA,dt$low),
           upper=c(NA,dt$hi),
           graphwidth = unit(60,"mm"),#设置图片位置和宽度
           boxsize =0.2,line.margin = unit(5,"mm"),#对散点和线条进行设置
           lineheight = unit(5,"mm"),#设置图形行距
           col=fpColors(box = "grey0",lines = "grey0",summary = "grey0"),
           colgap = unit(1,"mm"),#图形列间距
           zero = 1,#参照值
           xticks = c(0,1,2))#X轴的定义标签

R语言forestplot包绘制森林图
这样一个简单美观的森林图就绘制好了,下面介绍第二种方法,直接选行数生成矩阵,我觉得这样简单一点

dt1<-as.matrix(dt[,1:3])

R语言forestplot包绘制森林图
但这个格式没有第一列,我们还要需要加一下

dt1 <- rbind(c(NA, "Treatment","Placebo"),dt1)

R语言forestplot包绘制森林图
加上去以后就可以绘图了,基本和第一种方法一样

forestplot(labeltext=dt1,graph.pos="right", 
           mean=c(NA,dt$est),
           lower=c(NA,dt$low),
           upper=c(NA,dt$hi),
           graphwidth = unit(60,"mm"),#设置图片位置和宽度
           boxsize =0.2,line.margin = unit(5,"mm"),#对散点和线条进行设置
           lineheight = unit(5,"mm"),#设置图形行距
           col=fpColors(box = "grey0",lines = "grey0",summary = "grey0"),
           colgap = unit(1,"mm"),#图形列间距
           zero = 1,#参照值
           xticks = c(0,1,2))#X轴的定义标签

R语言forestplot包绘制森林图
我们还可以对图片的一些细节进行修改,修改图片位置

forestplot(labeltext=dt1,graph.pos=2, 
           mean=c(NA,dt$est),
           lower=c(NA,dt$low),
           upper=c(NA,dt$hi),
           graphwidth = unit(60,"mm"),#设置图片位置和宽度
           boxsize =0.2,line.margin = unit(5,"mm"),#对散点和线条进行设置
           lineheight = unit(5,"mm"),#设置图形行距
           col=fpColors(box = "grey0",lines = "grey0",summary = "grey0"),
           colgap = unit(1,"mm"),#图形列间距
           zero = 1,#参照值
           xticks = c(0,1,2))#X轴的定义标签

R语言forestplot包绘制森林图
更改图片宽度

forestplot(labeltext=dt1,graph.pos=2, 
           mean=c(NA,dt$est),
           lower=c(NA,dt$low),
           upper=c(NA,dt$hi),
           graphwidth = unit(40,"mm"),#设置图片位置和宽度
           boxsize =0.2,line.margin = unit(5,"mm"),#对散点和线条进行设置
           lineheight = unit(5,"mm"),#设置图形行距
           col=fpColors(box = "grey0",lines = "grey0",summary = "grey0"),
           colgap = unit(1,"mm"),#图形列间距
           zero = 1,#参照值
           xticks = c(0,1,2))#X轴的定义标签

R语言forestplot包绘制森林图
更改线条和方块颜色

forestplot(labeltext=dt1,graph.pos=2, 
           mean=c(NA,dt$est),
           lower=c(NA,dt$low),
           upper=c(NA,dt$hi),
           graphwidth = unit(40,"mm"),#设置图片位置和宽度
           boxsize =0.2,line.margin = unit(5,"mm"),#对散点和线条进行设置
           lineheight = unit(5,"mm"),#设置图形行距
           col=fpColors(box = "blue",lines = "red",summary = "grey0"),
           colgap = unit(1,"mm"),#图形列间距
           zero = 1,#参照值
           xticks = c(0,1,2))#X轴的定义标签

R语言forestplot包绘制森林图
为X轴添加标签

forestplot(labeltext=dt1,graph.pos=2, 
           mean=c(NA,dt$est),
           lower=c(NA,dt$low),
           upper=c(NA,dt$hi),
           graphwidth = unit(40,"mm"),#设置图片位置和宽度
           boxsize =0.2,line.margin = unit(5,"mm"),#对散点和线条进行设置
           lineheight = unit(5,"mm"),#设置图形行距
           col=fpColors(box = "blue",lines = "red",summary = "grey0"),
           colgap = unit(1,"mm"),#图形列间距
           zero = 1,#参照值
           xlab="X轴的标签",
           xticks = c(-1,0,1))#X轴的定义

R语言forestplot包绘制森林图
还有许多调整,我这里就不弄了,大家自己摸索把。文章来源地址https://www.toymoban.com/news/detail-418303.html

到了这里,关于R语言forestplot包绘制森林图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • R语言实现随机生存森林(2)

         

    2024年02月13日
    浏览(31)
  • R语言机器学习篇——随机森林

    参考书籍:陈强.机器学习及R应用.北京:高等教育出版社,2020 随机森林属于集成学习的方法,也称为组台学习,本章介绍随机森林与它的特例方法,装袋法,并分别以例子的形式讨论回归问题与分类问题的随机森林方法。 对于回归问题,调用MASS包数据框Boston作为数据集,分析

    2024年02月05日
    浏览(47)
  • 随机森林算法实现--R语言:randomForest函数

    在随机森林方法中,创建了大量的决策树。每个观察结果都被送入每个决策树。 每个观察结果最常用作最终输出。对所有决策树进行新的观察,并对每个分类模型进行多数投票。 随机森林首先是一种并联的思想,同时创建多个树模型,它们之间是不会有任何影响的,使用相

    2024年02月07日
    浏览(44)
  • 《数据结构C语言版》——树、森林与二叉树的转换(超详图解)

    哈喽!这里是一只派大鑫,不是派大星。本着基础不牢,地动山摇的学习态度,从基础的C语言语法讲到算法再到更高级的语法及框架的学习。更好地让同样热爱编程(或是应付期末考试 狗头.jpg)的大家能够在学习阶段找到好的方法、路线,让天下没有难学的程序(只有秃头的程

    2024年02月10日
    浏览(39)
  • 【机器学习】R语言实现随机森林、支持向量机、决策树多方法二分类模型

    暑期简单学习了机器学习理论知识,当时跟着B站咕泡老师学的,内容讲得蛮详细,实例代码、资料都比较全面,但是学校Python课程开设在这学期,所以用Python进行数据分析、建模等不是很熟悉,所以决定用之前学过的R语言来实现机器学习。R语言的相关包也都比较完善,所以

    2024年02月04日
    浏览(44)
  • 2023软件设计师中级备考经验分享(文中有资料链接分享)

    先摊结论吧,软考中级设计师备考只是备考半个月(期间还摆烂了几天),然而成绩如下:  我自己都没想到会这么好的成绩。。。 上午题:推荐把软考通APP里的历年真题刷3-4遍,直接刷真题,然后背解析就行,没必要分章节练习。每次考试的真题会有几个往年的题,其他题

    2024年02月15日
    浏览(43)
  • 除了Visual Studio,Rider也能开发.NET(文中有料)

    前言 小编在油管学习.NET知识,刷到一个外国小哥在用一个类似Idea的IDE开发.NET。出于好奇,小编在某谷搜索Idea支持.NET吗?结果当然不支持,Idea主要是开发Java的IDE。幸好搜索引擎有个图片搜索功能,于是拿图片搜索了这个IDE,原来它的名字叫Rider,是Idea同一家公司JetBrains开

    2024年02月16日
    浏览(37)
  • 数据分享|R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病...

    这个数据集( 查看文末了解数据免费获取方式 )可以追溯到1988年,由四个数据库组成。克利夫兰、匈牙利、瑞士和长滩。\\\"目标 \\\"字段是指病人是否有心脏病。它的数值为整数,0=无病,1=有病 ( 点击文末“阅读原文”获取完整 代码数据 ) 。 目标: 主要目的是预测给定的人

    2024年02月16日
    浏览(53)
  • R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化|数据分享...

    在房地产市场中,准确地预测房屋价格是至关重要的。过去几十年来,随着数据科学和机器学习的快速发展,各种预测模型被广泛应用于房屋价格预测中。而R语言作为一种强大的数据分析和统计建模工具,被越来越多的研究者和从业者选择用于房屋价格预测 ( 点击文末“阅

    2024年02月21日
    浏览(120)
  • 多点Dmall冲刺港交所上市:前三季度营收11亿元,张文中为实控人

    撰稿|汤汤 来源|贝多财经 日前,多点数智有限公司(下称“多点Dmall”或“多点”)向港交所递交招股书,准备在港交所主板上市,瑞信、招银国际为其联席保荐人。  据贝多财经了解,多点Dmall在境内的主要经营主体为多点生活(中国)网络科技有限公司(下称“多点生活

    2024年02月06日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包