You can use the following basic syntax to change the number of axis ticks on plots in ggplot2:
p + scale_x_continuous(n.breaks=10) + scale_y_continuous(n.breaks=10)
The following example shows how to use this syntax in practice.
Example: Change Number of Axis Ticks in ggplot2
Suppose we have the following data frame in R:
#create data frame
df <- data.frame(x=c(1, 2, 4, 5, 6, 8, 12, 14, 19),
y=c(2, 5, 7, 8, 14, 19, 22, 28, 36))
#view data frame
df
x y
1 1 2
2 2 5
3 4 7
4 5 8
5 6 14
6 8 19
7 12 22
8 14 28
9 19 36
If we create a scatter plot, ggplot2 will automatically pick a suitable number of ticks for both the x-axis and y-axis:
library(ggplot2) #create scatter plot ggplot(df, aes(x=x, y=y)) + geom_point(size=2)
However, we can use the n.breaks argument to specify the exact number of ticks to use on both axes:
library(ggplot2) #create scatter plot with custom number of ticks ggplot(df, aes(x=x, y=y)) + geom_point(size=2) + scale_x_continuous(n.breaks=10) + scale_y_continuous(n.breaks=10)
Notice that the number of ticks on both axes has increased.
Also note that you can change the number of ticks on just one axis if you’d like:
library(ggplot2) #create scatter plot with custom number of ticks on x-axis only ggplot(df, aes(x=x, y=y)) + geom_point(size=2) + scale_x_continuous(n.breaks=20)
In this example, ggplot2 chooses the number of ticks to use on the y-axis but the number of ticks on the x-axis is determined by the number in the n.breaks argument.
Additional Resources
The following tutorials explain how to perform other common tasks in ggplot2:
How to Rotate Axis Labels in ggplot2
How to Set Axis Breaks in ggplot2
How to Set Axis Limits in ggplot2
How to Change Legend Labels in ggplot2