How to draw a chart with sorted horizontal error bars (sorted barcharts with error marks)?

后端 未结 2 488
[愿得一人]
[愿得一人] 2021-01-05 16:43

I would like to plot means and standard errors as a horizontal barchart, and I want the mean sorted.

I\'ve found the way to plot horizontal sorted barcharts using l

2条回答
  •  执念已碎
    2021-01-05 17:15

    If it doesn't have to be lattice here is a simple function that uses base R functionality, that is supplied with three arguments: the widths of the bars (xv), the lengths (up and down) of the error bars (z) and the labels for the bars on the y axis (nn).

    error.bars<-function(xv,z,nn){
    par(las = 1)
    yv <- barplot(xv,horiz = TRUE,col="cyan",xlim=c(0,(max(xv)+max(z))),names=nn,xlab=deparse(substitute(xv)))
    g <- (max(yv)-min(yv))/(3*length(yv)) 
    for (i in 1:length(yv)) {
    lines(c(xv[i]+z[i],xv[i]-z[i]),c(yv[i],yv[i]))
    lines(c(xv[i]+z[i],xv[i]+z[i]),c(yv[i]+g,yv[i]-g))
    lines(c(xv[i]-z[i],xv[i]-z[i]),c(yv[i]+g,yv[i]-g))
    }}
    
    plot.data <- plot.data[order(plot.data$mean),] # reorder data
    mean<-as.vector(plot.data$mean)
    se<-as.vector(plot.data$error)
    labels<-as.character(plot.data$var)
    
    error.bars(mean,se,labels)
    

    alt text

提交回复
热议问题