本文将参照 Nature Communication 上的一篇论文 Rhizosphere bacteriome structure and functions 的结果图与代码(见下图),并结果

在该图中,左侧条形图反映了各个物种数据的平均值与标准误。右侧点图代表在95% CI下不同事后比较下效应量大小的比较。

本次画图将结合心理学研究中的post-hoc与基于效应量的meta-analysis,用于自己的研究之中。

生成数据

library(tidyverse)
# 在该反应时数据中,包含六个实验的结果,并且每个实验包含两个条件(direct, indirect),因变量为反应时。
mean.data <- tibble(experiment = rep(paste0("exp",1:6),2), RT = runif(12,min = 500,max = 800),se = runif(12,min = 0, max = 120),type = c(rep("direct",6),rep("indirect",6)))
mean.data$experiment <- factor(mean.data$experiment, levels = c("exp1","exp2","exp3","exp4","exp5","exp6"))
# 在效应量数据中,也同样有六个实验的数据,并且效应量是基于两个条件得到的统计分析得来的effect size值
ef <- tibble(experiment = c("exp1","exp2","exp3","exp4","exp5","exp6"), e = c(-.25,.1,.15,.65,.23,.31),type = rep(c("direct","indirect"),3)) # 模拟效应量置信区间数据
ci <- runif(10,min = 0, max = 0.5)# 以效应量是否大于0.3为标准,大于则为显著,反之则为不显著。
ef <- ef %>% mutate(sig = case_when(e > 0.3 ~ "sig",e < 0.3 ~ "n.s."))# 在原数据基础上,生成置信区间数据
for (i in 1: nrow(ef)) {ef$conf.low[i] <- ef$e[i] - ci[i]ef$conf.high[i] <- ef$e[i] + ci[i]
}
head(ef)
head(mean.data)

mean.data 的数据格式

ef 的数据格式

画图

 # 颜色编号cbbPalette <- c("#FFCC00", "#56B4E9")# bar plot
p1 <- ggplot(mean.data,aes(experiment,RT,fill = type)) +xlim(ef$experiment) +coord_flip() +xlab("") +ylab("") +theme(panel.background = element_rect(fill = 'transparent'),panel.grid = element_blank(),axis.ticks.length = unit(0.4,"lines"), axis.ticks = element_line(color='black'),axis.line = element_line(colour = "black"),axis.title.x=element_text(colour='black', size=12,face = "bold"),axis.text=element_text(colour='black',size=10,face = "bold"),legend.title=element_blank(),legend.text=element_text(size=12,face = "bold",colour = "black",margin = margin(r = 20)),legend.position = c(-1,-0.1),legend.direction = "horizontal",legend.key.width = unit(0.8,"cm"),legend.key.height = unit(0.5,"cm"))
for (i in 1:(nrow(ef) - 1)) p1 <- p1 + annotate('rect', xmin = i+0.5, xmax = i+1.5, ymin = -Inf, ymax = Inf, fill = ifelse(i %% 2 == 0, 'white', 'gray95'))
p1 <- p1 + geom_errorbar(aes(ymin=RT-se,ymax=RT+se),width=0.6,position=position_dodge(0.8))+geom_col(position=position_dodge(0.8),width = 0.8, colour="black") +scale_fill_manual(values=cbbPalette)
p1
p5<- p1+ coord_flip(ylim=c(400,800)) # scatter plot
p2 <- ggplot(ef,aes(experiment,e,fill = sig)) +theme(panel.background = element_rect(fill = 'transparent'),panel.grid = element_blank(),axis.ticks.length = unit(0.4,"lines"), axis.ticks = element_line(color='black'),axis.line = element_line(colour = "black"),axis.title.x=element_text(colour='black', size=12,face = "bold"),axis.text=element_text(colour='black',size=10,face = "bold"),axis.text.y = element_blank(),legend.position = "none",axis.line.y = element_blank(),axis.ticks.y = element_blank(),plot.title = element_text(size = 15,face = "bold",colour = "black",hjust = 0.5)) +scale_x_discrete(limits = levels(ef$experiment)) +coord_flip(ylim=c()) +xlab("") +ylab("") +labs(title="") for (i in 1:(nrow(ef) - 1)) p2 <- p2 + annotate('rect', xmin = i+0.5, xmax = i+1.5, ymin = -Inf, ymax = Inf, fill = ifelse(i %% 2 == 0, 'white', 'gray95'))p2 <- p2 +geom_errorbar(aes(ymin = conf.low, ymax = conf.high), position = position_dodge(0.8), width = 0.5, size = 0.5) +geom_point(shape = 21,size = 4.5) +scale_fill_manual(values= c("ghostwhite","brown1")) +geom_hline(aes(yintercept = 0), linetype = 'dashed', color = 'black')p2
## Image Stitching
library(patchwork)
p <- p5 + p2 + plot_layout(widths = c(2,2))
p


这样一幅简单的图就大功告成了!

ggplot2: post-hoc + 森林图相关推荐

  1. ggplot2画各种误差线和森林图

    获取更多R语言知识,请关注公众号:医学和生信笔记 医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化.主要分享R语言做医学统计学.meta分析.网络药理学.临床预测模型.机器学习.生 ...

  2. R语言画森林图方法4

    获取更多R语言知识,请关注公众号:医学和生信笔记 医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化.主要分享R语言做医学统计学.meta分析.网络药理学.临床预测模型.机器学习.生 ...

  3. R语言可视化:森林图绘制

    森林图绘制 清除当前环境中的变量 rm(list=ls()) 设置工作目录 setwd("C:/Users/Dell/Desktop/R_Plots/39forest/") 使用s ...

  4. R-forestplot包| HR结果绘制森林图

    本文首发于"生信补给站"微信公众号,https://mp.weixin.qq.com/s/2W1W-8JKTM4S4nml3VF51w 更多关于R语言,ggplot2绘图,生信分析 ...

  5. python画树林_R-forestplot包| HR结果绘制森林图

    本文首发于"生信补给站"微信公众号,https://mp.weixin.qq.com/s/2W1W-8JKTM4S4nml3VF51w 更多关于R语言,ggplot2绘图,生信分析 ...

  6. 回归 统计绘图_手把手教绘制回归分析结果的森林图「GraphPad Prism和Excel」

    在之前的内容中,我们讲到通过展示森林图,可以更加直观的将回归分析结果可视化.详见:一文带你玩转森林图! 在本期内容中,我们来实际操练一下,介绍几款常用的软件,教大家绘制出高质量的森林图. 下面我们以2 ...

  7. R语言ggplot2可视化分面图使用facet_wrap函数和facet_grid函数实战

    R语言ggplot2可视化分面图使用facet_wrap函数和facet_grid函数实战 目录 R语言ggplot2可视化分面图使用facet_wrap函数和facet_grid函数实战

  8. R语言ggplot2可视化树状图、层次聚类系统树图、树状图根据给定的距离度量将相似点分组在一起、并根据点的相似性将它们组织成树状图链接起来(Hierarchical Dendrogram)

    R语言ggplot2可视化树状图.层次聚类系统树图.树状图根据给定的距离度量将相似点分组在一起.并根据点的相似性将它们组织成树状图链接起来(Hierarchical Dendrogram) 目录

  9. R语言ggplot2可视化可视化聚类图、使用geom_encircle函数绘制多边形标定属于同一聚类簇的数据点、并自定义每个聚类簇数据点的颜色、多边形框的颜色(Cluster Plot)、主副标题题注

    R语言ggplot2可视化可视化聚类图.使用geom_encircle函数绘制多边形标定属于同一聚类簇的数据点.并自定义每个聚类簇数据点的颜色.多边形框的颜色(Cluster Plot).主副标题题注 ...

  10. R语言ggplot2可视化分面图(facet_wrap)、使用size参数自定义设置分面图标签栏(灰色标签栏)中的标签文本的字体大小

    R语言ggplot2可视化分面图(facet_wrap).使用size参数自定义设置分面图标签栏(灰色标签栏)中的标签文本的字体大小 目录

最新文章

  1. 下载最新Android代码的方法
  2. ftp 信息服务器日常维护,Web Ftp Mail服务器的日常管理与维护
  3. Android的NDK开发(3)————JNI数据类型的详解
  4. C++ 复制vector值到array,复制 array 到jintArray
  5. 免费素材下载:Box Of Bundles Number 2
  6. 实验四:用一维数组实现杨辉三角
  7. 数据库语法_圣诞快乐:用GaussDB T 绘制一颗圣诞树,兼论高斯数据库语法兼容...
  8. 【HDU - 薛猫猫杯程序设计网络赛】【题解】
  9. 优化 Hive ETL 任务(参数篇)
  10. CCNET自动构建之路
  11. NOIP2016提高组 天天爱跑步
  12. kotlin xml布局_Android工具栏教程– XML布局和Kotlin
  13. csv文件转换成utf-8格式乱码
  14. libmodbus在ARM linux开发板上使用
  15. Emulex着眼数据中心LAN与SAN的聚合
  16. 解决SQL Server日志空间满的方法
  17. 计算机应用基础第四章电子表格测试,2019年计算机应用基础第四章测试答案
  18. 向NCBI上传16S rDNA数据的操作详解
  19. 手把手教你实现Android真机远程截屏
  20. 仿小米视频下滑视频动画效果

热门文章

  1. Dev-C++安装教程
  2. 心算测试c语言源代码,小学生心算统——c语言程序设计.doc
  3. html页面计算圆的周长和面积,计算圆的周长和面积(VB)
  4. 于的繁体字有几种写法_处字的繁体字书法作品图片
  5. 性能优化之cpu的 us和sy
  6. 【福利时刻】阿里云盘内测码来啦,ITValuer专属暗号点这里
  7. stm32wb55 基于rtt的ble sample制作过程
  8. 高德LBS开放平台携手SAE 抱团背后开发者受益
  9. html的视频字幕制作步骤,视频滚动字幕怎么制作(上)
  10. win7的终端服务器,win7系统远程提示终端服务器超出了最大允许连接的解决方法...