簡體   English   中英

使用geom_col barplot對多個條形圖進行排序或排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM