2010-01-22 4 views
5

에서 지터 플롯에 하위 그룹 레이블을 추가 내가 레이블을 추가 할 + geom_text(aes(x=ds, y=128, label=sum(size)), size=2)를 사용하려고했습니다내가 지터 플롯과 같은 거의-상자 그림을 ggplot2

aggregate(list(size=dt$size), list(dt$ds, dt$test), sum) 

    Group.1 Group.2 size 
1  b217  se 9847 
2  c10  se 97296 
3  c613  se 21633 
4  c7  se 207540 
... 

, 그러나 나는 각 위치에 동일한 레이블을 얻을 - 어떻게의 합계를 얻을 수 있습니다 : - 음모의 예를 들어 크기가 여기 합계 데이터의 바로 그 섹션?

편집

: 지금 어디에 있어요 여기 가있어 - 내가 undefined columns selected 오류 ... 어딘가에 - 어쩌면 난 그냥

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 ~ .) 

이 코드가 작동하지 않는 잘못된 방향으로 갈거야 . 다중 data= 섹션 때문일 수 있습니까?

+0

에 새 열을 만들 ddply을 알려줍니다. 재현 가능한 예제가 없으면 더 많은 것을 말하기 어렵습니다. – hadley

+1

해결책을 게시했습니다. 불행히도 샘플 데이터를 제공하지 않았기 때문에 무작위 데이터를 다시 만들어야했습니다. 이는 솔루션이 자신의 데이터를 반영 할 수도 있고 반영하지 않을 수도 있음을 의미합니다. 나중에 참조 할 수 있도록 문제의 최소한의 예를 만들고 문제를 재현하는 데 사용할 수있는 샘플 데이터를 붙여 넣으면 더 많은 답변을 얻을 수 있습니다. 어쨌든 도움이되기를 바랍니다. – Andrie

답변

6

샘플 데이터를 제공하지 않으므로 임의의 데이터를 사용하여 솔루션을 시연합니다.

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~.) 

레이블 데이터가 들어있는 데이터 프레임을 만듭니다. summarize의 사용에 유의하십시오. 이것은 그 코드가 나에게 잘 보인다는 data.frame 빠른 읽기에서

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) 

enter image description here

+0

이것은 정확히 내가 필요로하는 것처럼 보인다. 감사! – Thelema

+1

@ Thelema, 도움이 될 수있어서 기쁩니다. 현상금은 자동으로 발생하지 않으므로 현상금을 할당하십시오. – Andrie

+0

. 좋은. 그리고 빨리 :) –

1

여기를보세요. 도움이 될 수도 있습니다. Adding direct labels to ggplot2 and lattice plots

+0

directlabels가 내 문제를 해결하지 못하고 지터 플롯에 잘 맞지 않으며 내 범례 라벨을 사용하여 제공된 라벨 대신 차트에 라벨을 지정하려고합니다. – Thelema