2017-02-21 143 views
1

我已經編輯下面的數據,因此,它的虛擬數據。 Source的列有專有名稱。GGPLOT2:堆棧中的R順序按百分比圖

我看起來像這樣的數據,我想按職級和NOT源重新安排我的堆積圖,但希望我的傳說,以反映源。

TotalBySource <- read.table(header=TRUE, stringsAsFactors=FALSE, 
text="FY  Source Rank TotalExpense TotalforFY Percent 
2006 Option1 1 46753094.2  121493809.7 0.384818735 
2006 Option7 7 7113652.3  121493809.7 0.058551562 
2006 Option6 6 34461918.9  121493809.7 0.283651644 
2006 Option8 8 10586263.1  121493809.7 0.087134177 
2006 Option5 5 1777846.8  121493809.7 0.014633229 
2006 Option4 4 17886868.4  121493809.7 0.147224525 
2006 Option3 3 2118019.3  121493809.7 0.017433146 
2006 Option2 2 796146.7  121493809.7 0.006552982 
2007 Option7 7 6833612  118232170.7 0.057798245 
2007 Option5 5 1676225.2  118232170.7 0.014177404 
2007 Option6 6 35245142.1  118232170.7 0.298101117 
2007 Option3 3 2283154.9  118232170.7 0.019310775 
2007 Option4 4 17948447.3  118232170.7 0.151806798 
2007 Option8 8 10279117  118232170.7 0.086940102 
2007 Option1 1 43397313.8  118232170.7 0.367051654 
2007 Option2 2 569158.4  118232170.7 0.004813905 
2008 Option1 1 43962329.7  115013461.7 0.382236384 
2008 Option7 7 6745206.4  115013461.7 0.058647104 
2008 Option6 6 34288244.4  115013461.7 0.298123749 
2008 Option8 8 10304301.5  115013461.7 0.089592134 
2008 Option5 5 1551682.9  115013461.7 0.013491316 
2008 Option4 4 15180864  115013461.7 0.131992062 
2008 Option3 3 2398345.7  115013461.7 0.020852739 
2008 Option2 2 582487.1  115013461.7 0.005064512") 

我寫這個代碼:

library(ggplot2) 
p4 <- ggplot() + 
    geom_bar(aes(y = Percent, x = FY, fill = Source), data = TotalBySource, stat="identity") 

,並得到一個可愛的堆積條形圖

,但真的希望書庫和傳奇的等級和讀的傳說進行排序各自的來源。我可以得到一些幫助嗎?

+0

你需要讓你的源代碼變成一個因素與所要求的順序 –

+0

感謝水平你@RichardTelford,但我該怎麼做? –

+1

這是否幫助http://stackoverflow.com/questions/5208679/order-bars-in-ggplot2-bar-graph?rq=1 –

回答

1

我得到了與「選項1」到「選項8」堆積條形圖從上到下,我。即按字母順序排序。 你的意思是排序的另一種方式,我。即「選項8」在頂部,然後下降?

如果是這樣,你可以使用哈德利Wickhams forcats包逆轉的因素順序是這樣的:

library(forcats) 
TotalBySource$Source <- fct_rev(TotalBySource$Source) 

p4 <- ggplot() + 
     geom_bar(aes(y = Percent, x = FY, fill = Source), 
       data = TotalBySource, stat = "identity") 
p4 

enter image description here

+0

謝謝@wolf但這並沒有通過我怎麼圖表或圖例排序想要它。 –

+0

我希望它像被列出: 選項8 選項7 選項6 選項5 3選項 2選項 選項2 選項1 –

+0

@laura,我不知道爲什麼,這並不爲你工作。它爲我工作。再次嘗試對上面的'TotalBySource'數據集進行新編輯。 – bdemarest