我发现boxplot()生成的情节如下:
我有一个数据中心,它的头部是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
X1H 8 2 0 0 0 2 2 2 6 2 4 2 4 2 4 8 2 6 0 10 0 6 4 0 6 2 8 2 2 8 6 2 2 2 8
X2H 2 0 2 2 2 4 0 4 0 0 2 2 2 2 0 6 2 2 2 0 0 0 2 0 2 4 2 2 2 2 2 2 4 2 0
X3H 0 2 0 0 2 2 0 0 0 4 2 2 2 2 2 0 2 2 0 0 2 0 0 2 2 2 0 6 2 0 2 0 6 0 2
X4H 0 0 0 2 0 2 0 0 2 0 2 0 2 0 0 2 0 6 0 2 2 2 2 0 0 2 4 2 2 2 0 2 4 2 6
X5H 2 0 0 0 2 0 0 2 0 0 2 0 0 2 2 2 0 2 0 2 0 2 0 6 0 2 4 4 0 2 2 0 2 0 4
X6H 2 0 2 0 2 2 0 2 2 0 2 2 2 0 0 2 2 2 0 0 2 0 2 0 0 2 2 2 2 0 2 0 2 2 4
我想要一个方格图,每一栏都显示:
所以我找到了这个,它很有魅力:
min.mean.sd.max <- function(x) {
r <- c(min(x), mean(x) - sd(x), mean(x), mean(x) + sd(x), max(x))
names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
r
}
p1 <- ggplot(aes(y = value, x = factor(group)), data = mydata)
p1 <- p1 + stat_summary(fun.data = min.mean.sd.max, geom = "boxplot")
但在第二种情况下,dataframe如下所示:
value group
1 0.56025153 1
2 0.88368829 1
3 0.06555686 1
4 0.44767630 1
5 0.90424061 2
6 0.96331650 2
因此,我不知道在我的例子中,aes()中应该放入什么内容。
发布于 2016-06-22 15:31:33
我在下面创建了一个dataframe。
> data
X X1 X2 X3 X4
X1H 8 2 0 0
X2H 2 0 2 2
X3H 0 2 0 0
X4H 0 0 0 2
X5H 2 0 0 2
X6H 2 0 2 0
然后,利用熔融函数对其进行整形。
data.melt<-melt(data, id="X")
假设您想用自己的计算绘制一个盒子图,我计算了每一列的平均值,sd,min,max。
data.sum<-ddply(data.melt, .(variable), summarise,
mean = mean(value),
sd = sd(value),
min = min(value),
max = max(value))
然后,您可以用下面的代码为每一列创建一个框图。
ggplot(data.sum, aes(x=variable))+geom_boxplot(aes(ymin =min, lower = mean-sd, middle = mean, upper = mean+sd, ymax =max), stat="identity")
https://stackoverflow.com/questions/37970543
复制相似问题