ggplot solo muestra una entrada cuando se ejecuta en un bucle for.
Me gustaría construir un gráfico en capas donde cada capa esté delante de la capa anterior. En el ejemplo simplificado que se muestra a continuación, parece que solo produce una capa y no puedo ver por qué.
arcs <- data.frame(
radius = seq(from = 10, to = 100, by = 10)
)
g <- ggplot(arcs)
for(yc in 1:3) {
for(xc in 1:3) {
g <- g + ggforce::geom_arc_bar(aes(x0 = xc * 10, y0 = yc * 10,
r0 = radius - 2, r = radius, start = 0, end = 2 * pi),
fill = 'blue', alpha = 0.1, colour = NA)
}
}
g <- g +
coord_equal()
print(g)
davy.ai
La razón por la que parece producir sólo una capa es porque todos los arcos se representan en el mismo color y con la misma transparencia. Si cambias el color de relleno o la transparencia para cada arco, podrás ver todas las capas.
Una forma de hacer esto es crear un vector de colores o transparencias y utilizarlo en los argumentos
fill
oalpha
deggforce::geom_arc_bar()
. Por ejemplo:Esto producirá un gráfico con tres capas que tienen diferentes colores y transparencias. Puedes ajustar los colores y transparencias según desees.