ggplot2: цвет полосы facet_wrap на основе переменной в наборе данных

Есть ли способ заполнить полосы фасетов, созданные с помощью facet_wrap, на основе переменной, поставляемой с фреймом данных?

Пример данных:

MYdata <- data.frame(fruit = rep(c("apple", "orange", "plum", "banana", "pear", "grape")), farm = rep(c(0,1,3,6,9,12), each=6), weight = rnorm(36, 10000, 2500), size=rep(c("small", "large")))

Пример сюжета:

p1 = ggplot(data = MYdata, aes(x = farm, y = weight)) + geom_jitter(position = position_jitter(width = 0.3), aes(color = factor(farm)), size = 2.5, alpha = 1) + facet_wrap(~fruit)

Я знаю, как изменить цвет фона полос (например, на оранжевый):

p1 + theme(strip.background = element_rect(fill="orange"))

Есть ли способ передать значения в переменнойsize вMYdata к параметруfill вelement_rect?

По сути, вместо одного цвета для всех полос я бы хотел, чтобы цвет фона мелких фруктов (яблоко, слива, груша) был зеленым, а фон крупных фруктов (апельсин, банан, виноград) - красным.

Ответы на вопрос(2)

Ваш ответ на вопрос