将不同的数据集与R中的堆积条形图进行比较

时间:2014-06-18 10:56:25

标签: r

我需要比较两种不同的方法,每种方法在一个图形中使用堆叠条形样式有3种不同的结果。

我想绘制一个图,以便x轴显示实验,y轴显示结果。每个栏以堆积条形式填充3个结果。

experiment method resuult1 result2 result3
1            m1      1        2       3 
1            m2      4        5       6
2            m1      7        8       9
2            m2     10        11      12
3            m1     13        14      15
3            m2     16        17      18

1 个答案:

答案 0 :(得分:0)

您的数据:

dataset <- data.frame(
    experiment = c(1,1,2,2,3,3),
    method = c("m1","m2","m1","m2","m1","m2"),
    result1 = seq(1,16,by=3),
    result2 = seq(2,17,by=3),
    result3 = seq(3,18,by=3))

我们首先需要将您的数据转换为稍微不同的格式:

foo <- t(as.matrix(dataset[,c("result1","result2","result3")]))
bar <- cbind(foo[,1:2],NA,foo[,3:4],NA,foo[,5:6])

bar了解此处发生的事情。接下来,我们绘制并添加一些轴注释:

baz <- barplot(height=bar,beside=FALSE,
  legend.text=rownames(bar),args.legend=list(x="topleft",inset=0.05))
axis(1,at=baz[c(1,2,4,5,7,8)],labels=dataset[,"method"],tick=FALSE)
axis(1,at=c(mean(baz[1:2]),mean(baz[4:5]),mean(baz[7:8])),
  labels=paste("Experiment",1:3),tick=FALSE,line=2)

stacked and grouped barplot