R语言绘制森林图
创始人
2024-04-26 08:01:38
0

在绘制森林图之前当然需要先下载RStudio软件啦,在下载后需要安装对应的rtool,最后将两者关联起来才能使用其中对应的包,否则只安装了软件很多功能不能使用而且还会报错,这篇文章主要是总结怎么使用forestploter包绘制森林图,本来是想使用python绘制的,但是网络上关于python绘制森林图可参考的文章寥寥无几,所以这次使用R语言进行绘制森林图,而且更加简单,关于森林图的介绍在上篇文章中已经整理了一些资料。

简单的将绘制森林图的步骤描述下

(1)新建变量导入数据集

(2)导入安装包

(3)使用对应的函数对其中的数据显示各层次进行配置,最后显示

目前使用的方法是将数据按照矩阵的形式,先将每行的变量和每列的数据手动添加进程序,也可以使用xsxl表格的方式导入,这个目前还没有探索,先会这个简单的hh,

eg,以下的数据

        study      steroid placebo  mean lower  upper         HR (95% CI)                
1     Auckland      36     60  0.578  0.372  0.898          0.58 (0.37 to 0.90)                
2        Block       1       5     0.165   0.018 1.517           0.16 (0.02 to 1.52)                
3        Doran       4      11   0.246   0.072 0.833           0.25 (0.07 to 0.83)                
4        Gamsu      14    20  0.700   0.333 1.474            0.70 (0.33 to 1.47)                
5     Morrison       3     7     0.348   0.083 1.455            0.35 (0.08 to 1.46)                
6 Papageorgiou   1     7    0.139    0.016 1.209           0.14 (0.02 to 1.21)                
7      Tauesch       8    10  1.017     0.365 2.831          1.02 (0.36 to 2.83)

8      Summary                    0.531   0.386 0.731        0.53 (0.39 to 0.73)                
 

代码文本导入

           

 tabletext <- data.frame(
+     # 文本数据
+     study =  c("Auckland", "Block", "Doran", "Gamsu", "Morrison", "Papageorgiou", "Tauesch", "Summary"),
+     steroid =  c("36", "1", "4", "14", "3", "1", "8", ""),
+     placebo = c("60", "5", "11", "20", "7", "7", "10", ""),
+     # 画“森林需要的数据”,没有的用空格表示,进行按列赋值操作
+     mean  = c(0.578, 0.165, 0.246, 0.700, 0.348, 0.139, 1.017, 0.531), 
+     lower = c(0.372, 0.018, 0.072, 0.333, 0.083, 0.016, 0.365, 0.386),
+     upper = c(0.898, 1.517, 0.833, 1.474, 1.455, 1.209, 2.831, 0.731)
+ )
> 
> # 增加一列
> tabletext$`HR (95% CI)` <- ifelse(is.na(tabletext$mean), "",
+                                   sprintf("%.2f (%.2f to %.2f)",
+                                           tabletext$mean, tabletext$lower, tabletext$upper))
> 
> # 增加一列空值用于画“森林”
> tabletext$` ` <- paste(rep(" ", 8), collapse = " ")
> 
> tabletext#文本显示

新建文件上述代码会在运行界面显示出数据文本

如图

 从第二个红色下面开始哈哈前面忽略忽略

接下来就是导入对应的安装包,对于RStudio来说有些安装包是没有的,如果已经下载rtool,则只需要在运行界面插入以下代码既可以安装对应的安装包

install.packages("要使用的安装包")

如果出错的话要检查是否安装rtool

如果安装包没有问题的话就导入即可,画森林图中使用的主要是forestplot包,所以只用导入这个即可

library(forestploter)

导入完成后接下来就是使用对应的函数对参数进行设置

> library(forestploter)
> p <- forest(data = tabletext[,c(1:3,8,7)], #导入数据
+             # 选择文字部分,这里选了5列,
+             # 其中4列是要呈现的文字信息,还有1列空值用于画“森林”
+             
+             lower = tabletext$lower, # 可信区间下限
+             upper = tabletext$upper, # 可信区间上限
+             est = tabletext$mean, # 估计值
+             ci_column = 4 # “森林”出现在图的第几列
+ )
> 
> print(p)

绘制的图

 在右下角哈哈,上面是比较基础的绘图,参考资料发现还可以对所画的图进行优化,不是上面看起来的那么粗糙额

如果将绘图代码改成

> p <- forest(data = tabletext[,c(1:3,8,7)],
+             lower = tabletext$lower,
+             upper = tabletext$upper,
+             est = tabletext$mean,
+             ci_column = 4,
+             sizes = tabletext$mean, # 控制方框的大小
+             
+             is_summary = c(rep(FALSE,nrow(tabletext)-1), TRUE), # 最后一列是汇总行
+             ref_line = 1, # 把竖线放到1的位置
+             xlim = c(0,3), # x轴范围
+             ticks_at = c(0,1,2,3), # x轴刻度显示
+             arrow_lab = c("this better","that better"), # x轴下面的文字
+             footnote = "A simple example of forestploter" # 左下角脚注
+ )
> 
> print(p)
> 

图像的显示会变成

 还是右下角hh。

发现竟然还可以设置主题,我天,太全面了!!!

如果将数据传送的代码改成

# 自定义主题,修改各种细节
tm <- forest_theme(base_size = 10, # 基础大小# 可信区间点的形状,线型、颜色、宽度ci_pch = 16,ci_col = "#4575b4", # #762a83ci_lty = 1,ci_lwd = 1.5,ci_Theight = 0.2, # 可信区间两端加短竖线# 参考线宽度、形状、颜色refline_lwd = 1,refline_lty = "dashed",refline_col = "grey20",# 汇总菱形的填充色和边框色summary_fill = "#4575b4",summary_col = "#4575b4",# 脚注大小、字体、颜色footnote_cex = 0.6,footnote_fontface = "italic",footnote_col = "blue")
#将上面的主题设置传递给参数
p1 <- forest(data = tabletext[,c(1:3,8,7)],lower = tabletext$lower,upper = tabletext$upper,est = tabletext$mean,ci_column = 4,is_summary = c(rep(FALSE,nrow(tabletext)-1), TRUE), # 最后一列是汇总行ref_line = 1, # 把竖线放到1的位置xlim = c(0,3), # x轴范围ticks_at = c(0,1,2,3), # x轴刻度显示arrow_lab = c("this better","that better"), # x轴下面的文字footnote = "A simple example of forestploter", # 左下角脚注theme = tm)print(p1)

运行的界面会变成

 

主要是对库中函数参数的设置,可以改变的嘛,不过出现错误最多的主要是要保证存在库的同时正确使用函数。

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...