Barplot有显着的差异和相互作用?

Jon*_*løv 10 plot interaction r significance

我想想象我的数据和ANOVA统计数据.通常使用带有添加线条的条形图来指示显着的差异和相互作用.你怎么用R做这样的情节?

这就是我想要的:

显着差异:

显着差异

重要的互动:

重要的互动

背景

我目前正在使用barplot2{ggplots}绘制条形图和置信区间,但我愿意使用任何包/程序来完成工作.为了得到我目前使用的统计数据TukeyHSD{stats}pairwise.t.test{stats}对差异和方差分析功能(一个aov,ezANOVA{ez},gls{nlme})的相互作用.

只是为了给你一个想法,这是我目前的情节: 带有CI的barplot2

Did*_*rts 9

当您使用barplot2()库中的函数时gplots,将使用此方法给出示例.

首先,在barplot2()函数的帮助文件中给出了barplot .ci.l并且ci.u是伪置信区间值.Barplot应保存为对象.

hh <- t(VADeaths)[1:2, 5:1]
mybarcol <- "gray20"
ci.l <- hh * 0.85
ci.u <- hh * 1.15
mp <- barplot2(hh, beside = TRUE,
               col = c("grey12", "grey82"),
               legend = colnames(VADeaths)[1:2], ylim = c(0, 100),
               cex.names = 1.5, plot.ci = TRUE, ci.l = ci.l, ci.u = ci.u)
Run Code Online (Sandbox Code Playgroud)

如果查看对象mp,它包含所有条形的x坐标.

 mp
     [,1] [,2] [,3] [,4] [,5]
[1,]  1.5  4.5  7.5 10.5 13.5
[2,]  2.5  5.5  8.5 11.5 14.5
Run Code Online (Sandbox Code Playgroud)

现在我使用上置信区间值来计算段的y值的坐标.细分将从比置信区间结束高1的位置开始.y.cord包含四行 - 第一行和第二行对应第一个栏,其他两行对应第二栏.根据每个条形对的置信区间的最大值计算最高y值. x.cord值只重复mp对象中相同的值,每次2次.

y.cord<-rbind(c(ci.u[1,]+1),c(apply(ci.u,2,max)+5),
          c(apply(ci.u,2,max)+5),c(ci.u[2,]+1))
x.cord<-apply(mp,2,function(x) rep(x,each=2))
Run Code Online (Sandbox Code Playgroud)

在绘制条形图之后,sapply()使用计算的坐标制作五个线段(因为这次有5组).

sapply(1:5,function(x) lines(x.cord[,x],y.cord[,x]))
Run Code Online (Sandbox Code Playgroud)

要绘制分段上方的文本,请计算x和y坐标,其中x是两个条形x值的中间点,y值是根据每个条形对的置信区间的最大值加上一些常数计算的.然后使用函数text()添加信息.

x.text<-colMeans(mp)
y.text<-apply(ci.u,2,max)+7
text(c("*","**","***","NS","***"),x=x.text,y=y.text)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述