赖江山老师在科学网分享了Francois Gillet编写的两个方差分析多重比较的函数 boxplert()和boxplerk()【来源Numerical Ecology with R (second Edition)】
我看了一下出图的部分是用boxplot函数绘制的,作为一个ggplot2的爱好者自己尝试着用ggplot2把函数boxplert()重新写了一下。在重写的过程中收获几个问题:X 轴如何按照给定的数据顺序而不是系统默认的编码顺序
显著性标签怎么加,关键是位置放在哪
绘图的颜色如何调整
在ggplot中加annotate的方法,位置与字体的设置
把ggplot2封装到函数里面合适吗?我觉得不写成函数会让出来的图更加易于调整,ggplot2 本来很灵活,写到函数里面反而限制了她的妖娆。
现在我们分别来测试一下,为了演示X轴的摆列顺序我把InsectSprays数据集写出来打乱里面本来按顺序的分组信息。rm(list=ls())
setwd("C:\\Users\\Administrator\\Desktop\\boxplot")
library(agricolae)
library(stats)
data(InsectSprays)
# InsectSprays
# getwd()
# InsectSprays
InsectSprays
###
library(agricolae)
library(stats)
先看看之前的函数boxplert()出图的效果:# 检验方差分析假设
shapiro.test(resid(aov(InsectSprays$count ~ InsectSprays$spray)))
boxplert(
InsectSprays$count,
InsectSprays$spray,
ylab = "yield",
xlab = "virus",
bcol = "orange",
p.adj = "holm"
)
输出:$`comparison`
mean se sd min max n group
A 16.666667 1.7936476 6.213378 9 26 12 a
B 2.083333 0.5701984 1.975225 0 7 12 b
C 15.333333 1.2329647 4.271115 7 21 12 a
D 3.500000 0.5000000 1.732051 1 6 12 b
E 14.500000 1.3623732 4.719399 7 23 12 a
F 4.916667 0.7225621 2.503028 2 12 12 b
$p.value
[1] 3.182584e-17
再看新函数ggl