EasyStat_差异分析完整解决方案(2021.1)

wentao

2021/11/02

本次更新关键词:显著性标记顺序按照丰度排布

EasyStat 使用指南

安装R包

library(devtools)
remotes::install_github("taowenmicro/EasyStat")
# 如果国外不可用,则使用国内码云安装
remotes::install_git('https://gitee.com/wentaomicro/EasyStat')

导入R包和数据

导入包和数据,数据均来自真实试验和文公开文献下载,通过调整分组加入。

# 导入差异分析包
library(EasyStat)
library(ggplot2)# 用于作图
library("dplyr")# 用于数据处理

#使用内置数据1
data(data_wt)
#内置数据2
data(env)

数据格式介绍

数据格式为数据框,不需要列名。第一列为样本id,随意设置;第二列为分组id(因子变量),第三列往后为数据。

基于单个指标的统计分析

正态检验和方差齐性

正态检验和方差齐性分析,使用?NorNorCVTest查看帮助信息

# 使用?NorNorCVTest查看帮助信息
##使用案例
NorCV = NorNorCVTest(data = data_wt, i= 4,method_cv = "leveneTest")

#提取正态检验结果
NorCV[[1]]
## No Name W p.value norm.test
## 1 1 CF 0.9385422 0.6474760 Norm
## 2 2 CK 0.9306138 0.5848500 Norm
## 3 3 Rhi 0.9651627 0.8585061 Norm
## 4 4 WT 0.9756280 0.9278774 Norm
## 5 Test Method: Shapiro-Wilk NA NA <NA>
# No Name W p.value norm.test
# 1 1 CF 0.9385422 0.6474760 Norm
# 2 2 CK 0.9306138 0.5848500 Norm
# 3 3 Rhi 0.9651627 0.8585061 Norm
# 4 4 WT 0.9756280 0.9278774 Norm
# 5 Test Method: Shapiro-Wilk NA NA <NA>

#提取方差齐性检验结果
NorCV[[2]]
## [1] 0.247# [1] 0.247

norm.test会按照分组告诉大家是否符合正态分布。

方差分析(aovMcomper和aovMcomper2)

  • data:输入数据框,第一列为样本编号,第二列为分组,注意分组列,列名必须为:group,第三列以后就是测定或者收集的指标了

  • i:代表您想要进行统计的列,比如:第三列:i = 3

  • method_Mc:选择需要使用的多重比较方法,这里又多种方法可供选择:“LSD”, “SNK”,“Duncan”,“scheffe”等。

result= aovMcomper(data = data_wt, i= 6,method_Mc = "Tukey")

# 提取多重比较结果
result[[1]]
## groups group
## CF a CF
## CK a CK
## Rhi b Rhi
## WT a WT
# result[[1]] = ord_sig(data = result[[1]],ID = "groups")

# groups group
# CF a CF
# CK a CK
# Rhi b Rhi
# WT a WT
#提取方差检验结果

result[[2]]## Call:
## aov(formula = count ~ group, data = ss)
##
## Terms:
## group Residuals
## Sum of Squares 169573500000 3387000000
## Deg. of Freedom 3 20
##
## Residual standard error: 13013.45
## Estimated effects may be unbalanced
# Call:
# aov(formula = count ~ group, data = ss)
#
# Terms:
# group Residuals
# Sum of Squares 169573500000 3387000000
# Deg. of Freedom 3 20
#
# Residual standard error: 13013.45
# Estimated effects may be unbalanced

结果中多重比较的展示全部使用字母表示了,虽然许多多种比较方法默认展示方式不同,但是我已经在包中将这些展示方式调整一致为字母。

非参数检验(KwWlx 和KwWlx2)

  • data参数在整个包中都是一个意思。

  • i参数在整个R包中都代表相同的含义。

# ?KwWlx
res = KwWlx2(data = data_wt, i= 6)

# 调用非参数两两比较结果:字母标记展示
res[[1]]
## groups group
## Rhi a Rhi
## CK b CK
## CF bc CF
## WT c WT
#表格展示两两之间差异结果
res[[2]]
## # A tibble: 6 x 8
## .y. group1 group2 p p.adj p.format p.signif method
## <chr> <chr> <chr> <dbl> <dbl> <chr> <chr> <chr>
## 1 count CF CK 0.123 0.25 0.1228 ns Wilcoxon
## 2 count CF Rhi 0.00470 0.028 0.0047 ** Wilcoxon
## 3 count CF WT 0.864 0.86 0.8643 ns Wilcoxon
## 4 count CK Rhi 0.00470 0.028 0.0047 ** Wilcoxon
## 5 count CK WT 0.0488 0.15 0.0488 * Wilcoxon
## 6 count Rhi WT 0.00470 0.028 0.0047 ** Wilcoxon

差异可视化方案(两种差异显示样式,三种图形)

  • 柱状图展示方差分析或非参数检验结果(aovMuiBarPlot)

在这个包中将差异检测和出图部分分离,方便选择合适的图表和差异可视化的策略。最终要的参数是result :为前面差异分析结果中的第一个表单,格式为第一列差异显著字母,第二列分组标签,列名,分组标签。如果只是用可视化的函数,直接从外面导入类似数据即可。

  • sig_show:代表差异展示方式;sig_show =“abc”是使用字母表示;sig_show =“line”是使用连线和星号表示;如果是NA,那么就不显示显著性结果

  • result:代表显著性差异分析结果,是一个数据框,第一列是显著性差异字母,第二列是分组group

# ?aovMuiBarPlot
###----使用方差检验结果和多重比较结果-柱状图展示
result= aovMcomper2(data = data_wt, i= 6,method_Mc = "Tukey")
PlotresultBar = aovMuiBarPlot(data = data_wt, i= 6,sig_show ="abc",result = result[[1]])
#提取结果
p1 <- PlotresultBar[[1]]
p1

PlotresultBar = aovMuiBoxBarP(data = data_wt, i= 6,sig_show ="abc",result = res[[1]])
## [1] 6#提取结果
p2 <- PlotresultBar[[1]]
p2

PlotresultBar = aovMuiBoxP(data = data_wt, i= 6,sig_show ="abc",result = res[[1]])
#提取结果
p3 <- PlotresultBar[[1]]
p3

result= KwWlxPair(data = data_wt, i= 4)
PlotresultBar = aovMuiBoxP2(data = data_wt, i = 4,sig_show ="abc",result = res[[1]])
#提取结果
p4 <- PlotresultBar[[1]] + theme_classic()
p4

library(patchwork)
p1/p3|p2/p4

  • 使用line形式展示

# ?aovMuiBarPlot
###----使用方差检验结果和多重比较结果做展示:柱状图展示
result= aovMcomper2(data = data_wt, i= 4,method_Mc = "Tukey")
PlotresultBar = aovMuiBarPlot(data = data_wt, i= 4,sig_show ="line",result = result[[1]])

#提取结果
p <- PlotresultBar[[1]] +
ylim(c(0, 140))
p

#提取方差分析或非参数检验结果
PlotresultBar[[2]]

## Row.names groups group mean SD
## 1 CF c CF 80.82814 6.287052
## 2 CK a CK 102.42726 6.217363
## 3 Rhi bc Rhi 90.60995 1.912997
## 4 WT b WT 95.17646 3.711328

是否显示不显著的。

# ?aovMuiBarPlot
###----使用方差检验结果和多重比较结果做展示:柱状图展示
result= aovMcomper2(data = data_wt, i= 4,method_Mc = "Tukey")
PlotresultBar = aovMuiBarPlot(data = data_wt, i= 4,sig_show ="line",result = result[[1]],ns = TRUE)
#提取结果
p <- PlotresultBar[[1]]
p

#提取方差分析或非参数检验结果
PlotresultBar[[2]]

## Row.names groups group mean SD
## 1 CF c CF 80.82814 6.287052
## 2 CK a CK 102.42726 6.217363
## 3 Rhi bc Rhi 90.60995 1.912997
## 4 WT b WT 95.17646 3.711328

  • 点柱图-解决柱状图无法展示样本信息的缺陷

result= aovMcomper2(data = data_wt, i= 5,method_Mc = "Tukey")
# # 提取多重比较结果
result[[1]]
## groups group
## WT b WT
## CK ab CK
## CF c CF
## Rhi a Rhi
PlotresultBox = aovMuiBoxBarP(data = data_wt, i= 5,sig_show ="abc",result = result[[1]],ns = TRUE)## [1] 5#提取图片
p = PlotresultBox[[1]]
p

#--line形式的差异显示方式
PlotresultBox = aovMuiBoxBarP(data = data_wt, i= 5,sig_show ="line",result = result[[1]],ns = FALSE)

## [1] 5#提取图片
p = PlotresultBox[[1]]
p

EasyStat包为什么能完美解决差异分析呢.因为他比你想象的要强大。下面使用连线形式展示差异,显著的差异按照标注星号,不显著的标注ns。

result= aovMcomper2(data = data_wt, i= 6,method_Mc = "Tukey")
PlotresultBox = aovMuiBoxBarP(data = data_wt, i= 6,sig_show ="line",result = result[[1]],ns = TRUE)
## [1] 6#提取图片
p1 = PlotresultBox[[1]]
p1

PlotresultBox = aovMuiBoxBarP(data = data_wt, i= 6,sig_show ="line",result = result[[1]],ns = FALSE)
## [1] 6#提取图片
p2 = PlotresultBox[[1]]
p2

library(patchwork)
p1|p2

多指标模式

多个指标正态检验和方差齐性分析(MuiNorCV)

  • num:代表您想要进行统计的列,这里可以输入多个列,只需要指定列号即可:例如:num = c(4:6)

  • method_cv:代表选择方差齐性的方法,有两种可供选择:“bartlett.test”和“leveneTest”

dim(data_wt)## [1] 24 12# ?MuiNorCV
# 使用案例
norCv = MuiNorCV(data = data_wt,num = c(4:10),method_cv = "leveneTest")
#展示正态检验和方差齐性结果
norCv
## DI cor CV
## [1,] "AP" "TRUE" "TRUE"
## [2,] "bac" "TRUE" "FALSE"
## [3,] "fun" "TRUE" "TRUE"
## [4,] "micro" "TRUE" "TRUE"
## [5,] "NH4.N" "TRUE" "TRUE"
## [6,] "NO3.N" "TRUE" "FALSE"
## [7,] "pH" "TRUE" "TRUE"

这里由于指标比较多,所以我将结果进行简化,直接使用Ture和False来提示大家,cor是正态性检测组,cv是方差齐性检测。

多个指标方差检验(MuiaovMcomper和MuiaovMcomper2)

  • method_Mc:同aovMcomper可选择的方法一样

# ? MuiaovMcomper

result = MuiaovMcomper(data = data_wt,num = c(4:6),method_Mc = "Tukey")
#提取每个指标方差检验多重比较结果
result
## AP bac fun
## CF a a a
## CK c b a
## Rhi b c b
## WT bc ab a
# AP bac fun
# CF a a a
# CK c b a
# Rhi b c b
# WT bc ab a
# #使用案例
result = MuiaovMcomper2(data = data_wt,num = c(4:6),method_Mc = "Tukey")
#提取每个指标方差检验多重比较结果
result
## AP bac fun
## CF c c b
## CK a ab b
## Rhi bc a a
## WT b b b
# AP bac fun
# CF c c b
# CK a ab b
# Rhi bc a a
# WT b b b

同样,多个指标展示按照指标每列为一组检测结果。

多个指标非参数检验(MuiKwWlx)

  • data:输入数据框,第一列为样本编号,第二列为分组,注意分组标签必须设定为group,第三列以后就是测定或者收集的指标了

  • num:代表您想要进行统计的列,这里可以输入多个列,只需要指定列号即可:例如:num = c(4:6)

# ? MuiKwWlx
# #使用案例
result = MuiKwWlx2(data = data_wt,num = c(4:6))
#提取每个指标非参数检验多重比较结果
result
## AP bac fun
## CF d c bc
## CK a b b
## Rhi c a a
## WT b bc c
result = MuiKwWlxPair(data = data_wt,num = c(4:6))
#提取每个指标非参数检验多重比较结果
result
## AP bac fun
## CK a a a
## Rhi b bc b
## CF c b bc
## WT d c c

结果和多组方差分析结果一样。很好用于后面的出图,同样也适合自己导入数据,使用出图

多组数据可视化

  • 柱状图(MuiPlotresultBar)

多组指标分开出图,比较麻烦的是图形的保存,如果还需要让你一个一个保存图片,那也是相当繁琐的,所以这里我设置了自动保存,也只有这种方式是自动保存,其他单个,多组分面图形较少,所以就可以自己保存。我让该函数自动保存每个指标的出图文件到当前文件夹中。这些文件以该指标名称命名;

# ?MuiPlotresultBar
# # #使用案例
result = MuiKwWlx2(data = data_wt,num = c(4:6))
result
## AP bac fun
## CF d c bc
## CK a b b
## Rhi c a a
## WT b bc c
# #结果直接输出到文件夹中
MuiPlotresultBar(data = data_wt,num = c(4:6),result = result ,sig_show ="line")

  • 箱线图(MuiPlotresultBox)

# ?MuiPlotresultBox
#使用案例
result = MuiKwWlx(data = data_wt,num = c(4:8))
result
## AP bac fun micro NH4.N
## CK d c c b b
## Rhi c b bc a ab
## CF b bc b a a
## WT a a a a ab
# #直接出图到文件夹中
MuiPlotresultBox(data = data_wt,num = c(4:8),result = result,sig_show ="abc")

  • 线柱图

# ?MuiPlotresultBox
#使用案例
result = MuiKwWlx2(data = data_wt,num = c(4:8))
result
## AP bac fun micro NH4.N
## CF d c bc b b
## CK a b b b a
## Rhi c a a a ab
## WT b bc c b ab
# #直接出图到文件夹中
MuiPlotReBoxBar(data = data_wt,num = c(4:8),result = result,sig_show ="line")
多组差异结果展示2

  • 分面展示柱状图:(FacetMuiPlotresultBar)

  • ncol:代表分面展示每一行放几张图

# ?FacetMuiPlotresultBar
# # 使用案例

result = MuiaovMcomper2(data = data_wt,num = c(4:7),method_Mc = "Tukey")
result
## AP bac fun micro
## CF c c b b
## CK a ab b b
## Rhi bc a a a
## WT b b b b
result1 = FacetMuiPlotresultBar(data = data_wt,num = c(4:7),result = result,sig_show ="abc",ncol = 4 )
p <- result1[[1]]
p

  • 设置分面排布顺序

fac.level参数,指定即可。

colnames( data_wt)[4:7]## [1] "AP" "bac" "fun" "micro"result1 = FacetMuiPlotresultBar(data = data_wt,num = c(4:7),result = result,sig_show ="abc",ncol = 4,
fac.level = c("fun","bac","AP","micro") )
p <- result1[[1]]
p

  • 分面展示箱线图:(FacetMuiPlotresultBox)

# ?FacetMuiPlotresultBox
# #使用案例
result = MuiKwWlx2(data = data_wt,num = c(4:7))
result
## AP bac fun micro
## CF d c bc b
## CK a b b b
## Rhi c a a a
## WT b bc c b
#
result1 = FacetMuiPlotresultBox(data = data_wt,num = c(4:7),result = result,sig_show ="abc",ncol = 4 )
p <- result1[[1]]
p

#指定分面顺序
colnames( data_wt)[4:7]
## [1] "AP" "bac" "fun" "micro"result1 = FacetMuiPlotresultBox(data = data_wt,num = c(4:7),result = result,sig_show ="abc",ncol = 4,
fac.level = c("fun","bac","AP","micro") )
p <- result1[[1]]
p

  • 分组柱状图

result = MuiKwWlx(data = data_wt,num = c(4,5,7))
result1 = GroupBar(data = data_wt,num = c(4,5,7),result = result,sig_show ="abc")
p <- result1[[1]]
p

注意以上三种分面展示的目前仅支持字母标注显著性,连线形式的尚未添加。

  • 多个分组可视化:GroupBar

使用这种方式可视化一定要注意,坐标轴量度,不同指标范围不一样,因此,单位差距极大的指标一起展示就不太好看了。其次,这里使用line展示会非常混乱,所以我去除了line展示的方式,所以这里没有选择,只能是默认的abc。但是我保留了这个参数,希望以后又更好的方式。

  • ylimit = 1.2 :设置Y轴上界范围

colnames(data_wt)## [1] "ID" "group" "AK" "AP" "bac" "fun" "micro" "NH4.N" "NO3.N"
## [10] "pH" "SOM" "TN"
result = MuiKwWlx2(data = data_wt,num = c(8:10))
result = GroupBar(data = data_wt,num = c(8:10),result = result,sig_show ="abc",ylimit = 1.2)
# output result
p <- result[[1]]
p

这里我想告诉大家,所有的出图函数都可以提取数据,并且自己设计代码出图。这里我们提取数据,直接出图也是可以的

A = result[[2]]

p<-ggplot(A, aes(x=group , y=mean,group = name ))+
geom_bar(aes(colour= name,fill = name),stat = "identity", width = 0.9,position = "dodge") +

geom_errorbar(aes(ymin=mean - SD,
ymax=mean + SD,group = name),
colour="black",width=0.1,size = 1,position = position_dodge(.9))+

scale_y_continuous(expand = c(0,0))+#,limits = c(0,a)
labs(
y="count"
# y=name_i
# title = paste("Normality test",p1,"Homogeneity of variance",p2,sep = ":")
) +
geom_text(data=A, aes(x=group, y=mean +SD ,label=groups),position = position_dodge(.9),vjust = -1)+
guides(color=guide_legend(title = NULL),shape=guide_legend(title = NULL))
p

单个指标一体化分析(SingleStat)

这个函数可以将我们的目标列做正态检验和方差齐性,然后根据结果选择方差检验或者多重比较方法,最后选择自己需要的出图方式和显著性标记方式展示。

  • data:输入数据框,第一列为样本编号,第二列为分组,注意分组标签必须设定为group,第三列以后就是妮妮测定或者收集的指标了

  • i:代表您想要进行统计的列,比如:第三列:i = 3

  • method_Mc:选择需要使用的多重比较方法,这里又多种方法可供选择:method_Mc == “LSD”;method_Mc == “SNK”;method_Mc == “Duncan”;method_Mc == “scheffe”

  • plot:可以选择需要的出图类型,柱状图和箱线图

# ?SingleStat
# # #使用案例
# #输出结果第一个为图片,第二个是统计结果,第三个是统计方法
result = SingleStat(data = data_wt,plot = "bar",method_Mc = "Tukey",i= 4,sig_show ="abc")
## [1] "aov"# #导出图片
p = result[[1]]
p

可以更换出图方式,当然这里会自动判断使用方差分析,还是非参数检验。选择结果会展示在结果的第三个列表中,可自行查看。

# ?SingleStat
# # #使用案例
# #输出结果第一个为图片,第二个是统计结果,第三个是统计方法
result = SingleStat(data = data_wt,plot = "box",method_Mc = "Tukey",i= 4,sig_show ="abc")
## [1] "aov"# 提取差异检测结果
result[[2]]
## groups group
## WT b WT
## CF c CF
## Rhi bc Rhi
## CK a CK
# 提取差异检测放啊
result[[3]]
## [1] "aov"# #导出图片
p = result[[1]]
p

多个指标一体化分析(MuiStat)

实现了多个指标批量整体运行;这个函数可以将我们的目标列做正态检验和方差齐性,然后根据结果选择方差检验或者多重比较方法,最后选择自己需要的出图方式和显著性标记方式展示。

plottype:输出图形是分面展示plottype =mui,还是单张展示:plottype == “single”

# ?MuiStat
#使用案例
result = MuiStat(data = data_wt,num = c(4:7),method_cv = "leveneTest",method_Mc = "Tukey",sig_show = "abc",ncol = 4,plot = "box",plottype = "mui")
p <- result[[1]]
p

# 提取方差检测的列
result$aov

## [1] 4 6 7# 提取f非参数检测的列
result$wlx
## [1] 5# 提取差异检测结果
result$table
## AP fun micro bac
## CF c b b a
## CK a b b b
## Rhi bc a a c
## WT b b b bc

高级运用:微生物组alpha多样性可视化

library(microbiome)
library(ggClusterNet)
library(phyloseq)
library(tidyverse)
data(ps)

tab <- richness(ps)
head(tab)
## observed chao1
## KO1 2342 2670.889
## KO2 2348 2669.335
## KO3 2014 2335.322
## KO4 2071 2399.030
## KO5 1885 2231.126
## KO6 2205 2487.501
map = sample_data(ps)
tab$id = row.names(tab)
tab$group = map$Group
data = tab %>%
select(id,group,everything())

result = MuiKwWlx2(data = data,num = c(3:4))
result
## observed chao1
## KO c b
## OE a a
## WT b ab
result1 = FacetMuiPlotresultBox(data = data,num = c(3:4),result = result,sig_show ="abc",ncol = 1 )
p = result1[[1]] + theme_bw()
p

res = FacetMuiPlotresultBar(data = data,num = c(3:4),result = result,sig_show ="abc",ncol = 1)
p2 = res[[1]] + theme_bw() +
guides(fill = guide_legend(title = NULL))
p2

res = FacetMuiPlotReBoxBar(data = data,num = c(3:4),result = result,sig_show ="abc",ncol = 1)
p3 = res[[1]] + theme_bw() + guides(fill = guide_legend(title = NULL))
p3

高级使用:微生物组组成可视化

ps_rela = transform_sample_counts(ps, function(x) x / sum(x) );ps_rela## phyloseq-class experiment-level object
## otu_table() OTU Table: [ 2861 taxa and 18 samples ]
## sample_data() Sample Data: [ 18 samples by 10 sample variables ]
## tax_table() Taxonomy Table: [ 2861 taxa by 7 taxonomic ranks ]
## phy_tree() Phylogenetic Tree: [ 2861 tips and 2860 internal nodes ]
psdata <- ggClusterNet::tax_glom_wt(ps =ps_rela ,ranks = "Phylum")
otu = as.data.frame((vegan_otu(psdata)))
map = as.data.frame(sample_data(psdata))
map$ID = row.names(map)
mapp = map[,c(ncol(map),1)]
colnames(mapp) = c("ID","group")
data = cbind(mapp,otu)
# 开始使用MuiKwWlx函数进行非参数检验。
dim(data)
## [1] 18 18result = MuiKwWlx2(data = data,num = c(3:ncol(data)))
str(data)
## 'data.frame': 18 obs. of 18 variables:
## $ ID : chr "KO1" "KO2" "KO3" "KO4" ...
## $ group : Factor w/ 3 levels "KO","OE","WT": 1 1 1 1 1 1 2 2 2 2 ...
## $ Acidobacteria : num 0.00379 0.00349 0.00246 0.00218 0.00193 ...
## $ Actinobacteria : num 0.256 0.405 0.279 0.282 0.172 ...
## $ Armatimonadetes : num 0.00012 0.000138 0.000128 0.000105 0.000103 ...
## $ Bacteroidetes : num 0.0308 0.0267 0.075 0.0314 0.052 ...
## $ Candidatus_Saccharibacteria: num 0.000391 0.000553 0.000308 0.000105 0.001078 ...
## $ Chlamydiae : num 0.000361 0.000194 0.000513 0.00021 0.000103 ...
## $ Chloroflexi : num 0.01417 0.01818 0.00567 0.01664 0.01453 ...
## $ Firmicutes : num 0.01622 0.01998 0.01492 0.03212 0.00786 ...
## $ Ignavibacteriae : num 1.20e-04 1.94e-04 2.57e-05 1.05e-04 0.00 ...
## $ Nitrospirae : num 0.000873 0.000803 0.000308 0.000499 0.000411 ...
## $ Planctomycetes : num 0.000572 0.002518 0.001694 0.000682 0.000693 ...
## $ Proteobacteria : num 0.655 0.497 0.611 0.619 0.736 ...
## $ Spirochaetes : num 0.000692 0.000443 0.001155 0.000918 0.001438 ...
## $ Thaumarchaeota : num 3.01e-05 8.30e-05 0.00 0.00 0.00 ...
## $ Unassigned : num 0.01902 0.02247 0.00634 0.01346 0.01109 ...
## $ Verrucomicrobia : num 0.001986 0.002048 0.001463 0.000997 0.001001 ...
res <- MuiPlotStackBar(data = data,i = c(3:ncol(data)) ,result = result,errbar = F)
#--提取图片
p3 = res[[1]]
p3

#--提取数据
plotdata = res[[2]]

result1 = FacetMuiPlotresultBar(data = data,num = c(3:ncol(data)),result = result,sig_show ="abc",ncol = 3 )
p <- result1[[1]]
p

#---可视化方案3
result1 = FacetMuiPlotresultBox(data = data,num = c(3:ncol(data)),result = result,sig_show ="abc",ncol = 3 )
p <- result1[[1]]
p

更新日志

2021年11月 - 修改排序出图字母排序顺序,按照处理丰度大小从大到小排列 - 修正堆叠柱状图错误

2021年5月 - 增加pair的比对,并做连线柱状图函数以Pair结尾,出图以2 结尾。

2020年11月更新:- 将ord_sig函数内置到差异分析中,改变水平排布顺序,更加符合常规认识。,单个指标方差检验和非参数检验已完成 - KwWlx分参数检验字母标记混乱问题修正。

:2020年7月 - 修改整个R包,包括包名;安装EasyStat包,本次安装包只要你可以用下载,应该可以安装成功。因为我已经将全部的依赖都写好了. - 增加多组展示同一张图的可视化方式。- 修改字母标记无法显示完整问题 - 增加line展示差异ns是否显示的参数。- 增加线柱图展示。参考(NBT线虫工程菌)。

(0)

相关推荐