【发布时间】:2015-06-17 11:02:10
【问题描述】:
我想使用stats_summary 方法在箱形图组之间添加一个边缘空间。
这是我的问题的一个小例子
library(ggplot2)
library(reshape2)
data1 <- (lapply(letters[1:5], function(l1) return(matrix(rt(5*3, 1), nrow = 5, ncol = 3, dimnames = list(cat2=letters[6:10], cat3=letters[11:13])))))
names(data1) <- letters[1:5]
data2 <- melt(data1)
customstats <- function(x) {
xs <- sort(x)
return(c(ymin=min(x), lower= mean(xs[xs < mean(x)]), middle = mean(x) , upper = mean(xs[xs > mean(x)]), ymax=max(x)))
}
ggplot(data2, aes(x=cat2, y=value, fill=cat3), width=2) +
stat_summary(fun.data = customstats, geom = "boxplot",
alpha = 0.5, position = position_dodge(1), mapping = aes(fill=cat3))
结果如下图。
我想为每个“cat2”实现视觉分离,并在箱线图组之间添加一个“空格”(由于我有一个自定义统计信息,因此我仅限使用 stats_summary)。我该怎么做?
【问题讨论】:
-
可能最安全的选择是在手动预计算数据上使用
geom_bar。实际上,这是我看到的唯一可能的方法。 -
不理想,但您可以使用构面:
+ facet_grid(.~cat2, scales = "free_x") -
这可以在一张图上工作,是的。在我的特殊情况下(不在示例中),我已经有一个基于附加变量的 facet_grid,因此无法使用您的解决方案。