How to Use scale_y_continuous in ggplot2 (With Examples)


You can use the scale_y_continuous() function in ggplot2 to customize the y-axis of a given plot.

This function uses the following basic syntax:

p +
  scale_y_continuous(breaks, n.breaks, labels, limits, ...)

where:

  • breaks: A numeric vector of positions for breaks on the y-axis
  • n.breaks: An integer vector specifying the number of total breaks on the y-axis
  • labels: A character vector of labels to use for the y-axis
  • limits: A numeric vector that specifies the min and max value for the y-axis

The following examples show how to use this function in different scenarios with the following data frame in R:

#create data frame
df <- data.frame(points=c(5, 7, 12, 13, 15, 19, 22, 25),
                 assists=c(4, 3, 2, 3, 7, 8, 5, 7))

#view data frame
df

  points assists
1      5       4
2      7       3
3     12       2
4     13       3
5     15       7
6     19       8
7     22       5
8     25       7

Example 1: Use scale_y_continuous with Custom Axis Breaks

The following code shows how to create a scatterplot in ggplot2 and use scale_y_continuous() with the breaks argument to specify custom axis breaks of 2, 5 and 8:

library(ggplot2)

#create scatterplot with custom y-axis breaks
ggplot(df, aes(x=points, y=assists)) +
  geom_point(size=2) + 
  scale_y_continuous(breaks=c(2, 5, 8))

Notice that the y-axis only contains axis breaks at 2, 5 and 8, just as we specified using the breaks argument.

Example 2: Use scale_y_continuous with Custom Number of Breaks

The following code shows how to create a scatterplot in ggplot2 and use scale_y_continuous() with the n.breaks argument to place exactly 2 axis breaks on the y-axis:

library(ggplot2)

#create scatterplot with custom number of breaks on y-axis
ggplot(df, aes(x=points, y=assists)) +
  geom_point(size=2) + 
  scale_y_continuous(n.breaks=2)

Notice that the y-axis contains exactly 2 axis breaks, just as we specified using the n.breaks argument.

Example 3: Use scale_y_continuous with Custom Labels

The following code shows how to create a scatterplot in ggplot2 and use scale_y_continuous() with the labels argument to specify the label names to place on the y-axis:

library(ggplot2)

#create scatterplot with custom labels
ggplot(df, aes(x=points, y=assists)) +
  geom_point(size=2) + 
  scale_y_continuous(breaks=c(2, 5, 8), labels=c('two', 'five', 'eight'))

Notice that the y-axis contains 3 axis breaks each with custom labels, just as we specified using the labels argument.

Example 4: Use scale_y_continuous with Custom Limits

The following code shows how to create a scatterplot in ggplot2 and use scale_y_continuous() with the limits argument to specify custom y-axis limits of 0 and 20:

library(ggplot2)

#create scatterplot with custom y-axis limits
ggplot(df, aes(x=points, y=assists)) +
  geom_point(size=2) + 
  scale_y_continuous(limits=c(0, 20))

Notice that the y-axis ranges from 0 to 20, just as we specified using the limits argument.

Additional Resources

The following tutorials explain how to perform other common tasks in ggplot2:

How to Use scale_x_continuous in ggplot2
How to Rotate Axis Labels in ggplot2
How to Change Legend Labels in ggplot2

Leave a Reply

Your email address will not be published.