## ----eval=FALSE--------------------------------------------------------------- # # library(packcircles) # library(ggplot2) # # ## List of tangencies. Vector elements are circle IDs. # ## The first element in each vector is an internal circle # ## and the subsequent elements are its neighbours. # internal <- list( # c(9, 4, 5, 6, 10, 11), # c(5, 4, 8, 6, 9), # c(8, 3, 2, 7, 6, 5, 4), # c(7, 8, 2, 1, 6) # ) # # ## Specification of external circle radii. # external <- data.frame(id = c(1, 2, 3, 4, 6, 10, 11), radius=10.0) # # ## The circleGraphLayout function is used to find an arrangement # ## of circles corresponding to the tangencies specified by `internal` # ## and the external circle sizes specified by `external`. The # ## result is a four-column data.frame: id, x, y, radius. # ## # layout <- circleGraphLayout(internal, external) # # ## Get data for circle vertices. # plotdat <- circleLayoutVertices(layout, xysizecols = 2:4, idcol = 1) # # ## Draw circles annotated with their IDs. # ggplot() + # geom_polygon(data=plotdat, aes(x, y, group=id), # fill=NA, colour="black") + # # geom_text(data=layout, aes(x, y, label=id)) + # # coord_equal() + # # theme_bw() #