How to add Circles in Plots in R with Examples
How to add Circles in Plots in R?. To draw a circle in a plot in R, use the following methods.
Approach 1: Using Base R, draw a circle.
library(plotrix)
Syntax for creating scatter plot
plot(x, y)
Now we can add circles at specific (x, y) coordinates with specific radius
draw.circle(x=3, y=8, radius=.5)
Approach 2: ggplot2 is used to draw a circle.
library(ggplot2) library(ggforce)
make a scatter plot with a circle at a given position and radius
ggplot(data = df, aes(x, y)) + geom_point() + geom_circle(aes(x0=3, y0=8, r=1), inherit.aes=FALSE) + coord_fixed()
The examples below demonstrate how to apply each strategy in practice.
Example 1: Using Base R, draw a circle
You must first install and load the plotrix package in order to create a circle on a plot in R:
install.packages('plotrix') library(plotrix)
To add a circle to a scatter plot in base R, we can use the plotrix package’s draw.circle() function.
create a data frame
df <- data.frame(x=c(2, 3, 4, 3, 4, 5, 6), y=c(6, 3, 5, 2, 8, 11, 10))
df x y 1 2 6 2 3 3 3 4 5 4 3 2 5 4 8 6 5 11 7 6 10
create a scatter plot
plot(df$x, df$y)
Now add circle
draw.circle(x=3, y=8, radius=.5)
You can also use the draw to your advantage. To plot many circles on the same plot, use the circle() function multiple times.
Let’s create a data frame
df <- data.frame(x=c(2, 3, 4, 3, 4, 5, 6), y=c(6, 3, 5, 2, 8, 11, 10))
As usual, we can create a scatter plot
plot(df$x, df$y)
Now add multiple circles to the plot
draw.circle(x=3, y=8, radius=.5) draw.circle(x=4, y=5, radius=.5, border='blue', col='red', lwd=5, lty='dashed')
At the (x, y) coordinates that we supplied, many circles have been placed on the plot.
Best Data Science Books For Beginners » finnstats
Example 2: Draw Circle Using ggplot2
Install and load the ggplot2 and ggforce packages before drawing a circle on a plot in ggplot2.
install.packages('ggplot2') install.packages('ggforce') library(ggplot2) library(ggforce)
Next, we can use the ggforce package’s geom circle() function to add a circle to a scatter plot in ggplot2.
Let’s create a data frame
df <- data.frame(x=c(2, 3, 4, 3, 4, 5, 6), y=c(6, 3, 5, 2, 8, 11, 10))
Now create a scatter plot with a circle
ggplot(data = df, aes(x, y)) + geom_point() + geom_circle(aes(x0=3, y0=8, r=1), linetype='dashed', color='red', fill='blue', lwd=1.5, inherit.aes=FALSE) + coord_fixed()
The circle is centered on the (x, y) coordinates we gave.
Note that if you don’t use the coord fixed() parameter, the circle can end up looking like an ellipse.