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 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