2012-08-23 12 views
5

ich ein gutes haben. Ich denke schon lange darüber nach. Ich habe diesen Datensatz und dieser Datensatz könnte riesig sein. Ich würde gerne einen ggplot-Stack-Balken grafisch darstellen, basierend auf den 5 wichtigsten Zählungen für jeden Monat. Zum Beispiel für 1 // 1/2012, wäre die higest zählt I, G, F, D und E.ggplot zu stapeln Balkendiagramm Top 5 für jeden Monat

df

Date Desc count 
1/1/2012 A 10 
1/1/2012 B 5 
1/1/2012 C 7 
1/1/2012 D 25 
1/1/2012 E 19 
1/1/2012 F 30 
1/1/2012 G 50 
1/1/2012 H 10 
1/1/2012 I 100 
2/1/2012 A 10 
2/1/2012 B 5 
2/1/2012 C 7 
2/1/2012 D 25 
2/1/2012 E 19 
2/1/2012 F 30 
2/1/2012 G 50 
2/1/2012 H 10 
2/1/2012 I 100 
3/1/2012 A 1 
3/1/2012 B 4 
3/1/2012 C 5 
3/1/2012 D 6 
3/1/2012 E 6 
3/1/2012 F 7 
3/1/2012 G 8 
3/1/2012 H 5 
3/1/2012 I 10 

Ich habe so etwas wie dieses, aber diese Graphen alle Werte :

ggplot(df, aes(Date, count))+ geom_bar(aes(fill=Desc), stat="identity", position="stack") + theme_bw() 

Antwort

4

Sie haben zunächst die Daten der Teilmenge:

library(plyr) 
library(ggplot2) 
df_top <- ddply(df, .(Date), 
       function(x) head(x[order(x$count, decreasing = TRUE),], 5)) 
ggplot(df_top, aes(Date, count))+ 
    geom_bar(aes(fill=Desc), stat="identity", position="stack") + 
    theme_bw() 

enter image description here

+0

Ich bekomme nicht das gleiche Ergebnis, wie bekommen Sie x? – user1471980

+0

Was meinst du? Die anonyme Funktion, die ich gemacht habe? –

Verwandte Themen