rggplot2

confidence interval error bars for ggplot


I want to put confidence interval error bars for ggplot.

I have a dataset and I am plotting it with ggplot as:

df <- data.frame(
        Sample=c("Sample1", "Sample2", "Sample3", "Sample4", "Sample5"), 
        Weight=c(10.5, NA, 4.9, 7.8, 6.9))

p <- ggplot(data=df, aes(x=Sample, y=Weight)) + 
geom_bar(stat="identity", fill="black") + 
scale_y_continuous(expand = c(0,0), limits = c(0, 8)) + 
theme_classic() + 
theme(axis.text.x = element_text(angle = 45, hjust = 1)

p

I am new to adding error bars. I looked at some options using geom_bar but I could not make it work.

I will appreciate any help to put confidence interval error bars in the barplot. Thank you!


Solution

  • Add a layer of error bars with geom_errorbar

    df <- data.frame(
      Sample=c("Sample1", "Sample2", "Sample3", "Sample4", "Sample5"), 
      Average.Weight=c(10.5, NA, 4.9, 7.8, 6.9),
      # arbitrarily make up some Standard Errors for each mean:
      SE = c(1, NA, .3, .25, .2)) # JUST MAKING THINGS UP HERE
     
    

    Now you have a data frame with a column of Average Weight and the SE for each sample in your study. Use ggplot to plot:

    ggplot(data = na.omit(df)) + #don't bother plotting the NA
      geom_bar(stat = "identity", aes(x = Sample,y = Average.Weight)) +
      geom_errorbar(
        aes(x=Sample, 
            ymin = Average.Weight - 1.96*SE, 
            ymax = Average.Weight + 1.96*SE), 
        color = "red"
      )
    

    enter image description here