📜  如何在 R 中创建森林图?

📅  最后修改于: 2022-05-13 01:55:19.955000             🧑  作者: Mango

如何在 R 中创建森林图?

在本文中,我们将讨论如何在 R 编程语言中创建森林图。

森林图也称为斑点图。它可以帮助我们将一定数量的研究的估计结果与整体结果一起可视化在一个图中。它广泛用于医学研究,用于可视化随机对照试验结果的荟萃分析。图的 x 轴包含研究的兴趣值,y 轴显示不同试验的结果。

为了在 R 语言中创建森林图,我们使用散点图和误差线的组合。 ggplot 包的 geom_point()函数帮助我们创建散点图。为了在散点图上创建一个误差条图作为叠加,我们使用 geom_errorbarh()函数。 geom_errorbarh()函数用于绘制水平误差条图。

示例:基本森林图。

R
# create sample data
sample_data <- data.frame(study=c('G1', 'G2', 'G3', 'G4', 'G5'),
                 index=1:5,
                 result=c(-.23, -.45, -.16, .6, .65),
                 error_lower=c(-.35, -.59, -.37, -.12, .24),
                 error_upper=c(-.17, -.25, -.03, .82, .91))
  
#load library ggplot2
library(ggplot2)
  
#create forest plot
ggplot(data=sample_data, aes(y=index, x=result,
                             xmin=error_lower, 
                             xmax=error_upper)) +
  geom_point() + 
  geom_errorbarh(height=.1) +
  scale_y_continuous(labels=sample_data$study)


R
# create sample data
sample_data <- data.frame(study=c('G1', 'G2', 'G3', 'G4', 'G5'),
                 index=1:5,
                 result=c(-.23, -.45, -.16, .6, .65),
                 error_lower=c(-.35, -.59, -.37, -.12, .24),
                 error_upper=c(-.17, -.25, -.03, .82, .91))
  
#load library ggplot2
library(ggplot2)
  
#create forest plot
ggplot(data=sample_data, aes(y=index, x=result, 
                             xmin=error_lower, 
                             xmax=error_upper)) +
  geom_point() + 
  geom_errorbarh(height=.1) +
  scale_y_continuous(labels=sample_data$study)+
  labs(title='Title Of Plot', x='X-axis Title', y = 'Y-axis Title')


R
# create sample data
sample_data <- data.frame(study=c('G1', 'G2', 'G3', 'G4', 'G5'),
                 index=1:5,
                 result=c(-.23, -.45, -.16, .6, .65),
                 error_lower=c(-.35, -.59, -.37, -.12, .24),
                 error_upper=c(-.17, -.25, -.03, .82, .91))
  
#load library ggplot2
library(ggplot2)
  
#create forest plot
ggplot(data=sample_data, aes(y=index, x=result,
                             xmin=error_lower, 
                             xmax=error_upper)) +
  geom_point() + 
  geom_errorbarh(height=.1) +
  scale_y_continuous(labels=sample_data$study)+
  geom_vline(xintercept=0, color='green', linetype='dashed', alpha=.8)


R
# create sample data
sample_data <- data.frame(study=c('G1', 'G2', 'G3', 'G4', 'G5'),
                 index=1:5,
                 result=c(-.23, -.45, -.16, .6, .65),
                 error_lower=c(-.35, -.59, -.37, -.12, .24),
                 error_upper=c(-.17, -.25, -.03, .82, .91))
  
#load library ggplot2
library(ggplot2)
  
#create forest plot
ggplot(data=sample_data, aes(y=index, x=result, 
                             xmin=error_lower, 
                             xmax=error_upper)) + 
  geom_errorbarh(height=.1, color= "green", lwd=1.2) +
  geom_point( color= "red", pch= 9, size=3) +
  scale_y_continuous(labels=sample_data$study)+
  labs(title="Forest Plot")+
  geom_vline(xintercept=0, color='blue', linetype='dashed', alpha=.5)


输出:

添加标题并更改绘图的轴标签

为了给绘图添加标题,我们使用 R 语言的 labs()函数的 title 参数。我们还可以分别使用 labs()函数的 x 和 y 参数来更改 x 轴和 y 轴的轴标签。

示例:带有自定义标题的森林图和两个轴。

R

# create sample data
sample_data <- data.frame(study=c('G1', 'G2', 'G3', 'G4', 'G5'),
                 index=1:5,
                 result=c(-.23, -.45, -.16, .6, .65),
                 error_lower=c(-.35, -.59, -.37, -.12, .24),
                 error_upper=c(-.17, -.25, -.03, .82, .91))
  
#load library ggplot2
library(ggplot2)
  
#create forest plot
ggplot(data=sample_data, aes(y=index, x=result, 
                             xmin=error_lower, 
                             xmax=error_upper)) +
  geom_point() + 
  geom_errorbarh(height=.1) +
  scale_y_continuous(labels=sample_data$study)+
  labs(title='Title Of Plot', x='X-axis Title', y = 'Y-axis Title')

输出:

在绘图中添加一条垂直线

使用 geom_vline()函数在 R 语言中将垂直线添加到绘图中作为叠加层。我们可以在图中添加一条垂直线来显示零的位置,以便更好地可视化数据。我们可以使用 geom_vline()函数的 xintercept、linetype、color 和 alpha 参数分别自定义垂直线的位置、形状、颜色和透明度。

示例:在 x=0 处有一条垂直线的森林图。

R

# create sample data
sample_data <- data.frame(study=c('G1', 'G2', 'G3', 'G4', 'G5'),
                 index=1:5,
                 result=c(-.23, -.45, -.16, .6, .65),
                 error_lower=c(-.35, -.59, -.37, -.12, .24),
                 error_upper=c(-.17, -.25, -.03, .82, .91))
  
#load library ggplot2
library(ggplot2)
  
#create forest plot
ggplot(data=sample_data, aes(y=index, x=result,
                             xmin=error_lower, 
                             xmax=error_upper)) +
  geom_point() + 
  geom_errorbarh(height=.1) +
  scale_y_continuous(labels=sample_data$study)+
  geom_vline(xintercept=0, color='green', linetype='dashed', alpha=.8)

输出:

林地自定义

要自定义森林图,我们可以更改条形和点的颜色和形状,以使其更具信息性和美观性。为了改变颜色和大小,我们可以使用基本的美学参数,例如颜色、lwd、pch 等。

例子:

这里,是一个完全定制的森林地块。

R

# create sample data
sample_data <- data.frame(study=c('G1', 'G2', 'G3', 'G4', 'G5'),
                 index=1:5,
                 result=c(-.23, -.45, -.16, .6, .65),
                 error_lower=c(-.35, -.59, -.37, -.12, .24),
                 error_upper=c(-.17, -.25, -.03, .82, .91))
  
#load library ggplot2
library(ggplot2)
  
#create forest plot
ggplot(data=sample_data, aes(y=index, x=result, 
                             xmin=error_lower, 
                             xmax=error_upper)) + 
  geom_errorbarh(height=.1, color= "green", lwd=1.2) +
  geom_point( color= "red", pch= 9, size=3) +
  scale_y_continuous(labels=sample_data$study)+
  labs(title="Forest Plot")+
  geom_vline(xintercept=0, color='blue', linetype='dashed', alpha=.5)

输出: