Dado que presenta los cromosomas de forma circular, pruebe las herramientas proporcionadas por el paquete ecolitk proporcionado por Bioconductor, que incluye herramientas para trazar varios tipos de formas en cromosomas circulares.
ETA: Aquí hay un ejemplo de su uso para crear un diagrama de barra circular, aunque solo araña la superficie de las cosas que puede hacer con él.

library(ecolitk)
plot.new()
plot.window(c(-5, 5), c(-5, 5))
plot.chrom = function(data, chromlength, radius=1,
width=chromlength/length(data), ...) {
linesCircle(radius, ...)
starts = seq(1, chromlength - width, width)
scale = .5/max(abs(data))
for (i in 1:length(starts)) {
polygonChrom(starts[i], starts[i]+width, chromlength, radius,
data[i] * scale + radius, ...)
}
}
plot.chrom(rnorm(100, 10, 1), 10000, radius=1)
plot.chrom(rnorm(100, 10, 2), 10000, radius=2, col="blue")
plot.chrom(rnorm(100, 10, 5), 10000, radius=3, col="red")
plot.chrom(rnorm(100, 10, 10), 10000, radius=4, col="green")
legend("topright", legend=c("chr1", "chr2", "chr3", "chr4"),
col=c("black", "blue", "red", "green"), lty=1)
ETA: Ah, ahora entiendo lo que quería decir sobre la división de las parcelas. En ese caso, este código debería ser lo que estás buscando. Utiliza los datos que usted presenta (con una ligera modificación, tuve que darle un nombre a la columna del cromosoma para que pudiera usar ddply) y le permite especificar el espaciado entre los cromosomas. Si bien no lo he probado en profundidad, las variables como la longitud de los cromosomas individuales y la media y la varianza de los datos simulados deberían funcionar como esperabas.

plot.multi.chrom = function(data, colors, spacing=50) {
plot.new()
plot.window(c(-5, 5), c(-5, 5))
lengths = ddply(data, .(chr), function(x) max(x$position))
nchrom = NROW(lengths)
offsets = cumsum(c(0, lengths[, 2])) + cumsum(c(0, rep(spacing, nchrom)))
tot.length = offsets[length(offsets)] + spacing
scales = .75/apply(abs(data[, 3:NCOL(data)]), 2, max)
for (i in 1:NROW(data)) {
for (j in 3:NCOL(data)) {
start = offsets[data[i, 1]] + data[i, 2]
polygonChrom(start, start + 1, tot.length,
j - 2, data[i, j] * scales[j - 2] + j - 2,
col=colors[j - 2])
}
}
}
chr <- rep (1:4, each = 200)
position <- c(1:200, 1:200, 1:200, 1:200)
v1bar <- rnorm(800, 10, 2)
v2bar <- rnorm(800, 10, 2)
v3bar <- rnorm(800, 10, 2)
mydata <- data.frame(chr=chr, position, v1bar, v2bar, v3bar)
require(plyr)
plot.multi.chrom(mydata, colors=c("red", "black", "green"), spacing=50)
legend("topright", legend=c("V1", "V2", "V3"),
col=c("red", "black", "green"), lty=1)
rbloggers tenía un gráfico similar (histograma) discutido anteriormente esta semana [HAGA CLIC AQUÍ] (http://www.r-bloggers.com/polar-histogram-pretty-and-useful/) –
¿Qué desea específicamente? incluir desde la figura del circo que mi respuesta, por ejemplo, no sirve? –
Su figura todas las características excepto (1) chr son círculo diferente (en lugar de var) - que obviamente pueden cambiar fácilmente (2) Chr son porciones separadas de pastel además de var en círculos diferentes - circos figura tiene esta propiedad – jon