You can use the **scale_x_discrete()** function in ggplot2 to specify the values to use along a discrete x-axis in a plot.

This function uses the following basic syntax:

p + scale_x_discrete(name, labels, limits, ...)

where:

**name**: Name of the variable to use on x-axis**labels**: A vector of labels to use for the x-axis**limits**: A vector that specifies the min and max value for the x-axis

The **labels** argument is particularly useful for specifying the exact labels that should be used along the x-axis to represent factors or categorical variables.

The following example shows how to use the **scale_x_discrete()** function in practice in R.

**Example: How to Use scale_x_discrete in R**

For this example we will create the following dataset that contains information about various basketball players:

**#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'C', 'C'),
points=c(12, 15, 22, 24, 20, 40, 12, 18, 11),
assists=c(4, 6, 6, 2, 8, 0, 1, 8, 13))
#view data frame
df
team points assists
1 A 12 4
2 A 15 6
3 A 22 6
4 B 24 2
5 B 20 8
6 C 40 0
7 C 12 1
8 C 18 8
9 C 11 13**

The dataset contains information about the team name, points scored and total assists for 9 different basketball players.

Suppose that we would like to create a bar plot to visualize the total count of players by team.

We can use the **geom_bar()** function from **ggplot2** to do so.

If you don’t have the **ggplot2** data visualization package already installed then you can use the following syntax to do so:

**#install ggplot2 package if necessary
install.packages('ggplot2')
**

Once the package is installed, you can use the following syntax to create a bar chart:

**library(ggplot2)
#create bar plot to visualize count by team
ggplot(df, aes(team)) +
geom_bar()
**

This produces the following plot:

The x-axis displays each of the unique team names and the y-axis displays the total count of players on each team.

We can see that the x-axis currently uses the names of the teams for the axis labels: A, B and C.

Suppose that we would like to customize the x-axis labels to instead display different names.

The easiest way to do so is by using the **labels** argument within the **scale_x_discrete()** function.

For example, we can use the following syntax to use the following x-axis labels instead:

- Team A
- Team B
- Team C

**library(ggplot2)
#create bar plot to visualize count by team
ggplot(df, aes(team)) +
geom_bar() +
scale_x_discrete(labels=c('Team A', 'Team B', 'Team C'))**

This produces the following plot:

Notice that the x-axis now has the exact labels that we specified within the **labels** argument.

You can also easily change the x-axis title by specifying the title first in the **scale_x_discrete** function.

For example, we can use the following syntax to specify both the x-axis label and the x-axis title:

**library(ggplot2)
#create bar plot to visualize count by team
ggplot(df, aes(team)) +
geom_bar() +
scale_x_discrete('Team Names', labels=c('Team A', 'Team B', 'Team C'))**

This produces the following plot:

**Note**: You can find the complete documentation for the **scale_x_discrete** function in ggplot2 here.

**Additional Resources**

The following tutorials explain how to perform other common tasks in ggplot2:

How to Use scale_y_continuous in ggplot2

How to Rotate Axis Labels in ggplot2

How to Change Legend Labels in ggplot2