2014-09-04 11 views
55

Próbuję utworzyć wykres słupkowy, na którym działka jest zamawiana od miRNA z najwyższym value do miRNA z najniższym. Dlaczego mój kod nie działa?Zmiana kolejności słupków w geom_bar ggplot2

> head(corr.m) 

     miRNA   variable value 
1 mmu-miR-532-3p  pos  7 
2 mmu-miR-1983  pos 75 
3 mmu-miR-301a-3p  pos 70 
4 mmu-miR-96-5p  pos  5 
5 mmu-miR-139-5p  pos 10 
6 mmu-miR-5097  pos 47 

ggplot(corr.m, aes(x=reorder(miRNA, value), y=value, fill=variable)) + 
    geom_bar(stat="identity") 

Odpowiedz

103

Twój kod działa poprawnie, z tym że barplot jest uporządkowany od niskiego do wysokiego. Kiedy chcesz zamówić paski z wysokiego na niski, trzeba będzie dodać - znak przed value:

ggplot(corr.m, aes(x = reorder(miRNA, -value), y = value, fill = variable)) + 
    geom_bar(stat = "identity") 

co daje:

enter image description here

+0

to nie zostanie uporządkowane w mojej działki dla jakiś powód – user3741035

+0

@ user3741035 Dziwne. Czy używałeś go na przykładowym zestawie danych podanym powyżej lub na całym zbiorze danych? – Jaap

+0

cały zestaw danych. edytuj: nie działał na próbce ani – user3741035

Powiązane problemy