/ / Wykres punktowy z grupowaniem typu boxplot - r, plot, ggplot2, ładowanie początkowe, przedział ufności

Wykres punktowy z grupowaniem typu boxplot - r, plot, ggplot2, bootstrapping, przedział ufności

Mam dane, które można wydrukować za pomocą pudełkafabuła, ale n dla każdego pola to tylko 3. Chciałbym je narysować za pomocą typu punkturange w ggplot2. Domyślnie pojawiają się jeden na drugim. Jak pogrupować swoje punkty obok siebie, gdy zostaną pogrupowane w boxplot?

library(ggplot2)

x <- rnorm(12, 3,5) # Real data are not always normally distributed.
y <- c(rep("T1", 6), rep("T2", 6))
z <- rep(c(10,20),6)

dat <- data.frame(Treatment = y, Temp = z, Meas = x)

p <- ggplot(dat, aes(Treatment, Meas))
p + geom_boxplot(aes(fill=factor(Temp)))

Edytować: Zaktualizowałem pytanie, aby wykluczyć ładowaniezgodnie z zaleceniami (oryginalnym pomysłem było użycie przedziałów ufności jako słupków błędu Zbyt wiele pytań dla jednego pytania = D). Podano bardziej szczegółowe pytanie dotyczące ładowania tutaj

wprowadź opis obrazu tutaj

Odpowiedzi:

5 dla odpowiedzi № 1

Masz dwa pytania (staraj się tego unikać).

  1. Bootstrapping. Jak bootstrapujesz z próbki 3 punktów, gdzie nie znasz podstawowej dystrybucji?

  2. Zakresy linii. Użyłem twoich oryginalnych danych do skonstruowania zakresów linii. Do zakresu linii potrzebujesz tylko wartości minimalnej, maksymalnej i średniej:

    ##First rearrange your data frame
    dat = with(dat, dat[order(Treatment, Temp, Meas),])
    dat$type = c("min", "mid", "max")
    
    library(reshape2)
    dat1 = dcast(dat, Treatment + Temp ~  type, value.var = "Meas")
    

Następnie ułożyć jak zwykle:

    p = ggplot(dat1) +
geom_pointrange(aes(ymin=min, ymax=max,
y=mid,x=Treatment, group=Temp),
position=position_dodge(width=0.20))

Argumenty pozycji zatrzymują linie, które są umieszczane jedna nad drugą. To daje:

Przykładowy wykres zakresu linii