2017-05-14 161 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

这就是我正在建议的!很高兴你把事情解决了。 –