Nothing
## ----setup, include=FALSE-----------------------------------------------------
set.seed(42)
library(packcircles)
if (!requireNamespace("ggplot2", quietly = TRUE)) {
# Cannot run graph code without ggplot2 so turn off chunk evaluation
warning("Package ggplot2 is required for this vignette")
knitr::opts_chunk$set(eval = FALSE)
}
## -----------------------------------------------------------------------------
areas <- c(20, 10, 40, rep(5, 7))
# Generate the layout
packing <- circleProgressiveLayout(areas)
head( round(packing, 2) )
## ----fig.width=4, fig.height=4------------------------------------------------
library(ggplot2)
t <- theme_bw() +
theme(panel.grid = element_blank(),
axis.text=element_blank(),
axis.ticks=element_blank(),
axis.title=element_blank())
theme_set(t)
dat.gg <- circleLayoutVertices(packing, npoints=50)
ggplot(data = dat.gg) +
geom_polygon(aes(x, y, group = id), colour = "black",
fill = "grey90", alpha = 0.7, show.legend = FALSE) +
geom_text(data = packing, aes(x, y), label = 1:nrow(packing)) +
coord_equal()
## ----fig.width=7, fig.height=5------------------------------------------------
ncircles <- length(areas)
nreps <- 6
packings <- lapply(
1:nreps,
function(i) {
x <- sample(areas, ncircles)
circleProgressiveLayout(x)
})
packings <- do.call(rbind, packings)
npts <- 50
dat.gg <- circleLayoutVertices(packings, npoints = npts)
dat.gg$rep <- rep(1:nreps, each = ncircles * (npts+1))
ggplot(data = dat.gg, aes(x, y)) +
geom_polygon(aes(group = id),
colour = "black", fill = "grey90") +
coord_equal() +
facet_wrap(~ rep, nrow = 2)
## ----fig.width=7, fig.height=4------------------------------------------------
areas <- 1:1000
# area: small to big
packing1 <- circleProgressiveLayout(areas)
dat1 <- circleLayoutVertices(packing1)
# area: big to small
packing2 <- circleProgressiveLayout( rev(areas) )
dat2 <- circleLayoutVertices(packing2)
dat <- rbind(
cbind(dat1, set = 1),
cbind(dat2, set = 2) )
ggplot(data = dat, aes(x, y)) +
geom_polygon(aes(group = id, fill = -id),
colour = "black", show.legend = FALSE) +
scale_fill_distiller(palette = "RdGy") +
coord_equal() +
facet_wrap(~set,
labeller = as_labeller(
c('1' = "small circles first",
'2' = "big circles first"))
)
## -----------------------------------------------------------------------------
data("bacteria")
head(bacteria)
## ----fig.width=5, fig.height=5, fig.align='center'----------------------------
packing <- circleProgressiveLayout(bacteria)
dat.gg <- circleLayoutVertices(packing)
ggplot(data = dat.gg) +
geom_polygon(aes(x, y, group = id, fill = factor(id)),
colour = "black",
show.legend = FALSE) +
scale_fill_manual(values = bacteria$colour) +
scale_y_reverse() +
coord_equal()
## ----fig.width=5, fig.height=5------------------------------------------------
if (requireNamespace("ggiraph")) {
gg <- ggplot(data = dat.gg) +
ggiraph::geom_polygon_interactive(
aes(x, y, group = id, fill = factor(id),
tooltip = bacteria$label[id], data_id = id),
colour = "black",
show.legend = FALSE) +
scale_fill_manual(values = bacteria$colour) +
scale_y_reverse() +
labs(title = "Hover over circle to display taxon name") +
coord_equal()
ggiraph::ggiraph(ggobj = gg, width_svg = 5, height_svg = 5)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.