打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
R ggplot和ggsignif箱线图添加显著性差异标识
22019.03.07 11:33:11
具有显著性标注的箱线图

有时候我们会看到如上图片,觉得挺好,但是如何实现呢?没有做的的时候,觉得挺难,但是真要做才发现没有那么困难?
其实做这样的图,目前R比较常用的包有两个,分别为:ggsignif和ggpubr,两者的用法大体差不多,有一些细微从差别,但是结果几乎一样。这里我用的是ggsignif,下面将介绍ggsignif的用法。


ggpubr示范结果

ggsignif安装:

两种安装方式:

  • install.packages("ggsignif")

  • devtools::install_github("const-ae/ggsignif")

统计方法与参数

统计方法

一般根据数据是否符合正态分布,选择合适的统计方法:

统计方法适用情况
t.test()比较两组(参数)
wilcox.test()比较两组(非参数)
aov()或anova()比较多组(参数)
kruskal.test()比较多组(非参数)

参数

ggsignif包主要函数为:geom_signif()和stat_signif(),常用geom_signif()。
常用参数如下:

参数说明示范
comparisonslist,设置需要比较的组,比如list(c("a","b"),c("a","c"))
test上述统计方法,比如t.test()
test.argstest传入的参数
map_signif_level布尔值,p值直接被当作注释或者以星号替代,比如c(""=0.001,""=0.01,""=0.05)
annotations带有可选注释的字符向量,如果没有则被忽略
step_increase不同组差异标注的间隔

所有参数

geom_signif(mapping = NULL, data = NULL, stat = "signif",position = "identity", na.rm = FALSE, show.legend = NA,inherit.aes = TRUE, comparisons = NULL, test = "wilcox.test",test.args = NULL, annotations = NULL, map_signif_level = FALSE,y_position = NULL, xmin = NULL, xmax = NULL, margin_top = 0.05,step_increase = 0, tip_length = 0.03, size = 0.5, textsize = 3.88,family = "", vjust = 0, ...)

ggsignif使用示范:

1. 测试数据集test

test测试数据集

test数据集两列,一列是基因表达量,一列是分组。


test数据的group列

2. 差异分析分组

compaired <- list(c("a", "b"),c("a","c"),c("a","d"))

3. 画图

ggplot(test,aes(group,exp,fill=group))+geom_boxplot(width=0.5)+theme(plot.title=element_text(size = 25),axis.text.x=element_text(size=15,angle=0),axis.text.y=element_text(size=15),axis.title.x=element_text(size = 23),axis.title.y=element_text(size = 23))+labs(x='Gene', y= '')+geom_signif(comparisons = compaired,step_increase = 0.1,map_signif_level = F,test = t.test)
结果图
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
绘图专题 | 使用ggsignif添加显著性标签
嵌套条形图的R语言实现
一图胜千言-箱式图+显著性差异更好看
R绘图:无与伦比的华丽风行(桑基图)
R绘图基础(四)热图 heatmap ← 糗世界
R绘图笔记 | 小提琴图与漂亮的云雨图绘制
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服