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











