Как я могу активировать два разных масштаба_заполнения_в команде ggplot

Этот вопрос вытекает из моего более раннего о цветах фона. в ggplot2.

Судя по приведенным там ответам, теперь я могу использовать geom_rect, чтобы дать фон моему графику, который имеет пять разных цветов. Кроме того, я хотел бы построить гистограмму, в которой используются два разных цвета. Я могу выполнять каждую из этих задач по отдельности, но когда я пытаюсь объединить их, команды scale_fill_manualконфликтуют.

Вот что я пытаюсь сделать.:

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) 

Как написано, это делает два цвета гистограммы такими же, как первые два цвета фона. Удаление «#» во второй команде scale_fill_manual(предпоследней строке )переопределяет команды цвета фона, чтобы сделать полосы нужными мне цветами, но заставляет фон иметь только два цвета, которые я хочу в barchart.

Как сделать так, чтобы одна команда scale_fill_manualприменялась к фону geom_rect, а другая — к диаграмме geom_bar(или как добиться того же эффекта другими средствами)?

8
задан Community 23 May 2017 в 12:22
поделиться