You can use the following methods to draw a circle in a plot in R:

**Method 1: Draw Circle Using Base R**

library(plotrix) #create scatter plot plot(x, y) #add circle at specific (x, y) coordinates with specific radius draw.circle(x=3, y=8, radius=.5)

**Method 2: Draw Circle Using ggplot2**

library(ggplot2) library(ggforce) #create scatter plot with circle at specific location with specific radius ggplot(data = df, aes(x, y)) + geom_point() + geom_circle(aes(x0=3, y0=8, r=1), inherit.aes=FALSE) + coord_fixed()

The following examples shows how to use each method in practice.

**Example 1: Draw Circle Using Base R**

To draw a circle on a plot in base R, you need to first install and load the **plotrix** package:

**install.packages('plotrix')
library(plotrix)**

Next, we can use the **draw.circle()** function from the **plotrix** package to add a circle to a scatter plot in base R:

#create data frame df <- data.frame(x=c(1, 2, 2, 3, 3, 4, 8), y=c(2, 4, 5, 4, 7, 9, 10)) #create scatter plot plot(df$x, df$y) #add circle draw.circle(x=3, y=8, radius=.5)

You can also use the **draw.circle()** function multiple times to plot multiple circles on the same plot:

#create data frame df <- data.frame(x=c(1, 2, 2, 3, 3, 4, 8), y=c(2, 4, 5, 4, 7, 9, 10)) #create scatter plot plot(df$x, df$y) #add multiple circles to plot draw.circle(x=3, y=8, radius=.5) draw.circle(x=4, y=5, radius=.5, border='red', col='lightblue', lwd=5, lty='dashed')

Notice that multiple circles have been added to the plot at the (x, y) coordinates that we specified.

**Example 2: Draw Circle Using ggplot2**

To draw a circle on a plot in ggplot2, you need to first install and load the **ggplot2** and **ggforce **packages:

**install.packages('ggplot2')
install.packages('ggforce')
library(ggplot2)
library(ggforce)**

Next, we can use the **geom_circle()** function from the **ggforce **package to add a circle to a scatter plot in ggplot2:

#create data frame df <- data.frame(x=c(1, 2, 2, 3, 3, 4, 8), y=c(2, 4, 5, 4, 7, 9, 10)) #create scatter plot with circle ggplot(data = df, aes(x, y)) + geom_point() + geom_circle(aes(x0=3, y0=8, r=1), linetype='dashed', color='red', fill='lightblue', lwd=1.5, inherit.aes=FALSE) + coord_fixed()

The circle is placed in the exact (x, y) coordinates that we specified.

**Note**: If you don’t use the **coord_fixed()** argument, the circle may appear as an ellipse instead.

**Additional Resources**

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

How to Create a Scatterplot in R with Multiple Variables

How to Label Points on a Scatterplot in R

How to Add a Regression Equation to a Plot in R