How to Use geom_abline to Add Straight Lines in ggplot2


You can use the geom_abline() function and other similar geom functions to add straight lines to plots in ggplot2.

Here are the most common ways to use these functions:

Method 1: Use geom_abline() to Add Line with Slope and Intercept

ggplot(df, aes(x, y)) +
  geom_point() +
  geom_abline(slope=3, intercept=15)

Method 2: Use geom_vline() to Add Vertical Line

ggplot(df, aes(x=xvar, y=yvar)) +
    geom_point() +
    geom_vline(xintercept=5)

Method 3: Use geom_hline() to Add Horizontal Line

ggplot(df, aes(x=xvar, y=yvar)) +
    geom_point() +
    geom_hline(yintercept=25)

Method 4: Use geom_smooth() to Add Regression Line

ggplot(df, aes(x=xvar, y=yvar)) +
    geom_point() +
    geom_smooth(method='lm')

The following examples show how to use each of these methods in practice with the following data frame in R:

#create data frame
df <- data.frame(x=c(1, 2, 3, 3, 5, 7, 9),
                 y=c(8, 14, 18, 25, 29, 33, 25))

#view data frame
df

  x  y
1 1  8
2 2 14
3 3 18
4 3 25
5 5 29
6 7 33
7 9 25

Example 1: Use geom_abline() to Add Line with Slope and Intercept

The following code shows how to use geom_abline() to add a straight line to a scatterplot with a slope of 3 and an intercept of 15:

library(ggplot2)

#create scatterplot and add straight line with specific slope and intercept
ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  geom_abline(slope=3, intercept=15)

geom_abline in ggplot2

Example 2: Use geom_vline() to Add Vertical Line

The following code shows how to use geom_vline() to add a vertical line to a scatterplot at x=5:

library(ggplot2)

#create scatterplot and add vertical line at x=5
ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  geom_vline(xintercept=5)

geom_vline function in R example

Example 3: Use geom_hline() to Add Horizontal Line

The following code shows how to use geom_hline() to add a horizontal line to a scatterplot at y=25:

library(ggplot2)

#create scatterplot and add horizontal line at y=25
ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  geom_hline(yintercept=25)

geom_hline example in ggplot

Example 4: Use geom_smooth() to Add Regression Line

The following code shows how to use geom_smooth() to add a fitted regression line to a scatterplot:

library(ggplot2)

#create scatterplot and add fitted regression line
ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  geom_smooth(method='lm', se=FALSE)

geom_smooth to add regression line in ggplot2 example

Note: The argument se=FALSE tells ggplot2 not to display shaded lines for standard error estimates.

Additional Resources

The following tutorials explain how to perform other commonly used operations in ggplot2:

How to Adjust Line Thickness in ggplot2
How to Set Axis Limits in ggplot2
How to Remove Gridlines in ggplot2
How to Change Background Color in ggplot2

Leave a Reply

Your email address will not be published. Required fields are marked *