Esta pregunta es consecuencia de mis sobre los colores de fondo en ggplot2.¿Cómo puedo tener dos diferentes scale_fill_manual activo en un comando ggplot
De las respuestas allí, ahora soy capaz de usar geom_rect
para dar un fondo a mi trama que tiene cinco colores diferentes. Además de eso, me gustaría trazar un gráfico de barras que use dos colores diferentes. Puedo hacer cada una de estas tareas por separado, pero cuando trato de combinar los comandos scale_fill_manual
choque.
Aquí es lo que estoy tratando:
scores = data.frame(category = 1:4, percentage = c(34,62,41,44), type = c("a","a","a","b"))
rects <- data.frame(ystart = c(0,25,45,65,85), yend = c(25,45,65,85,100), col = letters[1:5])
labels = c("ER", "OP", "PAE", "Overall")
medals = c("navy","goldenrod4","darkgrey","gold","cadetblue1")
ggplot() +
geom_rect(data = rects, aes(xmin = -Inf, xmax = Inf, ymin = ystart, ymax = yend, fill=col), alpha = 0.3) +
scale_fill_manual(values=medals) +
opts(legend.position="none") +
geom_bar(data=scores, aes(x=category, y=percentage, fill=type), stat="identity") +
#scale_fill_manual(values = c("indianred1", "indianred4")) +
scale_x_continuous(breaks = 1:4, labels = labels)
Como está escrito, esto hace que los dos colores barchart lo mismo que los dos primeros colores de fondo. Extracción de la "#
" en la segunda scale_fill_manual
comando (penúltima línea) anula el color de fondo comandos para hacer las barras de los colores que quiero, pero hace que el fondo tiene sólo los dos colores que quiero en el barchart
.
¿Cómo puedo tener un solo comando scale_fill_manual
aplicar al fondo geom_rect
y el otro a la geom_bar
diagrama de barras (o cómo puedo conseguir el mismo efecto por otros medios)?
Brilliant! Gracias. (tuve que cambiar medallas al inicio de la lista de valores en scale_fill_manual para que todo salga como tu imagen, pero haciendo que funcionó.) –