r - 具有显着差异和相互作用的条形图?

标签 r plot interaction significance

我想可视化我的数据和方差分析统计数据。通常使用带有指示显着差异和交互作用的线条的条形图来执行此操作。你如何使用 R 制作这样的情节?

这就是我想要的:

显着差异:

significant differences

重要互动:

significant interactions

背景

我目前正在使用 barplot2{ggplots}绘制条形图和置信区间,但我愿意使用任何包/程序来完成工作。要获取我当前使用的统计信息 TukeyHSD{stats}pairwise.t.test{stats}用于差异和方差分析函数之一( aovezANOVA{ez}gls{nlme} )用于交互。

只是给你一个想法,这是我目前的情节:
barplot2 with CIs

最佳答案

当您使用功能时 barplot2()来自图书馆 gplots ,将给出使用这种方法的例子。

首先,按照 barplot2() 的帮助文件中的说明制作条形图。功能。 ci.lci.u是假置信区间值。条形图应保存为对象。

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)

如果你看对象 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

现在我使用置信区间上限来计算线段 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))

使用条形图后 sapply()使用计算出的坐标制作五个线段(因为这次有 5 组)。
sapply(1:5,function(x) lines(x.cord[,x],y.cord[,x]))

要在段上方绘制文本,计算 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)

enter image description here

关于r - 具有显着差异和相互作用的条形图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15535708/

相关文章:

linux - 期待,互动,然后再次期待

r - 对具有由该行中的另一个值指定的动态列范围的行求和

r - 如何从在 RStudio 中开发的 R 项目制作可执行文件?

matlab - 在 3d 中绘制 3 个向量

image - Matlab - 创建不同大小的子图的图形

electron - Electron 和 Angular JS 之间的交互

r - 在逻辑回归后使用 +1sd/-1sd 在 ggplot 中绘制交互图

r - 使用 ggplot 的 100% 堆叠区域

r - 如果两列的值相等,将结果列的值更改为 NA,如果不保持结果列的原始值 - 使用 R

r - 如何在ggplot2中创建等效的基本R图'type = b'?