This post describes all the available options to customize chart axis with R and ggplot2. It shows how to control the axis itself, its label, title, position and more.
ggplot2 axisLet’s start with a very basic ggplot2 scatterplot. The axis usually looks very good with default option as you can see here.
Basically two main functions will allow to customize it:
theme() to change the axis appearancescale_x_ and scale_y_ to change the axis typeLet’s see how to use them

# Load ggplot2
library(ggplot2)
# Very basic chart
basic <- ggplot( mtcars , aes(x=mpg, y=wt)) +
geom_point()
basicxlab() and xlim()Two basic options that are used in almost every charts are xlab() and xlim() to control the axis title and the axis limits respectively.
Note : it is possible to specify only the lower or upper bound of a limit. For instance, try xlim(0,NA)

axis.title

The theme() function allows to customize all parts of the ggplot2 chart. The axis.title. controls the axis title appearance. Since it is text, features are wrapped in a element_text() function. The code below shows how to change the most common features:
# Left -> both axis are modified
basic + theme(axis.title = element_text( angle = 90, color="red", size=15, face=3)) # face = title location# Right -> only the x axis is modified
basic + theme(axis.title.x = element_text( angle = 90, color="red", size=15, face=3))axis.textUsing pretty much the same process, the axis.text() function allows to control text label features. Once more, using axis.text.x() would modify the x axis only.

axis.ticks and axis.line


The axis.ticks() function controls the ticks appearance. axis.line() controles the axis line. Both of them are lines, so options are wrapped in a element_line() statement.
linetype controls the type of line in use, see the ggplot2 section for more.
# chart 1: ticks
basic + theme(
axis.ticks = element_line(size = 2, color="red") ,
axis.ticks.length = unit(.5, "cm")
)