2017-10-05 16 views
1

J'ai un df avec une variable a qui contient deux chaînes "stringA1" et "stringA2". Il a également une variable b qui contient trois chaînes "StringB1", "stringB2" et "stringB3". Ce dont j'ai besoin est un graphe groupé par la variable b et montrant le pourcentage de "stringA1" et "stringA2" dans chaque groupe.Comment avoir un graphique à barres groupées ggplot montrant les pourcentages selon chaque groupe dans R?

J'ai suivi les conseils affichés sur le lien ci-dessous: https://sebastiansauer.github.io/percentage_plot_ggplot2_V2/

et traduit pour adapter mes données:

p <- ggplot(STW, aes(x=STW$Q071_3, group=STW$Q01))+ 
    geom_bar(mapping = aes(y = ..prop.., fill = factor(..x..), x=STW$Q071_3), 
    stat="count")+ 
    scale_y_continuous(labels=scales::percent)+ 
    facet_grid(~Q01)+ 
p 

Ceci, cependant, me donne un graphique avec plus de 100% et je ne peux pas trouver le Erreur.

J'ai essayé de jouer avec (..count..)/sum(..count..), mais je n'ai obtenu aucun résultat utile.

Comment puis-je résoudre ce problème? Merci et laissez-moi savoir si je devrais poster plus d'informations - c'est le premier poste que je fais ici et j'espère être concis et clair :)

Merci d'avance!

Répondre

0

Après beaucoup d'essayer, j'ai enlevé le x=STW$ et le STW$ de group=STW$Q01 et tout fonctionne parfaitement maintenant, bien que je ne sais pas les raisons.

Voici le code fixe:

p <- ggplot(STW, aes(Q071_3, group=Q01))+ 
    geom_bar(aes(y = ..prop.., fill = factor(..x..)), stat="count")+ 
    scale_y_continuous(labels=scales::percent)+ 
    facet_grid(~Q01) 
p