R绘制多彩的森林图:基于ggplot2
查看病例
前些日子写了一篇关于R语言绘制森林图(forest plot)的帖子,不知道没有帮助到各位战友(来,挑一款你喜欢的森林图(超实用))。今天给大家带来一个新的森林图,这个森林图前些日子追加在了上一帖子的评论里,应该有站友已经看到了。今天就该多彩森林图的实现做个简单介绍。

该森林图是使用R package:ggplot2绘制的,主要用的函数有ggplot、geom_point、geom_errorbarh、geom_vline、theme和geom_text。下面我们就一步步来实现这一多彩森林图。
## 加载程序包
library(ggplot2)
##建立数据集(胡乱编造的)
dataset <- data.frame(
Varnames = c("ART","WBC","CPR","DTA","EPC","FFT","GEO","HBC","PTT","JOK"),
OR = c(0.9, 2, 0.3, 0.4, 0.5, 1.3, 2.5, 1.6, 1.9, 1.1),
CI = c(0.15, 0.21, 0.12, 0.2, 0.12, 0.15, 0.09, 0.19, 0.24, 0.13),
Factor = c('Not sig.', 'Risk', 'Protective', 'Protective', 'Protective', 'Risk', 'Risk', 'Risk', 'Risk', 'Not sig.'),
Sample=c(450, 420, 390, 400, 470, 390, 400, 388, 480, 460))
#查看数据集
View(dataset)

对数据情况做个简单介绍,Varnames:变量名称、OR:Odds Ratio、CI:1.96*SE、Factor:影响因素类型、Sample:样本量。基于这个数据集,我们开始绘制第一张草图:不同类型变量用不同颜色或形状表示。
##草图
p <- ggplot(dataset, aes(OR, Varnames, col=Factor)) # 不同形状shape= Factor
p + geom_point(size=3.6) +
geom_errorbarh(aes(xmax = OR + CI, xmin = OR - CI), height = 0.4) +
scale_x_continuous(limits= c(0.1, 2.6), breaks= seq(0, 2.5, 0.5)) +
geom_vline(aes(xintercept = 1)) +
xlab('Odds Ratio ') + ylab(' ')
# ggsave("forest1.png",dpi = 300,width = 33,height = 20,units = "cm")


上面已经完成了第一步,下面开始添加文字。首先通过data.frame建立包含P Value和各变量对应的P值的数据框,在通过geom_text添加到图中

所有代码不再免费提供,谢谢!
最后编辑于 2022-10-09 · 浏览 4961