У меня есть набор данных, для которого я хочу построить среднее значение и пределы достоверности на графике динамита (я знаю о недостатках графиков динамита, но я работаю в корпоративной среде, где простая сводная статистика часто более полезна, чем представление распределение.) Я рассчитал сводную статистику перед построением графика следующим образом:
library(gmodels)
lci <- function(data) {
as.numeric(ci(data)[2])
}
uci <- function(data) {
as.numeric(ci(data)[3])
}
ID <- seq(1:140)
avg_outcome <- c(rnorm(100, 100, 20), rnorm(40, 60, 30))
avg_outcome[avg_outcome<0] <- 0
group <- c( rep("Red", 100), rep("Blue", 40) )
area <- c(rep("North", 50),rep("South", 10), rep("West", 15), rep("East", 25), rep("North", 15), rep("South", 5), rep("East", 20))
reprex <- data.frame(ID, avg_outcome, group, area)
reprex_avg <- reprex %>%
group_by(group, area) %>%
summarise_if(is.numeric, funs(mean, lci, uci))
Но я не могу понять, как заставить столбцы ошибок успешно складываться таким образом, как столбцы:
ggplot(reprex_avg, aes(x=area, fill=group, y=avg_outcome_mean, ymin=avg_outcome_lci, ymax=avg_outcome_uci)) +
geom_col(color="black") +
geom_errorbar()
дает:
Я пытался явно установить положение, например
ggplot(reprex_avg, aes(x=area, fill=group, y=avg_outcome_mean, ymin=avg_outcome_lci, ymax=avg_outcome_uci)) +
geom_col(color="black", position=position_stack(0.5)) +
#geom_errorbar() +
#geom_errorbar(aes(group=group)) + # this does nothing
#geom_errorbar(aes(group=group, linetype=group)) + # different linetypes but still not stacked
geom_errorbar(aes(group=group, linetype=group), position=position_stack(0.5)) +
geom_hline(yintercept=0) +
theme_bw()
, что дает:
вместе с предупреждением:
Warning message:
Stacking not well defined when not anchored on the axis
Что я не совсем понимаю, так как я установил эстетику для обеих осей.
Я знаю, что мог бы обойти это, используя уклоненный динамитный график или огранку по группам, но в этом случае я бы предпочел стек, потому что в моем реальном наборе данных много разных областей, поэтому уклонение выглядело бы путая а также потому, что меньшая группа присутствует только для небольшого их подмножества, поэтому огранка может привести к большому количеству неиспользуемого пространства.
Кто-нибудь знает, как я могу успешно складывать панели ошибок?