2012-08-23 9 views
5

Ne ho uno buono. Ci sto pensando da tanto tempo. Ho questo set di dati e questo set di dati potrebbe essere enorme. Vorrei rappresentare graficamente una barra dello stack ggplot in base al conteggio dei 5 più higest per ogni mese. Ad esempio, per 1 // 1/2012, i conteggi higest sarebbe I, G, F, D ed E.ggplot per impilare il grafico a barre 5 per ogni mese

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 

Ho qualcosa di simile, ma questo Grafici tutti i valori :

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

risposta

4

bisogna sottoinsieme dei dati prima:

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

Non ottengo lo stesso risultato, come stai ricevendo x? – user1471980

+0

Cosa intendi? La funzione anonima che ho creato? –

Problemi correlati