我想制作一个包含两个不同因素的箱线图:
df <- data.frame(f1=factor(rbinom(100, 1, 0.45), label=c("m","w")),
f2=factor(rbinom(100, 1, 0.45), label=c("young","old")),
boxthis=rnorm(100))
ggplot(aes(y = boxthis, x = f2, fill = f1), data = df) + geom_boxplot()
我还想根据分位数重新定义晶须:
f <- function(x) {
r <- quantile(x, probs = c(0.025, 0.25, 0.5, 0.75, 0.975))
names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
r
}
ggplot(aes(y = boxthis, x = f2, fill = f1), data = df) + stat_summary(fun.data = f, geom="boxplot")
但是,当使用 stat_summary() 时,x 轴上同一位置的两个不同箱线图将绘制在彼此的顶部,而不是像调用 geom_boxplot() 时那样彼此相邻。有更好的方法吗?
最佳答案
只需将 position="dodge"
添加到 stat_summary()
即可。对于 geom_boxplot()
position="dodge"
已经是默认值,因此您不必编写它,但对于 stat_summary()
你必须自己定义这个。
ggplot(aes(y = boxthis, x = f2, fill = f1), data = df) +
stat_summary(fun.data = f, geom="boxplot",position="dodge")
关于r - 如何制作两级箱线图,并在 R 中重新定义 mustache ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18328612/