2012-04-08 24 views
2

kann jemand beantworten, wie ich ein Balkendiagramm plotten kann, das eine numerische x-Variable auf seine relative Häufigkeit gruppiert durch einen Faktor in ggplot2 abbildet? Das Wichtigste ist: Die relativen Häufigkeiten sollten als groupwise Frequenzen innerhalb von x-Werten, die zu einem Faktor gehören, berechnet werden. Jetzt werden sie als x-Werte relativ zur Summe Anzahl der x-Werte berechnet.Plot relative Häufigkeiten mit ausgewichenen Balkendiagrammen in ggplot2

Um zeigt es, ein Beispiel:

library(ggplot2) 

data <-data.frame(x=runif(100,0:1), f=sample(1:3,100,replace=TRUE)) 
data$f <-factor(data$f) 
p <-ggplot(data, aes(x, colour=f, fill=f, group=f)) + 
    xlim(0,1) + 
    scale_y_continuous('Relative Frequency', formatter='percent') # or labels=percent 

Lassen Sie uns sie facettierten plotten. Dann zeigt die y-Achse, dass die Anteile gruppenweise berechnet werden. Ich habe diesen Code verwendet:

p + stat_bin(aes(y=..count../sum(..count..)), position='dodge', binwidth=0.2) +   facet_grid(~f) 

Lassen Sie uns plotten sie ausgewichen. Die y-Achse zeigt, dass sich die Proportionen auf den gesamten Datensatz beziehen. Hier verwendete ich den folgenden Code:

p + stat_bin(aes(y=..count../sum(..count..)), position='dodge', binwidth=0.2) 

I darauf abzielen, eine Handlung wie das zweite mit den Frequenzen der Variablen pro Gruppe auf der y-Achse zu schaffen.

Vielen Dank für Ihre Hilfe im Voraus! Jana

+0

Ihre erste Grafik gibt keine pro-facet Proportionen. Sie müssen die Daten vorab zusammenfassen und dann an ggplot übergeben. –

Antwort

2

ich das gleiche Problem wie bei Ihnen gegenüber und ich es herausgefunden: Statt ..count../sum(..count..) Plotten, Grundstück ..density..*your_binwidth Tatsächlich ist das ..density.. Variable durch das Fach Statistik erstellt Anteil/bindwidth im Grunde gleich ist. Ihr Code wird:

p + stat_bin(aes(y=..density..*0.2), position='dodge', binwidth=0.2) 
+0

-1; Außer dieser Antwort ist nicht ganz richtig: http://stats.stackexchange.com/questions/4220/a-probability-distribution-value-exceeding-1-is-ok. Siehe: http://StackOverflow.com/Questions/17655648/How-Can-Iplot-the-relative-Proportions-of-Two-Groups-use-a-Fill-Asthetic-in für die richtige Lösung. – russellpierce

Verwandte Themen