Jak mogę mieć dwie różne aktywne funkcje scale_fill_manual w poleceniu ggplot

To pytanie wynika z mojegowcześniejszy o kolorach tła w ggplot2.

Z odpowiedzi na nie mogę teraz korzystaćgeom_rect aby dać tło mojej działce, która ma pięć różnych kolorów. Do tego chciałbym narysować wykres słupkowy, który używa dwóch różnych kolorów. Mogę wykonać każde z tych zadań osobno, ale kiedy próbuję je połączyćscale_fill_manual polecenia zderzają się.

Oto, co próbuję:

<code>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) 
</code>

Jak napisano, powoduje to, że dwa kolory wykresu słupkowego są takie same jak dwa pierwsze kolory tła. Usuwanie „#" na drugimscale_fill_manual polecenie (przedostatnia linia) zastępuje polecenia koloru tła, aby paski stały się kolorami, które chcę, ale sprawia, że ​​tło ma tylko dwa kolory, które chcę wbarchart.

Jak mogę je miećscale_fill_manual polecenie mające zastosowanie dogeom_rect tło, a drugie dogeom_bar wykres słupkowy (lub jak mogę osiągnąć ten sam efekt w inny sposób)?

questionAnswers(1)

yourAnswerToTheQuestion