boxplot() w R: Jak to zrobić BoxWykresy w RStudio [Przykłady]
boxplot() w R
boxplot() w R pomaga wizualizować rozkład danych według kwartyli i wykrywać obecność wartości odstających. Możesz użyć obiektu geometrycznego geom_boxplot() z biblioteki ggplot2, aby narysować boxplot() w R.
Użyjemy zestawu danych airquality, aby wprowadzić boxplot() w R z ggplot. Ten zestaw danych mierzy jakość powietrza w Nowym Jorku od maja do września 1973 r. Zestaw danych zawiera 154 obserwacje. Użyjemy następujących zmiennych:
- Ozon: Zmienna numeryczna
- Wiatr: Zmienna numeryczna
- Miesiąc: od maja do września. Zmienna numeryczna
Stwórz Box Wątek
Zanim zaczniesz tworzyć swój pierwszy wykres pudełkowy w R, musisz manipulować danymi w następujący sposób:
- Krok 1: Zaimportuj dane
- Krok 2: Usuń niepotrzebne zmienne
- Krok 3: Przelicz miesiąc na poziom czynnika
- Krok 4: Utwórz nową zmienną kategorialną dzielącą miesiąc na trzy poziomy: początek, środek i koniec.
- Krok 5: Usuń brakujące obserwacje
Wszystkie te kroki wykonuje się przy użyciu dplyr i operatora potoku %>%.
library(dplyr) library(ggplot2) # Step 1 data_air <- airquality % > % #Step 2 select(-c(Solar.R, Temp)) % > % #Step 3 mutate(Month = factor(Month, order = TRUE, labels = c("May", "June", "July", "August", "September")), #Step 4 day_cat = factor(ifelse(Day < 10, "Begin", ifelse(Day < 20, "Middle", "End"))))
Dobrą praktyką jest sprawdzanie struktury danych za pomocą funkcjispoke().
glimpse(data_air)
Wyjście:
## Observations: 153 ## Variables: 5 ## $ Ozone <int> 41, 36, 12, 18, NA, 28, 23, 19, 8, NA, 7, 16, 11, 14, ... ## $ Wind <dbl> 7.4, 8.0, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1, 8.6... ## $ Month <ord> May, May, May, May, May, May, May, May, May, May, May,... ## $ Day <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,... ## $ day_cat <fctr> Begin, Begin, Begin, Begin, Begin, Begin, Begin, Begi...
W zbiorze danych znajdują się NA. Usunięcie ich jest mądre.
# Step 5 data_air_nona <-data_air %>% na.omit()
Podstawowy wykres pudełkowy
Narysujmy podstawowy wykres pudełkowy R z rozkładem ozonu według miesięcy.
# Store the graph box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone)) # Add the geometric object box plot box_plot + geom_boxplot()
Objaśnienie kodu
- Zapisz wykres do dalszego wykorzystania
- box_plot: Wykres jest przechowywany w zmiennej box_plot. Jest to pomocne przy dalszym użytkowaniu lub pozwala uniknąć zbyt skomplikowanych linii kodu
- Dodaj obiekt geometryczny R boxplot()
- Przekazujesz zbiór danych data_air_nona do ggplot boxplot.
- Wewnątrz argumentu aes() dodajesz oś x i oś y.
- Znak + oznacza, że chcesz, aby R nadal czytał kod. Kod staje się bardziej czytelny, ponieważ go łamie.
- Użyj geom_boxplot(), aby utworzyć wykres pudełkowy
Wyjście:
Zmień stronę wykresu
Możesz odwrócić bok wykresu.
box_plot + geom_boxplot()+ coord_flip()
Objaśnienie kodu
- box_plot: Używasz zapisanego wykresu. Dzięki temu unikniesz przepisywania wszystkich kodów za każdym razem, gdy dodasz nowe informacje do wykresu.
- geom_boxplot(): Tworzenie wykresów pudełkowych() w R
- coord_flip(): Odwróć bok wykresu
Wyjście:
Zmień kolor wartości odstającej
Możesz zmienić kolor, kształt i rozmiar wartości odstających.
box_plot + geom_boxplot(outlier.colour = "red", outlier.shape = 2, outlier.size = 3) + theme_classic()
Objaśnienie kodu
- outlier.color=”red”: Kontroluj kolor wartości odstających
- outlier.shape=2: Zmień kształt wartości odstającej. 2 odnosi się do trójkąta
- outlier.size=3: Zmień rozmiar trójkąta. Rozmiar jest proporcjonalny do liczby.
Wyjście:
Dodaj statystykę podsumowującą
Do wykresu pudełkowego R() można dodać statystykę podsumowującą.
box_plot + geom_boxplot() + stat_summary(fun.y = mean, geom = "point", size = 3, color = "steelblue") + theme_classic()
Objaśnienie kodu
- stat_summary() pozwala na dodanie podsumowania do poziomego wykresu pudełkowego R
- Argument fun.y kontroluje zwracane statystyki. Użyjesz środka
- Uwaga: dostępne są inne statystyki, takie jak min. i maks. Na tym samym wykresie można wyświetlić więcej niż jedną statystykę
- geom = „punkt”: Wykreśl średnią za pomocą punktu
- size=3: Rozmiar punktu
- color =”steelblue”: Kolor punktów
Wyjście:
Box Fabuła z kropkami
W następnym poziomym wykresie pudełkowym R dodajesz warstwy wykresu punktowego. Każdy punkt reprezentuje obserwację.
box_plot + geom_boxplot() + geom_dotplot(binaxis = 'y', dotsize = 1, stackdir = 'center') + theme_classic()
Objaśnienie kodu
- geom_dotplot() umożliwia dodanie kropki do szerokości pojemnika
- binaxis='y': Zmień położenie kropek wzdłuż osi Y. Domyślnie oś X
- dotsize=1: Rozmiar kropek
- stackdir='center': Sposób układania kropek: Cztery wartości:
- „w górę” (domyślnie),
- "na dół"
- "Centrum"
- „centralna całość”
Wyjście:
Kontroluj estetykę Box Wątek
Zmień kolor pola
Możesz zmienić kolory grupy.
ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) + geom_boxplot() + theme_classic()
Objaśnienie kodu
- Kolory grup są kontrolowane w mapowaniu aes(). Możesz użyć color= Month, aby zmienić kolor wykresu pudełkowego i wąsowego zgodnie z miesiącami
Wyjście:
Box wykres z wieloma grupami
Możliwe jest także dodanie wielu grup. Można zwizualizować różnicę w jakości powietrza w zależności od dnia pomiaru.
ggplot(data_air_nona, aes(Month, Ozone)) + geom_boxplot(aes(fill = day_cat)) + theme_classic()
Objaśnienie kodu
- Mapowanie aes() obiektu geometrycznego kontroluje grupy do wyświetlenia (ta zmienna musi być czynnikiem)
- aes(fill= day_cat) pozwala na utworzenie trzech pól dla każdego miesiąca na osi x
Wyjście:
Box Fabuła z drgającymi kropkami
Innym sposobem na pokazanie kropki są punkty drgające. Jest to wygodny sposób na wizualizację punktów za pomocą wykresu pudełkowego dla danych kategorycznych w zmiennej R.
Metoda ta pozwala uniknąć nakładania się dyskretnych danych.
box_plot + geom_boxplot() + geom_jitter(shape = 15, color = "steelblue", position = position_jitter(width = 0.21)) + theme_classic()
Objaśnienie kodu
- geom_jitter() dodaje niewielki zanik do każdego punktu.
- kształt=15 zmienia kształt punktów. 15 reprezentuje kwadraty
- color = „steelblue”: Zmień kolor punktu
- position=position_jitter(width = 0.21): Sposób umieszczania nakładających się punktów. position_jitter(width = 0.21) oznacza, że przesuwasz punkty o 20 procent od osi x. Domyślnie 40 procent.
Wyjście:
Widać różnicę pomiędzy pierwszym wykresem wykonanym metodą jittera, a drugim wykonanym metodą punktową.
box_plot + geom_boxplot() + geom_point(shape = 5, color = "steelblue") + theme_classic()
Szorstki Box Wątek
Ciekawą cechą geom_boxplot() jest funkcja wykresu pudełkowego z wycięciami w R. Wykres z wycięciami zawęża pole wokół mediany. Głównym celem wykresu pudełkowego z wycięciami jest porównanie istotności mediany między grupami. Istnieją mocne dowody na to, że dwie grupy mają różne mediany, gdy wycięcia się nie nakładają. Wycięcie oblicza się w następujący sposób:
gdzie jest międzykwartylem i liczbą obserwacji.
box_plot + geom_boxplot(notch = TRUE) + theme_classic()
Objaśnienie kodu
- geom_boxplot(notch=TRUE): Utwórz poziomy wykres pudełkowy z wycięciami R
Wyjście:
Podsumowanie
W poniższej tabeli możemy podsumować różne typy poziomego wykresu pudełkowego R:
Cel | Code |
---|---|
Podstawowy wykres pudełkowy |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() |
obróć bok |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip() |
Wykres pudełkowy z karbem |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE) |
Box wykres z drgającymi kropkami |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21)) |
Sprawdź również: - Samouczek R dla początkujących: Naucz się języka programowania R