2010-04-25 4 views
0

Je suis désolé pour le titre non-informatif.ggplot geom_bar - barres trop larges

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

puis l'intrigue

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

Le problème est que les deux barres les plus à droite (« jeune », « vieux ») sont trop épais - « quelque chose » prend toute la largeur - qui est pas ce que je voulais.

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

Je suis désolé que je ne peux pas l'expliquer mieux.

+0

Si vos données n'a pas de valeur pour « finir » ou « assister » sous « jeunes » et « vieux », qu'est-ce que vous vouloir alors? Voulez-vous un cluster à 3 barres avec une 3ème barre vide? –

+0

Essayez peut-être de dessiner le graphique que vous voulez (ou modifiez simplement la sortie de ggplot). Ce n'est vraiment pas clair ce que tu veux. –

+0

Oui. Fondamentalement, il y a 3 barres possibles. Pour les trois premiers groupes, deux barres devraient être visibles, pour les deux dernières grappes, deux barres devraient être cachées. En ce moment je compte deux fois "jeune" et "vieux" - d'où les barres de thichk. Je vais essayer de mieux vous expliquer, avec une question mise à jour. Merci Nicholas. – Andreas

Répondre

3

Utilisation facet_grid au lieu de position = « esquiver »

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

Merci beaucoup Alex Brown. C'est une très bonne solution! – Andreas

+0

vient de réaliser que facetting rend la somme des pourcentages à 100 dans chaque facette. Ce n'est pas bon: - | – Andreas

+0

Définition des marges = T, la nouvelle marge ("all" facet) semble bonne. Mais alors il y a toutes les autres facettes .... – Andreas

Questions connexes