2010-04-25 3 views
0

정보 성이없는 제목에 사과드립니다.ggplot geom_bar - 너비가 너무 넓은 바

> y=read.csv(textConnection(scan("",sep="\n",what="raw"))) 
"","org","art","type","length" 
"191","gk","Finish","short",4 
"147","ik","Attending","short",7 
"175","gl","Finish","long",11 
"192","il","Attending","long",95 
"144","gm","Finish","between",5 
"161","im","Attending","between",15 
"164","tu","Something","young",8 
"190","tv","Something","old",4 

> decompress=function(x)x[rep(1:nrow(x),x$length),-ncol(x)] 
> exstatus=decompress(y) 

다음 줄거리

ggplot(exstatus, aes(x=type, fill=art))+ 
geom_bar(aes(y=..count../sum(..count..)),position="dodge") 

문제는이 오른쪽 바 ("젊은" "오래된") 너무 두꺼운 것입니다 - "뭔가"전체 폭을 차지 - 인 내가 의도 한 바가 아니야.

alt text http://www.imagechicken.com/uploads/1272295176088679800.png

은 내가 더 잘 설명 할 수없는 것이 유감.

+0

경우 "닷지"당신이 무엇을 할 그럼? 3 번째 막대가 비어있는 3-bar 클러스터를 원하십니까? –

+0

아마도 원하는 그래프를 그려보십시오 (아니면 그냥 ggplot 출력을 변경하십시오). 당신이 원하는 것이 분명하지 않습니다. –

+0

예. 기본적으로 3 개의 가능한 막대가 있습니다. 3 개의 첫 번째 클러스터의 경우 두 개의 막대가 표시되어야하며 두 개의 마지막 클러스터의 경우 두 개의 막대가 숨겨져 있어야합니다. 지금은 "젊은"과 "오래된"을 두 번 계산합니다. 따라서 thichk 막대. 나는 업데이트 된 질문으로 내 자신을 더 잘 설명하려고 노력할 것이다. 니콜라스 고마워. – Andreas

답변

3

사용은 = 대신 위치의 facet_grid 데이터가 "끝"에 대한 값이 없습니다 또는 "젊은"과 "이전"에서 "참석"

ggplot(exstatus, aes(x=art, fill=art))+ 
    geom_bar(aes(y=..count../sum(..count..))) + 
    facet_grid(~type,scales="free",space="free") 

alt text http://www.imagechicken.com/uploads/1272294360054813000.png

+0

많은 감사 알렉스 브라운. 이것은 정말 좋은 해결책입니다! – Andreas

+0

은 파셋이 각 패싯에서 백분율 합을 100으로 만드는 것을 깨달았습니다. 이것은 좋지 않다 : - | – Andreas

+0

마진 = T로 설정하면 새 여백 ("모든"패싯)이 잘 보입니다. 하지만 다른 모든 측면이 있습니다. – Andreas