/ / Jak dodać pasy błędów SE do mojego wykresu w ggplot2? - r, ggplot2, wykres słupkowy, pasek błędów

Jak dodać paski błędów SE do mojego wykresu w ggplot2? - r, ggplot2, wykres słupkowy, pasek błędów

Zrobiłem prosty barplot z ggplot2 porównując średnią długość życia (wiek) samców i samic dla 2 gatunków owadów. Mój kod wygląda tak, ponieważ "dataset" jest, no cóż, moim zestawem danych ...

    gplot(dataset, aes(Species, Age, fill=Sex))+
stat_summary(fun.y = mean, geom = "bar", position = "dodge")+
scale_fill_manual(values = c("Grey25", "Grey"))+
theme(legend.title = element_blank())+
scale_y_continuous(limits = c(0,15))

Próbowałem użyć następującego kodu, aby ręcznie wprowadzić wartość średniej ± SE, aby ustawić ograniczenia dla paska błędów. Dla uproszczenia załóżmy, że średnia = 10 i SE = 0,5 dla mężczyzn gatunków1.

geom_errorbar(aes(ymin=9.5, ymax=10.5),width=.2,position=position_dodge(.9))

Ten kod rzeczywiście działa, ale ustawia te same paski błędów dla każdego słupka na moim wykresie.

Jak mogę dodać słupki błędów równe odpowiedniemu SE dla każdego słupka na moim wykresie?

Jestem całkiem nowym użytkownikiem ggplota i R ogólnie, więc każda pomoc / rada jest mile widziana.

Odpowiedzi:

2 dla odpowiedzi № 1

Nie musisz więcej niż dodawać stat_summary(geom = "errorbar", fun.data = mean_se, position = "dodge") do twojej działki:

library(ggplot2)

ggplot(diamonds, aes(cut, price, fill = color)) +
stat_summary(geom = "bar", fun.y = mean, position = "dodge") +
stat_summary(geom = "errorbar", fun.data = mean_se, position = "dodge")

Jeśli wolisz wcześniej obliczyć wartości, możesz to zrobić tak:

library(tidyverse)
pdata <- diamonds %>%
group_by(cut, color) %>%
summarise(new = list(mean_se(price))) %>%
unnest(new)


pdata %>%
ggplot(aes(cut, y = y, fill = color)) +
geom_col(position = "dodge") +
geom_errorbar(aes(ymin = ymin, ymax = ymax), position = "dodge")

0 dla odpowiedzi nr 2

Możesz dodać pasek błędu na swojej plamce za pomocą geom_errorbar Geom.

Musisz dostarczyć ymin i ymax, więc musisz obliczyć to ręcznie.

Od geom_errorbar strona pomocy:

p + geom_errorbar(aes(ymin = lower, ymax = upper), width = 0.2)

Colin