Коробчатая диаграмма, как сопоставить цвет выбросов с эстетикой заливки?

Я пытаюсь сопоставить цвет выбросов блочной диаграммы с цветом заливки, который задается эстетикой (scale_colour_discrete).

Вот пример.

m <- ggplot(movies, aes(y = votes, x = factor(round(rating)),
    fill=factor(Animation)))
m + geom_boxplot() + scale_y_log10()

Это сгенерирует график ниже. Как мне изменить эти черные точки на красноватые / зеленоватые цвета, используемые в теле? Параметр outlier.colour прямоугольной диаграммы, кажется, выбирает один цвет по горизонтали, а не как эстетика, если я правильно понимаю. Я не возражаю использовать цветовую эстетику, если это помогает.

Original Version


Редактировать:

Адаптировано это решение (Изменение определения усов в geom_boxplot) . Горизонтальное уклонение сбрасывается stats_summary и я не мог придумать, как его вернуть. Я бы, наверное, отбрасывал выбросы и растягивал усы по мере необходимости, поскольку теперь знаю, как.

# define the summary function
f <- function(x) {
  r <- quantile(x, probs = c(0.05, 0.25, 0.5, 0.75, 0.95))
  names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
  r
}
# define outlier function, beyound 5 and 95% percentiles
o <- function(x) {
  subset(x, x < quantile(x,probs=c(0.05))[1] | quantile(x,probs=c(0.95))[1] < x)
}

m <- ggplot(movies, aes(y = votes, x = factor(round(rating)),
    colour=factor(Animation)))
m <- m + stat_summary(fun.data=f, geom='boxplot')
m <- m + stat_summary(fun.y=o, geom='point', aes(colour=factor(Animation)))
m + scale_y_log10()

Failed attempt

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