2017-05-14 220 views
0

我在R中創建堆積條形圖非常困難。我是一個初學者,所以即使查看其他示例,我也無法找到正確的解決方案。 這裏是我的數據怎麼樣子:在左側在r中創建堆積條形圖

  gdp_2  def_2  pcom_2  ff_2  nbr_2  tr_2 unemp_2 
[1,] 0.02938106 0.01009107 0.014915879 0.9456120 0.000000000 0.000000000 0.00000000 
[2,] 0.04824422 0.02513049 0.016115796 0.8303659 0.002320698 0.001255257 0.07656760 
[3,] 0.06532489 0.05206917 0.011290059 0.7623530 0.002604175 0.008032572 0.09832613 
[4,] 0.07485907 0.07576441 0.009215843 0.7064166 0.003207812 0.008397380 0.12213887 
[5,] 0.07894689 0.10131343 0.007674296 0.6635104 0.003415185 0.009705830 0.13543392 

數字1到5指示的時間範圍。因此,我想爲每個時間範圍堆疊變量gdp_2,def_2,pcom_2,ff_2,nbr_2,tr_2和unemp_2的所有值。

這看起來有點像這個stacked bar chart

當然,這將是很好有一個很好的傳說,但此刻我真的不知道如何創建堆積條形圖。 順便說一下,對於那些對這個話題感興趣的人:這是美國經濟變量的預測誤差方差分解。

我非常感謝你提前! 最佳, 波多黎各

+1

請看看這個鏈接。 http://stackoverflow.com/questions/20349929/stacked-bar-plot-in-r – G1124E

+0

感謝您對我的問題的評論!我已經看了這個,但不幸的是,我無法將它應用於我的數據,因爲我真的是R的初學者。儘管如此,謝謝你,你花時間回答了! –

回答

2

使用ggplot2dplyrtidyr(的tidyverse所有部分)...

library(tidyverse) 

chart <- df %>% mutate(year=1:n()) %>% #add year as a column to your df 
    gather(key=colname,value=value,-year) %>% #convert to long format 
    ggplot(aes(x=year,y=value,fill=colname)) + #send to ggplot 
    geom_bar(stat="identity",position="stack") #draw stacked bar 

print(chart) 

enter image description here

+0

親愛的Andew Gustar 非常感謝您的回答。在你的例子中,它看起來很完美!這正是我想要的。但是,當我嘗試使用自己的數據執行此操作時,出現錯誤消息: UseMethod(「mutate_」)中的錯誤: 沒有將mutate_應用於類「c('matrix','雙','數字')「 –

+1

親愛的@Andrew Gustar 非常感謝,我只是不得不改變我的數據,它是一個數據框,它現在完美了!非常感謝你的幫助! –

+1

這就是我正在建議的!很高興你把事情解決了。 –