1

我已经获得了以下功能,用于创建带有误差线的箱线图,效果很好。

但是我需要添加轴标签,我已经两天试图找出在哪里添加这样的代码

# col=c(2,7),ylab="Relative Fitness",xlab="Block")

error.bars<-function(Response,x1,x2)  {
   mean.table<-tapply(Response,list(x1,x2),mean)
   mean.table[is.na(mean.table)]<-0
   var.table<-tapply(Response,list(x1,x2),var)
   n.table<-tapply(Response,list(x1,x2),length)
   std.errors<-sqrt(var.table/n.table)
   std.errors[is.na(std.errors)]<-0
   biggest.value<-max(mean.table+std.errors)

   bartable<-barplot(mean.table,beside=TRUE,
   ylim=c(0,biggest.value+1))

   errbar.width<-(max(bartable)-min(bartable))/50

   for(i in 1:length(mean.table[,1])) {

      for(j in 1:length(mean.table[1,])) {

          lines(c(bartable[i,j],bartable[i,j]),
          c(mean.table[i,j]-std.errors[i,j],
          mean.table[i,j]+std.errors[i,j]))

          lines(c(bartable[i,j]-errbar.width,
          bartable[i,j]+errbar.width),
          c(mean.table[i,j]+std.errors[i,j],
          mean.table[i,j]+std.errors[i,j]))

          lines(c(bartable[i,j]-errbar.width,
          bartable[i,j]+errbar.width),
          c(mean.table[i,j]-std.errors[i,j],
    mean.table[i,j]-std.errors[i,j]))

     }
  }
}

非常感谢任何提示


因此,对于我缺乏清晰性,我深表歉意,我是 R 的新手,而且这个网站不确定如何传达信息。我的数据非常简单,看起来像这样。n=3 块,n=33 行,n=2 表示 Sex,我的 y 变量是 Fitness。我已经能够使用我之前发布的 errorbars 函数制作箱线图。但是,我要做的就是将 x 和 y 轴标签添加到函数中。似乎很容易,但我无法弄清楚。

头部(OzGLM)块线性健身 1 1 3 1 0.6865626 2 1 3 2 0.4874816 3 1 4 1 0.4219811 4 1 4 2 0.3829161 5 1 5 1 0.6071388 6 1 5 2 0.4432990

4

2 回答 2

1

您可以使用mtext添加轴标签。

例如,将此添加到您的函数中:

    }
  }
  mtext('axisY',2)
  mtext('axisx',3)   ## since your barplot can hide the text I put the x axis label in the top
}
于 2013-05-27T12:55:31.873 回答
0

假设我知道你想要什么,我就是这样做的。我建立在 agstudy 的伟大建议之上。我把你的功能变成了这个:

  error.bars<-function(Response,x1,x2,label.x,label.y)

然后我将其添加到代码底部的 agstudy 代码中:

 }   
 mtext(label.y,2)  
 mtext(label.x,3)  
}  

最后发出命令:

  error.bars(data1,data2,data3,"x-axis","y-axis")  

在这一点上,我的标签被标记为“x 轴”和“y 轴”。但是,我不清楚 Response、x1 和 x2 位置应该放什么,所以我得到了一个大部分是垃圾的图,除了轴标签。:)

于 2013-05-27T23:32:22.173 回答