[英]Sort or order multiple bars with geom_col barplot
我有這種表:
Year Substance Number
2013 A 32
2013 B 27
2013 C 17
2013 D 17
2013 E 15
2013 F 13
2014 B 20
2014 D 17
2014 A 16
2014 C 11
2014 F 9
2014 G 3
基本上,這些年到2018年每年有6或7種物質,每種物質都有一個數字(發生的頻率)。 這些物質有實際的名稱,但是我不能在互聯網上發布它們,所以我把它們改為A,B,C,D,E,F和G.我無法按照我想要的順序排序。
我在互聯網上做了很多研究並嘗試了很多東西:福克斯,因子,水平,重新排序等等,但沒有一個有效。 我有一個R新手,所以我現在不知道什么是做我想做的最好的方法。
當我嘗試這樣繪制時,它按字母順序放置物質:
ggplot(Test, aes(x = Year, y = Number, fill = Substance)) + geom_col(position = "dodge")
2013年的第一年,訂單是正確的。 我希望它每隔一年就會按順序遞減一次。 我該怎么辦?
這有點棘手,因為你的訂單每年都在變化,因此因子變量轉換變得混亂。 這是通過使用單獨的數值對x位置進行排序來實現此目的的一種方法:
library('data.table')
library('ggplot2')
Test[, Ranking:= rank(-Number, ties.method = 'first'), by = .(Year)]
ggplot(Test, aes(x = Ranking,
y = Number,
fill = Substance)) +
geom_col(position = 'dodge') +
scale_x_continuous(name = '', breaks = 0) +
facet_wrap(~Year)
輸出:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.