Boxplot schmoxplot: How to plot means and standard errors conditioned by a factor in R?

后端 未结 5 1191
孤独总比滥情好
孤独总比滥情好 2020-12-13 15:57

We all love robust measures like medians and interquartile ranges, but lets face it, in many fields, boxplots almost never show up in published articles, while means and sta

5条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-13 16:22

    The first plot was just covered in a blog post on imachordata.com. (hat tip to David Smith on blog.revolution-computing.com) You can also read the related documentation from Hadley on ggplot2.

    Here's the example code:

    library(ggplot2)
    data(mpg)
    
    #create a data frame with averages and standard deviations
     hwy.avg<-ddply(mpg, c("class", "year"), function(df)
     return(c(hwy.avg=mean(df$hwy), hwy.sd=sd(df$hwy))))
    
    #create the barplot component
     avg.plot<-qplot(class, hwy.avg, fill=factor(year), data=hwy.avg, geom="bar", position="dodge")
    
    #first, define the width of the dodge
    dodge <- position_dodge(width=0.9)
    
    #now add the error bars to the plot
    avg.plot+geom_linerange(aes(ymax=hwy.avg+hwy.sd, ymin=hwy.avg-hwy.sd), position=dodge)+theme_bw()
    

    It ends up looking like this:

提交回复
热议问题