如何制作条形图,我可以细分三个x轴类别中的每一个?

时间:2015-06-23 21:47:19

标签: r bar-chart

我试图制作一个条形图,使用我的数据集中的三个不同的列来组成x轴(Number_DS,Number_US,Number_A),并且'数字被吸引' as y轴)这三个变量中的每一个代表三种不同鱼类的数据,因此基本上,轴上有三个类别,每个类别细分为三个子类别。

下面的图表(我通过总结前一次的数据并生成简洁的矩阵而制作)显示了我尝试生成的图表类型(没有错误条)。

此外,我还计划计算标准误差或偏差,以便为每个产生误差条。但是,我正在努力寻找一种方法来处理我所处理的数据(与之前的情况不同)。有没有人有任何代码可以帮助按照生成此图表的方式对数据进行排序?我在下面添加了一些数据,希望它能让这个问题更有意义!

提前感谢

enter image description here

Species         NumberDS    NumberUS    NumberAcross   Number attracted
Atlantic cod    0            0           92             0
Atlantic cod    0            2           0              0
Haddock         9            0           0              9
Whiting         0            0           4              4
Haddock         0            0           1              0
Whiting         0            1           2              3

1 个答案:

答案 0 :(得分:1)

我不知道我是否遇到了你的问题。假设df是你的data.frame。

sps=split(df,df$Species) #Species is the first column
totals=sapply(sps,function(sp)apply(sp[,-1],2,sum))

bp=barplot(as.matrix(t(totals)),legend.text = TRUE,args.legend=
          list(x = "topright",bty="n",cex=.8,ncol=1),
        beside=T,col=1:ncol(totals),xaxt="n")
axis(1,at=bp[2,],labels=row.names(totals),las=2,cex.axis=.5,tick = F)

这就是你想要的吗?

enter image description here