在Rstudio中修改Tukey HSD 95%家族误差率置信区间图

4

我想知道如何改变Tukey's HSD图的坐标轴,以便缩短单词长度,使每个比较都适合并且不显得荒谬。

如果您能帮助我编写更改轴标签、字体大小和颜色的代码,那将非常有帮助。

图中有很多比较,因此我希望通过改变它们的颜色来突出显示那些重要的比较(其间隔不在“0”线上)。

`Gastropods = read.csv(file = "MaroubraZones.csv", header = TRUE)
boxplot(Abundance ~ Zone*Species,data = Gastropods, names = c("A.high", "A.mid", "A.low", "C.high", "C.mid", "C.low", "N.high", "N.mid", "N.low"))
Gastropods.ANOVA = aov(Abundance ~ Zone * Species, data = Gastropods)
hist(Gastropods.ANOVA$residuals)
plot(Gastropods.ANOVA)


Gastropods$LOGAbundance = log10(Gastropods$Abundance + 1)

Gastropods$SQRTAbundance = sqrt(Gastropods$Abundance + 1)

summary(Gastropods.ANOVA)
summary(Gastropods$SQRTAbundance.ANOVA)

interaction.plot(Gastropods$Zone, Gastropods$Species, Gastropods$Abundance, main= "Gastropod Interaction Plot", xlab = "Gastropod Zone", ylab= "Mean of Gastropod Abundance",legend = FALSE))

interaction.plot(Gastropods$Zone, Gastropods$Species, Gastropods$Abundance, main= "Gastropod Interaction Plot", xlab = "Gastropod Zone", ylab= "Mean of Gastropod Abundance", legend = FALSE)                 


TukeyHSD(Gastropods.ANOVA)
tuk<-TukeyHSD(Gastropods.ANOVA)
plot(tuk)`

如您所见,这些轴线很糟糕,我想要突出显示零区间之外的重要数值。

enter image description here


2
你能贴出你想要的图片链接吗? - Barett
2
提供你已经尝试/得到的可能是个好主意。将你的问题分成多个问题也会很有帮助,每个问题都针对你当前面临的任务/问题。 - Steffen Winkler
2
欢迎来到SO!请提供一个可工作的示例(请参阅stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example),以便我们确切地知道您要做什么。如果您可以将图像上传到某个地方并发布链接,那么有足够特权的人就可以为您在问题中包含它。 - nico
人们会继续进行反对投票,直到您提供了您的代码最小示例、数据,并向我们展示(或解释)您试图做什么。在这里,草稿纸绘图完全可接受。 - Brandon Bertelsen
1
我编辑了你的帖子后点了个赞,这样你就能得到更多的浏览量。当我刚来这里时,我也像你一样写帖子,但后来我意识到,更好的方式是提出更简洁、不那么个人化的问题。这是因为SO不像一个讨论论坛(至少不是SO的这个部分),而更像一个快速参考资源,供遇到编码问题的人使用。他们需要阅读的内容越少,理解你的问题及其解决方案就越容易。干杯! - Hack-R
1个回答

17

试试这个:

TukeyHSD(Gastropods.ANOVA)
tuk<-TukeyHSD(Gastropods.ANOVA)
psig=as.numeric(apply(tuk$`Zone:Species`[,2:3],1,prod)>=0)+1
op=par(mar=c(4.2,9,3.8,2))
plot(tuk,col=psig,yaxt="n")
for (j in 1:length(psig)){
axis(2,at=j,labels=rownames(tuk$`Zone:Species`)[length(psig)-j+1],
     las=1,cex.axis=.8,col.axis=psig[length(psig)-j+1])
}
par(op)

您将会得到类似于这个图的东西 enter image description here


嗨 Robert。那看起来棒极了,正好是我想要的。然而,我遇到了一个问题。当我将你提供的代码插入到 R 中时,我的一些轴标签被截断了。你可以在这里看到:http://gyazo.com/971e70712dbced9dd9444afa702a86c4 有什么建议可以解决这个问题吗? - JoshM8
2
似乎您没有使用par(mar=c(4.2,9,3.8,2))更改边距。如果已经尝试过,请将9增加到9.5或更高。 - Robert
那个可行。再次感谢你。我刚刚发布了另一个(单独的)问题,如果你感兴趣,请帮忙解答!此外,我想给你点赞,但好像对于初学者来说是不被允许的。如果有其他形式的点赞被允许,请告诉我,我会奖励你的。 - JoshM8
感谢@Hack-R以及您上面的评论。这对我来说都是非常新的。我对我在这里得到的帮助感到满意,所以有没有办法关闭这个主题,以便人们不会被误导?也许您可以提高一下我在这个网站上的另外两个问题的知名度哈哈! - JoshM8
@JoshM8 非常感谢您的提问。为了有效地关闭该线程,只需点击复选框将Robert的答案标记为解决方案即可。 - Hack-R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接