rplotgeometrydesctools

Drawing a series of circles in R


I made this image in powerpoint to illustrate what I am trying to do:

enter image description here

I am trying to make a series of circles (each of which are the same size) that "move" along the x-axis in consistent intervals; for instance, the center of each consecutive circle would be 2 points away from the previous circle.

I have tried several things, including the DrawCircle function from the DescTools package, but cant produce this. For example, here I am trying to draw 20 circles, where the center of each circle is 2 points away from the previous, and each circle has a radius of 2 (which doesnt work)

library(DescTools)
plotdat <- data.frame(xcords = seq(1,50, by = 2.5), ycords = rep(4,20))
Canvas()
DrawCircle(x=plotdat$xcords, y=plotdat$ycords, radius = 2)

How can this be done in R?


Solution

  • This is basically @Peter's answer but with modifications. Your approach was fine but there is no radius= argument in DrawCircle. See the manual page ?DrawCircle for the arguments:

    dev.new(width=12, height=4)
    Canvas(xlim = c(0,50), ylim=c(2, 6), asp=1, xpd=TRUE)
    DrawCircle(x=plotdat$xcords, y=plotdat$ycords, r.out = 2)
    

    PlotCanvas

    But your example has axes:

    plot(NA, xlim = c(0,50), ylim=c(2, 6), xlab="", ylab="", yaxt="n", asp=1, xpd=TRUE)
    DrawCircle(x=plotdat$xcords, y=plotdat$ycords, r.out = 2)
    

    enter image description here