2012-03-19 2 views
3

나는 다른 질문을하기 위해 재현 할 수있는 예를 만들기 시작했으며 그걸 넘어 설 수도 없습니다. 어쨌든 저는 범주 형 데이터를면 처리 된 막대 그래프로 그려 봅니다. 그래서 나는 CO3 (하단의 코드)를 사용하여 자신의 데이터 세트를 만들었습니다. 단지 x를 플로팅하는 것은 정상적으로 보입니다. enter image description hereggplot 설명되지 않은 결과

그러나 패싯을 만들 때 나는 펑키합니다. 모든 것이 모두 동일하다는 것을 보여줍니다. 이 모든 하위 그룹을 나타냅니다으로 이해가되지 않습니다 enter image description here

는 동등한 비율을했다 밖으로 데이터의 ftable에 의해 입증되지 않도록 온 : 내가 뭐하는 거지

    Type Quebec Mississippi 
outcome Treatment       
none nonchilled   7   6 
     chilled    4   7 
some nonchilled   6   4 
     chilled    5   5 
lots nonchilled   5   4 
     chilled    6   3 
tons nonchilled   3   7 
     chilled    6   6 

잘못된?

library(ggplot2) 
set.seed(10) 
CO3 <- data.frame(CO2[, 2:3], outcome=factor(sample(c('none', 'some', 'lots', 'tons'), 
      nrow(CO2), rep=T), levels=c('none', 'some', 'lots', 'tons'))) 
CO3 
x <- ggplot(CO3, aes(x=outcome)) + geom_bar(aes(x=outcome)) 
x 
x + facet_grid(Treatment~., margins=TRUE) 

with(CO3, ftable(outcome, Treatment, Type)) 

편집 : 브라이언 설명이 문제는 데이터를 스택해야 할 경우에 자신을 발견 할 수있는 쉬운 일이다. 버그가

IDer <- function(dataframe, id.name="id"){ 
    DF <- data.frame(c=1:nrow(dataframe), dataframe) 
    colnames(DF)[1] <- id.name 
    return(DF) 
} 

IDer(mtcars) 

답변

5

있다 : 이상 ggplot의 다음 버전까지이 와서 내가 신속하게 데이터 프레임에 ID 열을 추가하는 바보 같은 작은 편의 기능을 만들었습니다 (나는 해들리는이 문제를 알고 있다고 가정) ggplot2의 0.9.0 릴리스에서 facet_grid() 및 중복 된 행에 관한 것입니다. https://github.com/hadley/ggplot2/issues/443

임시 해결 방법은 복제를 중단하기 위해 더미 열을 추가하는 것입니다.

CO3$dummy <- 1:nrow(CO3) 

ggplot(CO3, aes(x=outcome)) + 
    geom_bar(aes(x=outcome)) + 
    facet_grid(Treatment~., margins=TRUE) 

enter image description here

+0

감사하는 것은 나를 미치게했다 그것을 위해. ggplot2의 다음 릴리스에서 수정 사항이 있을지 궁금해합니다. –

관련 문제