Вот возможное решение, но для функции stage()
требуется ggplot v3.3.0.
Чтобы указать на основные изменения:
- Вместо использования заливки как неявная группировка, я явно установил группировку, чтобы она не была привязана к заливке.
- Я добавил заливку как эстетику c геометрии стержня.
- Ящик теперь имеет неотмеченную эстетику c
fill = 'gray'
- В текстовой сводке статистики используется
stage()
для вычисления статистики c, но затем 0
как фактическое размещение.
library(ggplot2)
library(scales)
ggplot(mtcars, aes(as.factor(cyl), wt,
group = interaction(as.factor(cyl), as.factor(am)))) +
geom_bar(aes(fill=as.factor(am)), position = "dodge", stat = "summary", fun = "median") +
geom_boxplot(outlier.shape = NA, width=0.2,
color = "black", fill = 'gray',
position = position_dodge(0.9)) +
stat_summary(aes(label=round(after_stat(y), 2), y = stage(wt, after_stat = 0)),
fun=median, geom="text", size=8, col = "white", vjust=-0.5,
position = position_dodge(0.9)) +
stat_summary(fun=mean, geom="point", shape=18, size=4, col="white", position = position_dodge(0.9)) +
labs(x = "Conditions", y = "Medians") +
scale_y_continuous(limits=c(0,7),oob = rescale_none) +
theme_bw()
Создано 06.05.2020 с помощью пакета REPEX (v0.3.0)