You can use the following basic syntax to order the items on the x-axis of a plot in ggplot2:
ggplot(df, aes(x=factor(x_var, level=c('value1', 'value2', 'value3')), y=y_var)) +
geom_col()
The following examples show how to use this syntax in practice.
Example: Order Items on x-axis in ggplot2
Suppose we have the following data frame in R that shows the points scored by various basketball teams:
#create data frame
df <- data.frame(team=c('Mavs', 'Heat', 'Nets', 'Lakers'),
points=c(100, 122, 104, 109))
#view data frame
df
team points
1 Mavs 100
2 Heat 122
3 Nets 104
4 Lakers 109
If we create a bar plot to visualize the points scored by each team, ggplot2 will automatically order the bars in alphabetical order:
library(ggplot2) #create bar plot ggplot(df, aes(x=team, y=points)) + geom_col()

To specify an order for the bars on the x-axis, we can use the level argument as follows:
library(ggplot2) #create bar plot with specific axis order ggplot(df, aes(x=factor(team, level=c('Mavs', 'Heat', 'Nets', 'Lakers')), y=points)) + geom_col()

The bars are now in the exact order that we specified inside the level argument.
You may also want to use xlab() to rename the x-axis to something that is easier to read:
library(ggplot2) #create bar plot with specific axis order ggplot(df, aes(x=factor(team, level=c('Mavs', 'Heat', 'Nets', 'Lakers')), y=points)) + geom_col() + xlab('Team')

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
Even with the era of AI, blog like this was very helpful.
Thank you!
You are very Banno! We appreciate your feedback and support!