Prozentsatz auf y lab in einem facettierten ggplot-Balkendiagramm?
tun Facetten in ggplot ich würde gerne den Prozentsatz anstelle von verwendet werden zählt.
z.B.
test1 <- sample(letters[1:2], 100, replace=T)
test2 <- sample(letters[3:8], 100, replace=T)
test <- data.frame(cbind(test1,test2))
ggplot(test, aes(test2))+geom_bar()+facet_grid(~test1)
Dies ist sehr einfach, aber wenn N unterscheidet sich in Facette Ein im Vergleich zu Facette B, besser wäre es, denke ich, zu vergleichen Prozentsätze in der Weise, dass die einzelnen Facetten Summen zu 100%.
wie würden Sie dies erreichen?
Hoffe, dass meine Frage Sinn macht.
Aufrichtig.
InformationsquelleAutor der Frage Andreas | 2011-01-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Könnte man auch hinzufügen
+ scale_y_continuous(formatter = "percent")
an den plot für ggplot2 version 0.8.9, oder+ scale_y_continuous(labels = percent_format())
für die version 0.9.0.InformationsquelleAutor der Antwort daroczig
Hier ist ein innerhalb
ggplot
Methode, mit..count..
und..PANEL..
:Wie diese berechnet on-the-fly, es sollte robust sein, um änderungen an plot-Parameter.
InformationsquelleAutor der Antwort James
Sehr einfache Weise:
So dass ich nur die geänderten parameter von geom_bar zu
aes(y = (..count..)/sum(..count..))
.Nach der Einstellung ylab NULL, und die Angabe der formatter, die man bekommen konnte:
Update
Beachten Sie, dass während
formatter = "percent")
Werke für ggplot2 version 0.8.9, in 0.9.0 Sie würde wollen, dass so etwas wiescale_y_continuous(labels = percent_format())
.InformationsquelleAutor der Antwort daroczig
Hier ist eine Lösung, sollte Euch in die richtige Richtung bewegen. Ich bin gespannt zu sehen, ob es effizientere Wege zu gehen, dies zu tun, wie dies scheint ein bisschen hacky und verworren. Wir können mit dem eingebauten
..density..
argument für diey aesthetic
, aber Faktoren, die nicht dort arbeiten. So müssen wir auch nutzenscale_x_discrete
zur entsprechenden Beschriftung der Achse sobald wir umgewandelttest2
in ein numerisches Objekt.Sondern geben diesem einen Wirbel und lassen Sie mich wissen, was Sie denken.
Können, können Sie auch verkürzen Ihre Testdaten-Erstellung wie so, was verhindert, dass die zusätzlichen Objekte in Ihrer Umgebung, und dass cbind Sie zusammen:
InformationsquelleAutor der Antwort Chase
Beschäftige ich mich mit ähnlichen Situationen relativ Häufig, aber nehmen Sie einen ganz anderen Ansatz verwendet zwei von Hadley ' s andere Pakete, nämlich neu zu gestalten und plyr. Vor allem, weil ich habe eine Vorliebe für Dinge zu betrachten als 100% gestapelte Balken (wenn Sie insgesamt 100%).
InformationsquelleAutor der Antwort Brandon Bertelsen
Vielen Dank für das PANEL "Tipp" auf die
ggplot
Methode.Informationen: stellen Sie die Prozentsätze in
y lab
auf der gleichen Balkendiagramm, indemcount
undgroup
imggplot
Methode:InformationsquelleAutor der Antwort Lilly