Я пытаюсь сопоставить цвет выбросов блочной диаграммы с цветом заливки, который задается эстетикой (scale_colour_discrete).
Вот пример.
m <- ggplot(movies, aes(y = votes, x = factor(round(rating)),
fill=factor(Animation)))
m + geom_boxplot() + scale_y_log10()
Это сгенерирует график ниже. Как мне изменить эти черные точки на красноватые / зеленоватые цвета, используемые в теле? Параметр outlier.colour прямоугольной диаграммы, кажется, выбирает один цвет по горизонтали, а не как эстетика, если я правильно понимаю. Я не возражаю использовать цветовую эстетику, если это помогает.
Редактировать:
Адаптировано это решение (Изменение определения усов в 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()