# How to Reverse Order of Axis in ggplot2 (With Examples)

You can use the scale_y_reverse() and scale_x_reverse() functions to quickly reverse the order of an axis in ggplot2.

These functions use the following basic syntax:

```ggplot(df, aes(x, y)) +
geom_point() +
scale_y_reverse()
```

You can also use the limits argument with these functions to specify new axis limits after reversing the axis:

```ggplot(df, aes(x, y)) +
geom_point() +
scale_y_reverse(limits=c(100, 50))```

The following example shows how to use these functions in practice.

## Example: Reverse Order of Axis in ggplot2

The following code shows how to create a scatterplot in ggplot2 with a normal axis:

```library(ggplot2)

#create data frame
df <- data.frame(hours=c(1, 2, 2, 3, 4, 6, 7, 7, 8, 9),
score=c(76, 77, 75, 79, 84, 88, 85, 94, 95, 90))

#create scatter plot with normal y-axis
ggplot(df, aes(x=hours, y=score)) +
geom_point(size=2)
``` Notice that the y-axis currently ranges from 75 to 95.

The following code shows how to use the scale_y_reverse() function to reverse the order of values on the y-axis:

```library(ggplot2)

#create data frame
df <- data.frame(hours=c(1, 2, 2, 3, 4, 6, 7, 7, 8, 9),
score=c(76, 77, 75, 79, 84, 88, 85, 94, 95, 90))

#create scatter plot with reversed y-axis
ggplot(df, aes(x=hours, y=score)) +
geom_point(size=2) +
scale_y_reverse()``` Notice that the y-axis now ranges from 95 to 75.

We could also use the limits argument within the scale_y_reverse() function to modify the y-axis limits:

```library(ggplot2)

#create data frame
df <- data.frame(hours=c(1, 2, 2, 3, 4, 6, 7, 7, 8, 9),
score=c(76, 77, 75, 79, 84, 88, 85, 94, 95, 90))

#create scatter plot with reversed y-axis and modified limits
ggplot(df, aes(x=hours, y=score)) +
geom_point(size=2) +
scale_y_reverse(limits=c(100, 50))``` Notice that the y-axis now ranges from 100 to 50.