You can use the following methods to create a scatter plot by group in R:

**Method 1: Use Base R**

plot(df$x, df$y, col=as.factor(df$group))

**Method 2: Use ggplot2**

library(ggplot2) ggplot(df, aes(x, y)) + geom_point(aes(color=group))

The following examples show how to use each method in practice with the following data frame:

#create data frame df <- data.frame(x=c(1, 2, 2, 3, 5, 6, 7), y=c(4, 8, 7, 9, 15, 14, 20), group=c('A', 'A', 'A', 'B', 'B', 'B', 'B')) #view data frame df x y group 1 1 4 A 2 2 8 A 3 2 7 A 4 3 9 B 5 5 15 B 6 6 14 B 7 7 20 B

**Example 1: Scatter Plot by Group in Base R**

The following code shows how to create a scatterplot in base R where the points are colored based on the value of the ‘group’ variable:

#create scatterplot with points colored by group plot(df$x, df$y, col=as.factor(df$group), pch=19)

The color of each point reflects the value of the ‘group’ variable in the data frame.

The points with a ‘group’ value of A are shown in black and the points with a ‘group’ value of B are shown in red.

Note that **pch=19** tells R to use solid circles for the points in the plot.

You can find a complete list of pch values and their corresponding shapes here.

**Example 2: Scatter Plot by Group in ggplot2**

The following code shows how to create a scatterplot in ggplot2 where the points are colored based on the value of the ‘group’ variable:

library(ggplot2) #create scatterplot with points colored by group ggplot(df, aes(x, y)) + geom_point(aes(color=group))

Note that you can also modify the colors and size of the points in the plot:

library(ggplot2) #create scatterplot with points colored by group ggplot(df, aes(x, y)) + geom_point(aes(color=group), size=3) + scale_color_manual(values=c('purple', 'steelblue'))

Notice that we increased the point size using the **size** argument and the colors of the points match the colors that we specified in the **scale_color_manual()** argument.

**Additional Resources**

The following tutorials explain how to perform other common tasks with scatterplots in R:

How to Label Points on a Scatterplot in R

How to Create a Scatterplot with a Regression Line in R

How to Use the Jitter Function for Scatterplots in R