Standard error bars using stat_summary

后端 未结 1 963
孤独总比滥情好
孤独总比滥情好 2020-12-04 14:55

The following code produces bar plots with standard error bars using Hmisc, ddply and ggplot:

means_se <- ddply(mtcars,.(cyl),
                  function(         


        
相关标签:
1条回答
  • 2020-12-04 15:16

    Well, I can't tell you how to get a multiplier by group into stat_summary.

    However, it looks like your goal is to plot means and error bars that represent one standard error from the mean in ggplot without summarizing the dataset before plotting.

    There is a mean_se function in ggplot2 that we can use instead of mean_cl_normal from Hmisc. The mean_se function has a multiplier of 1 as the default so we don't need to pass any extra arguments if we want standard error bars.

    ggplot(mtcars, aes(cyl, qsec)) + 
        stat_summary(fun.y = mean, geom = "bar") + 
        stat_summary(fun.data = mean_se, geom = "errorbar")
    

    If you want to use the mean_cl_normal function from Hmisc, you have to change the multiplier to 1 so you get one standard error from the mean. The mult argument is an argument for mean_cl_normal. Arguments that you need to pass to the summary function you are using needs to be given as a list to the fun.args argument:

    ggplot(mtcars, aes(cyl, qsec)) + 
        stat_summary(fun.y = mean, geom = "bar") + 
        stat_summary(fun.data = mean_cl_normal, geom = "errorbar", fun.args = list(mult = 1))
    

    In pre-2.0 versions of ggplot2, the argument could be passed directly:

    ggplot(mtcars, aes(cyl, qsec)) + 
      stat_summary(fun.y = mean, geom = "bar") + 
      stat_summary(fun.data = mean_cl_normal, geom = "errorbar", mult = 1) 
    
    0 讨论(0)
提交回复
热议问题