R 将子组标签添加到ggplot2中的抖动图

R 将子组标签添加到ggplot2中的抖动图,r,ggplot2,label,R,Ggplot2,Label,我有一个近似箱线图的抖动图: dt <- rbind(se,cb,cb.se) qplot(ds, size, data=dt, geom="jitter", colour=root, facets = test ~ .) 我曾尝试使用+geom_text(aes(x=ds,y=128,label=sum(size)),size=2)添加标签,但我在每个位置都得到了相同的标签-我如何才能得到该部分数据的总和 编辑: 这就是我现在的处境——也许我只是走错了方向 data

我有一个近似箱线图的抖动图:

dt <- rbind(se,cb,cb.se)
qplot(ds, size, data=dt, geom="jitter", colour=root, facets = test ~ .)
我曾尝试使用
+geom_text(aes(x=ds,y=128,label=sum(size)),size=2)
添加标签,但我在每个位置都得到了相同的标签-我如何才能得到该部分数据的总和

编辑: 这就是我现在的处境——也许我只是走错了方向

data <- rbind(se,cb,cb.se)
labels <-ddply(data, c("ds", "test"), function(df) sum(df$size))
ggplot(data=data, aes(x=ds)) +
  geom_jitter(aes(y=size, colour=root)) +
  geom_text(data=labels, aes(x=ds, y=600, label=V1), size=3) +
  facet_wrap(test ~ .)

数据请看这里。这可能会有帮助

由于您没有提供示例数据,我将演示一个使用随机数据的解决方案

set.seed(1)
n <- 100
dat <- data.frame(
    ds = sample(paste("x", 1:8, sep=""), n, replace=TRUE),
    size = runif(n, 0, 250),
    root = sample(c(TRUE, FALSE), n, replace=TRUE),
    test = sample(c("se", "cb", "cb.se"), n, replace=TRUE) 
)


head(dat)
  ds      size  root  test
1 x3 163.68098  TRUE cb.se
2 x3  88.29932  TRUE    se
3 x5  67.56504 FALSE    cb
4 x8 248.17102  TRUE    cb
5 x2 158.37332  TRUE    cb
6 x8  53.30203 FALSE cb.se

p <- ggplot(dat, aes(x=ds, y=size)) + 
  geom_jitter(aes(colour=root)) + 
  facet_grid(test~.) 

directlabels无法解决我的问题,它在抖动图上的位置不好,它希望使用我的图例标签来标记图表,而不是提供的标签。快速阅读,我觉得这段代码不错。如果没有一个可复制的例子,很难说得更多。我已经发布了一个解决方案。不幸的是,由于您没有提供示例数据,我不得不重新创建随机数据。这意味着解决方案可能反映您自己的数据,也可能不反映您自己的数据。作为将来的参考,如果你对你的问题做一个最小的例子,并粘贴一些我们都可以用来重现你的问题的样本数据,你将吸引更多的答案。不管怎样,我希望它能帮上忙。这看起来正是我需要的。谢谢@Thelema,很高兴我能帮上忙。(记住分配赏金,因为这不是自动发生的)这是当之无愧的。美好的很快:)明白了。幸运的是,这也提醒了我。现在我知道怎么做了。
set.seed(1)
n <- 100
dat <- data.frame(
    ds = sample(paste("x", 1:8, sep=""), n, replace=TRUE),
    size = runif(n, 0, 250),
    root = sample(c(TRUE, FALSE), n, replace=TRUE),
    test = sample(c("se", "cb", "cb.se"), n, replace=TRUE) 
)


head(dat)
  ds      size  root  test
1 x3 163.68098  TRUE cb.se
2 x3  88.29932  TRUE    se
3 x5  67.56504 FALSE    cb
4 x8 248.17102  TRUE    cb
5 x2 158.37332  TRUE    cb
6 x8  53.30203 FALSE cb.se

p <- ggplot(dat, aes(x=ds, y=size)) + 
  geom_jitter(aes(colour=root)) + 
  facet_grid(test~.) 
labels <- ddply(dat, .(ds, test), summarize, size=round(sum(size), 0))
head(labels)
  ds  test size
1 x1    cb  193
2 x1 cb.se  615
3 x1    se  274
4 x2    cb  272
5 x2 cb.se  341
6 x2    se 1012

p + geom_text(aes(x=ds, label=size, y=128), data=labels, size=2)