堆叠柱状图也要做统计-标记显著性

写在前面

有时候我们展示的指标有一定的关系,希望可以使用堆叠柱状图展示。许多朋友们问询,这样如何添加显著性标记,因此本期结合EasyStat包给大家做一个演示。

R 包导入

## 导入包
library(ggplot2)
library(reshape2)
library(plyr)
library(EasyStat)
library(dplyr)

使用数据

这里只需要修改使用哪几列数据即可,我们EasyStat内置数据,选择了三列数据大小为同一个水平的来做一下。(模拟)

data("data_wt")
## 载入数据
data <- data_wt
i = c(4,9,8)

### 数据整理
如果按照EasyStat的输入,也就是第一列是ID,第二列为:group,那么下面数据整理的过程是不需要修改的,直接运行。
#--数据整理
i = c(1,2,i)
data <- data[,i]

#---差异统计
result = MuiKwWlx(data = data,num = c(3:ncol(data)))
result
result$group = row.names(result)
abc <- melt(result, id="group", variable.name="variable", value.name = "abc")

#作图数据整理
df <- melt(data, id="group", variable.name="variable", value.name = "Size")
head(df)
## 数据统计均值、标准差、标准误
mean <- aggregate(df$Size, by=list(df$group, df$variable), FUN=mean)
sd <- aggregate(df$Size, by=list(df$group, df$variable), FUN=sd)
len <- aggregate(df$Size, by=list(df$group, df$variable), FUN=length)
df_res <- data.frame(mean, sd=sd$x, len=len$x)
colnames(df_res) = c("group", "variable", "Mean", "Sd", "Count")
head(df_res)
df_res$Se <- df_res$Sd/sqrt(df_res$Count) ### 计算标准差
levels(df_res $variable) = as.character(unique(df_res$variable))[c(3:1)]

大家关心的误差坐标和显著性标记坐标构造

#构造误差线坐标--
df_res = ddply(df_res,"group",transform,label_y = cumsum(Mean ))
#-构造显著性标记位置
df_res = ddply(df_res,"group", transform, label_abc = cumsum(Mean) - 0.5*Mean)

#因子重新排列
df_res$variable = factor(df_res$variable,order = F,levels = levels(df_res$variable)[length(levels(df_res$variable)):1])

合并出图数据 绘图

#--合并-出图数据
plotdata <- df_res %>%
left_join(abc,by = c("group","variable"))

### ggplot 绘图
ggplot(plotdata , aes(x= group, y=Mean, fill=variable)) +
geom_bar(stat="identity",color="black", width=.6) +
geom_errorbar(aes(ymin=label_y-Sd, ymax=label_y +Sd), width=.2) +
geom_text(aes(y = label_abc, label = abc))

(0)

相关推荐

  • B端设计:数据可视化 (一) 图表选择篇

    编辑导读:数据可视化是B端设计最常见的设计之一.在一个产品中,如何清晰.高屏效展示数据,让用户高效.简洁的读取数据并做出判断,这是B端设计师的基础技能.本文作者分享了自己做数据可视化的经验,本篇为图表 ...

  • 表格、条形图、堆叠图和双向条形图的设计指南

    在制图过程中,有什么小技巧可以使用?有什么错误应该避免?今天我们就来讲讲,"比较"这一层关系中图表的应用与设计技巧. Part 1 表格 表格,是由若干的行与列所构成的一种有序的组 ...

  • R语言学习笔记

    R语言学习笔记

  • 蚂蚁金服在线可视化引擎 G2

    R绘图往期回顾 R绘图 ggpubr: 为学术而生 R绘图 ggsci: 高大上的论文配色,一文解决配色问题 R绘图:相关性分析与作图 R绘图:相关性分析与作图(单基因相关性) TCGA数据分析系列之 ...

  • EasyStat新功能添加-堆叠柱状图展示差异-显著性字母标记

    写在前面 这种堆叠柱状图的方式展示对于我们微生物组数据十分重要,所以我加入了这种方式,但是我们知道目前大部分的堆叠柱状图展示物种丰度都是不添加显著性标记的,这里我们更进一步,给他添加上显著性标记,使用 ...

  • 菜鸟记290-用数据透视表做统计之极简教程1

    万一您身边的盆友正好用得着呢 关键词:EXCEL2016:数据透视表:频数:频次:分组统计:操作难度*** 某次闲聊时候,有一位同事和小菜说看你的公众号,如果能写写如何统计就好了. 小菜以教学任务表为 ...

  • 菜鸟记291-用数据透视表做统计之极简教程2

    也许您身边的朋友用得着呢? 关键词:EXCEL2016:数据透视表:排序:分组统计:操作难度*** 还记得昨天小菜和您分享的统计极简教程吗? 请参阅<菜鸟记290-用数据透视表做统计之极简教程1 ...

  • 菜鸟记292-用数据透视表做统计之极简教程3

    也许您身边的朋友用得着呢? 关键词:EXCEL2016:数据透视表:标准差:方差:操作难度** 还记得前两天小菜和您分享的统计极简教程吗? 请参阅<菜鸟记290-用数据透视表做统计之极简教程1& ...

  • 【直播】我的基因组 33:用samstat软件对sam文件做统计

    在此之前,我不止一次强调过QC的重要性,对全基因组测序等以找variation为主的分析流程来说,不仅仅是对测序数据的QC,还有比对之后的sam/bam文件也需要QC,最后找出的variation文件 ...

  • 微生物门类堆叠柱状图-冲击图-在R4.0更新版本

    写在前面2020年12月 在R4.0 更新后,我之前的barMainplot函数中冲击图部分不能很好地运行,是由于dplyr版本更新后产生的问题,我将这部分做了更新,并且将颜色等映射去除,方便大家在出 ...

  • 关于微生物门类堆叠柱状图,你知道的并不够

    写在前面 无论是堆叠柱状图,还是近年来会扩展的冲击图.基本都只能对门水平物种多样性进行可视化.然而即使是门水平,也不一定是全部的样本都适合使用堆叠柱状图可视化. 尤其是土壤等复杂的微生物群落的环境,往 ...

  • 微生信生物新年放大招:一条代码完成堆叠柱状图-冲击图的操作-终结版

    00. 写在前面 眼下2019年的余额不足一天了,2020年最终还是要到来,首先祝愿大家元旦快乐,其次新的一年祝大家心想事成.说实在的最近老是想出去玩,哈哈哈,文章还没写完,不可以!不可以! 这只是大 ...

  • 你需要堆叠柱状图添加bar吗?

    年底了,各种事情都在排队去做,造成的后果就是时间像流水一下迅速过去了,抽出一点时间做点学习成了奢求,前两天在微生信生物群0中讨论了一个如何对堆叠柱状图添加误差线问题,类似下面的图片:额.画质真烂!我使 ...