2016-06-16 4 views
1

は私がソートされた棒グラフを達成したい、今のようになり、学生テーブル、これによって、あなたがこれを見ることができますRにggplotを使ってソートされた周波数棒グラフを描画するには?

StudentID SectorID ClassID 
1   A Team_1 Class_1 
2   A Team_1 Class_1 
3   B Team_1 Class_1 
4   B Team_2 Class_1 
5   B Team_2 Class_1 
6   A Team_2 Class_1 
7   A Team_3 Class_1 
8   C Team_3 Class_2 
9   C Team_3 Class_2 
10   C Team_3 Class_2 
11   C Team_3 Class_2 
12   C Team_1 Class_2 
13   D Team_1 Class_2 
14   D Team_1 Class_2 

stg <- data.frame(StudentID = c(rep("A", 2), rep("B", 3), rep("A", 2), rep("C", 5), rep("D", 2) ), 
        SectorID = c(rep("Team_1", 3), rep("Team_2", 3), rep("Team_3", 5), rep("Team_1", 3)),    
        ClassID  = c(rep("Class_1", 7), rep("Class_2", 7))    
) 


stg 

ggplot(stg, aes(x = stg$StudentID)) + geom_bar() 

を持っています。 C(周波数5)が最初に表示されます。あなたはこれについていくつかの光を陰にしてください。あなたの時間をありがとう。

答えて

2

studentIDを、レベルを希望の順序で指定する必要があります。このコードは、

cnt <- plyr::count(stg$StudentID) 
stg$StudentID <- factor(stg$StudentID, 
    levels = cnt$x[order(cnt$freq, decreasing = TRUE)]) 

ggplot(stg, aes(x = StudentID)) + geom_bar() 
1

あなたはこれを行うことができることでしょう。..

ggplot(stg, aes(x = reorder(StudentID,StudentID,function(x)-length(x)))) + geom_bar() 

enter image description here

関連する問題