You can use the geom_errorbar() function in ggplot2 to add error bars to points in a plot.
The following example shows how to use this function in practice.
Example: How to Use geom_errorbar() in ggplot2
Suppose we have the following data frame in R that contains information about points scored by basketball players on various teams:
#create data frame df = data.frame(team=rep(c('A', 'B', 'C'), each=4), points=c(8, 12, 4, 6, 26, 21, 25, 20, 9, 18, 14, 14)) #view data frame df team points 1 A 8 2 A 12 3 A 4 4 A 6 5 B 26 6 B 21 7 B 25 8 B 20 9 C 9 10 C 18 11 C 14 12 C 14
We can use the following syntax to summarize the mean and standard deviation of the points values, grouped by team:
library(dplyr)
#calculate mean and standard deviation of points by team
df_summary <- df %>%
group_by(team) %>%
summarise_at(vars(points), list(mean=mean, sd=sd)) %>%
as.data.frame()
#view results
df_summary
team mean sd
1 A 7.50 3.415650
2 B 23.00 2.943920
3 C 13.75 3.685557
Next, we can use the following syntax with geom_errorbar() to create a plot that displays the mean value of points for each team with error bars:
library(ggplot2)
#create plot to visualize mean points by team with error bars
ggplot(df_summary, aes(x=team, y=mean)) +
geom_errorbar(aes(ymin=mean-sd, ymax=mean+sd))

In this example, the error bars extend one standard deviation above and below the mean value for each team.
If you’d like, you can use geom_point() to add a point to represent the mean points value for each team and you can use the width argument within geom_errorbar() to modify the width of the error bars in the plot:
library(ggplot2)
#create plot to visualize mean points by team with error bars
ggplot(df_summary, aes(x=team, y=mean)) +
geom_errorbar(aes(ymin=mean-sd, ymax=mean+sd), width=0.3) +
geom_point(size=2)

Feel free to increase or decrease the value of the width argument within the geom_errorbar() function to modify the width of the error bars in the plot.
Additional Resources
The following tutorials explain how to perform other common tasks in ggplot2:
How to Change the Legend Title in ggplot2
How to Rotate Axis Labels in ggplot2
How to Adjust Space Between Bars in ggplot2