2012-08-23 36 views
5

Tôi có một cái tốt. Tôi đã suy nghĩ về điều này một thời gian dài. Tôi có tập dữ liệu này và tập dữ liệu này có thể rất lớn. Tôi muốn vẽ đồ thị một thanh xếp chồng ggplot dựa trên số lượng hàng đầu 5 số hàng tháng cho mỗi tháng. Ví dụ, đối với 1 // 1/2012, các tội higest sẽ là I, G, F, D và E.ggplot để xếp chồng lên nhau đồ thị trên cùng 5 cho mỗi tháng

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 

Tôi có một cái gì đó như thế này nhưng điều này đồ thị tất cả các giá trị :

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

Trả lời

4

Bạn cần phải tập hợp con các dữ liệu đầu tiên:

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

Tôi không nhận được kết quả tương tự, bạn nhận được x như thế nào? – user1471980

+0

Ý của bạn là gì? Chức năng đồng nghĩa mà tôi đã thực hiện? –

Các vấn đề liên quan