You can use the following basic syntax to create a scatterplot with multiple variables in R:
#create scatterplot of x1 vs. y1 plot(x1, y1, col='red') #add scatterplot of x2 vs. y2 points(x2, y2, col='blue') #add legend legend(1, 25, legend=c('Data 1', 'Data 2'), pch=c(19, 19), col=c('red', 'blue'))
The following examples show how to use this syntax in practice.
Example 1: Create Scatterplot with Two Variables
The following code shows how to create a scatterplot with two different variables:
#define datasets x1 = c(1, 3, 6, 11, 19, 20) y1 = c(7, 10, 11, 12, 18, 25) x2 = c(1, 3, 8, 13, 17, 19) y2 = c(9, 15, 18, 21, 22, 22) #create scatterplot of x1 vs. y1 plot(x1, y1, col='red', pch=19) #add scatterplot of x2 vs. y2 points(x2, y2, col='blue', pch=19) #add legend legend(1, 25, legend=c('Data 1', 'Data 2'), pch=c(19, 19), col=c('red', 'blue'))
Example 2: Customize the Scatterplot
The following code shows how to customize the axes labels, title, and size of the points in the plot:
#define datasets
x1 = c(1, 3, 6, 11, 19, 20)
y1 = c(7, 10, 11, 12, 18, 25)
x2 = c(1, 3, 8, 13, 17, 19)
y2 = c(9, 15, 18, 21, 22, 22)
#create scatterplot of x1 vs. y1
plot(x1, y1, col='red', pch=19, cex=1.3,
xlab='X', ylab='Y', main='Scatterplot of Two Variables')
#overlay scatterplot of x2 vs. y2
points(x2, y2, col='blue', pch=19, cex=1.3)
#add legend
legend(1, 25, legend=c('Data 1', 'Data 2'), pch=c(19, 19), col=c('red', 'blue'))
Note that the pch argument specifies the shape of the points in the plot. A pch value of 19 specifies a filled-in circle.
You can find a complete list of pch values and their corresponding shapes here.
Additional Resources
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