Wykres pudełkowy w odniesieniu do dwóch czynników wykorzystujących ggplot2 w R

13

Jestem bardzo nowy w R i jakichkolwiek pakietach w R. Spojrzałem na dokumentację ggplot2, ale nie mogłem tego znaleźć. Chcę wykresu zmiennej zmiennej boxthisw odniesieniu do dwóch czynników f1i f2. Przypuszczam, że jest zarówno f1i f2są zmienne czynników, a każdy z nich trwa dwie wartości i boxthisjest zmienną ciągłą. Chcę dostać 4 boxplots na wykresie, z których każda odpowiada jednej kombinacji z możliwych kombinacji, które f1i f2mogą przyjmować. Myślę, że używając podstawowej funkcjonalności w R, można to zrobić za pomocą

> boxplot(boxthis ~ f1 * f2 , data = datasetname) 

Z góry dziękuję za wszelką pomoc.

Curious2learn
źródło
Podaj przykładowe dane, aby uzyskać dokładne odpowiedzi.
mpiktas
2
To pytanie prawie na pewno lepiej pasowałoby do stackoverflow.com, ponieważ niewiele jest tutaj danych statystycznych.
richiemorrisroe

Odpowiedzi:

23

Mogę wymyślić dwa sposoby na osiągnięcie tego:

1. Utwórz wszystkie kombinacje f1i f2poza ggplotfunkcją

library(ggplot2)

df <- data.frame(f1=factor(rbinom(100, 1, 0.45), label=c("m","w")), 
                 f2=factor(rbinom(100, 1, 0.45), label=c("young","old")),
                 boxthis=rnorm(100))

df$f1f2 <- interaction(df$f1, df$f2)

ggplot(aes(y = boxthis, x = f1f2), data = df) + geom_boxplot()

wprowadź opis zdjęcia tutaj

2. użyj koloru / wypełnienia / itp.

ggplot(aes(y = boxthis, x = f2, fill = f1), data = df) + geom_boxplot()

wprowadź opis zdjęcia tutaj

Bernd Weiss
źródło
4
(+1) Podoba mi się użycie interaction(). Warto zauważyć, że możemy geom_boxplot(position = position_dodge(width = .9))dodać dodatkową spację między wykresami pudełek.
chl
1
Możesz także użyć dodgeargumentu w ggplotfunkcji -ggplot(aes(y = boxthis, x = f2, fill = f1, dodge=f1), data = df) + geom_boxplot()
Maciej
0

Oto inny sposób:

ggplot(datasetname) + boxplot(aes(x=as.factor(f1),y=boxthis)) + facet_wrap(~as.factor(f2), nrow=5)

Daje coś takiego:

Fasetowana fabuła pudełka

Richard
źródło