boxplot() u R: Kako napraviti BoxParcele u RStudiu [Primjeri]
boxplot() u R
boxplot() u R pomaže vizualizirati distribuciju podataka po kvartilu i otkriti prisutnost outliera. Možete koristiti geometrijski objekt geom_boxplot() iz biblioteke ggplot2 za crtanje boxplot() u R.
Koristit ćemo skup podataka o kvaliteti zraka za uvođenje boxplot() u R s ggplot. Ovaj skup podataka mjeri kvalitetu zraka u New Yorku od svibnja do rujna 1973. Skup podataka sadrži 154 opažanja. Koristit ćemo sljedeće varijable:
- Ozon: Numerička varijabla
- Vjetar: Numerička varijabla
- Mjesec: od svibnja do rujna. Numerička varijabla
stvoriti Box Zemljište
Prije nego počnete stvarati svoj prvi boxplot() u R-u, morate manipulirati podacima na sljedeći način:
- Korak 1: Uvezite podatke
- Korak 2: Izbacite nepotrebne varijable
- Korak 3: Pretvorite mjesec u razinu faktora
- Korak 4: Napravite novu kategoričku varijablu koja dijeli mjesec na tri razine: početak, sredina i kraj.
- Korak 5: Uklonite zapažanja koja nedostaju
Svi ovi koraci izvode se s dplyr i operatorom cjevovoda %>%.
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"))))
Dobra praksa je provjeriti strukturu podataka pomoću funkcije glimpse().
glimpse(data_air)
Izlaz:
## 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...
U skupu podataka postoje NA. Mudro ih je ukloniti.
# Step 5 data_air_nona <-data_air %>% na.omit()
Osnovna kutijasta parcela
Nacrtajmo osnovni R boxplot() s distribucijom ozona po mjesecima.
# 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šnjenje koda
- Pohranite grafikon za daljnju upotrebu
- box_plot: Grafikon spremate u varijablu box_plot To je korisno za daljnju upotrebu ili izbjegavanje previše složenih linija kodova
- Dodajte geometrijski objekt R boxplot()
- Proslijedite skup podataka data_air_nona u ggplot boxplot.
- Unutar aes() argumenta dodajete x-os i y-os.
- Znak + znači da želite da R nastavi čitati kod. Čini kôd čitljivijim razbijanjem.
- Upotrijebite geom_boxplot() za izradu okvirnog dijagrama
Izlaz:
Promijenite stranu grafikona
Možete okrenuti stranu grafikona.
box_plot + geom_boxplot()+ coord_flip()
Objašnjenje koda
- box_plot: Koristite graf koji ste pohranili. Izbjegava ponovno pisanje svih kodova svaki put kada dodate nove informacije na grafikon.
- geom_boxplot(): Stvorite boxplots() u R
- coord_flip(): Okrenite stranu grafa
Izlaz:
Promjena boje outliera
Možete promijeniti boju, oblik i veličinu outliera.
box_plot + geom_boxplot(outlier.colour = "red", outlier.shape = 2, outlier.size = 3) + theme_classic()
Objašnjenje koda
- outlier.colour=”red”: Kontrolirajte boju outliera
- outlier.shape=2: Promjena oblika outliera. 2 se odnosi na trokut
- outlier.size=3: Promjena veličine trokuta. Veličina je proporcionalna broju.
Izlaz:
Dodajte sumarnu statistiku
Možete dodati sumarnu statistiku u R boxplot().
box_plot + geom_boxplot() + stat_summary(fun.y = mean, geom = "point", size = 3, color = "steelblue") + theme_classic()
Objašnjenje koda
- stat_summary() omogućuje dodavanje sažetka u vodoravni okvir R
- Argument fun.y kontrolira vraćenu statistiku. Upotrijebit ćete zlobno
- Napomena: Dostupne su i druge statistike kao što su min. i maks. U istom grafikonu može se prikazati više od jedne statistike
- geom = “točka”: iscrtajte prosjek s točkom
- veličina=3: Veličina točke
- boja =”steelblue”: Boja bodova
Izlaz:
Box Iscrtaj s točkama
U sljedećem horizontalnom boxplotu R dodajete slojeve točkastog iscrtavanja. Svaka točka predstavlja zapažanje.
box_plot + geom_boxplot() + geom_dotplot(binaxis = 'y', dotsize = 1, stackdir = 'center') + theme_classic()
Objašnjenje koda
- geom_dotplot() omogućuje dodavanje točke širini spremnika
- binaxis='y': Promjena položaja točaka duž y-osi. Prema zadanim postavkama, x-os
- dotsize=1: Veličina točaka
- stackdir='center': Način slaganja točaka: Četiri vrijednosti:
- “gore” (zadano),
- “dolje”
- "centar"
- “centralna cjelina”
Izlaz:
Kontrolna estetika Box Zemljište
Promijenite boju kutije
Možete promijeniti boje grupe.
ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) + geom_boxplot() + theme_classic()
Objašnjenje koda
- Boje grupa kontroliraju se u aes() mapiranju. Možete upotrijebiti color= Month da biste promijenili boju dijagrama okvira i brkova prema mjesecima
Izlaz:
Box parcela s više grupa
Također je moguće dodati više grupa. Možete vizualizirati razliku u kvaliteti zraka prema danu mjerenja.
ggplot(data_air_nona, aes(Month, Ozone)) + geom_boxplot(aes(fill = day_cat)) + theme_classic()
Objašnjenje koda
- Aes() preslikavanje geometrijskog objekta kontrolira grupe za prikaz (ova varijabla mora biti faktor)
- aes(fill= day_cat) omogućuje stvaranje tri okvira za svaki mjesec na x-osi
Izlaz:
Box Crtanje s isprekidanim točkama
Još jedan način za prikazivanje točke je s iskrivljenim točkama. To je prikladan način za vizualizaciju točaka s okvirom za kategoričke podatke u R varijabli.
Ova metoda izbjegava preklapanje diskretnih podataka.
box_plot + geom_boxplot() + geom_jitter(shape = 15, color = "steelblue", position = position_jitter(width = 0.21)) + theme_classic()
Objašnjenje koda
- geom_jitter() dodaje malo opadanja svakoj točki.
- shape=15 mijenja oblik točaka. 15 predstavlja kvadrate
- color = “steelblue”: Promjena boje točke
- position=position_jitter(width = 0.21): Način postavljanja točaka preklapanja. position_jitter(width = 0.21) znači da pomičete točke za 20 posto od x-osi. Standardno 40 posto.
Izlaz:
Možete vidjeti razliku između prvog grafikona s jitter metodom i drugog s point metodom.
box_plot + geom_boxplot() + geom_point(shape = 5, color = "steelblue") + theme_classic()
Reckast Box Zemljište
Zanimljiva značajka geom_boxplot() je funkcija boxplot s usjecima u R. Grafički prikaz s usjecima sužava okvir oko medijana. Glavna svrha dijagrama s urezima je usporedba značajnosti medijana između skupina. Postoje jaki dokazi da dvije skupine imaju različite medijane kada se zarezi ne preklapaju. Zarez se izračunava na sljedeći način:
s je interkvartil i broj opažanja.
box_plot + geom_boxplot(notch = TRUE) + theme_classic()
Objašnjenje koda
- geom_boxplot(notch=TRUE): Napravite urezani horizontalni okvir R
Izlaz:
Rezime
Možemo sažeti različite vrste vodoravnog boxplota R u donjoj tablici:
Cilj | Kodirati |
---|---|
Osnovna kutijasta parcela |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() |
okrenuti stranu |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip() |
Urezana okvirna parcela |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE) |
Box plot s isprekidanim točkama |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21)) |
Također provjerite: - R Vodič za početnike: Naučite R programski jezik