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:

osnovni Box Zemljište

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 strane grafikona

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:

Promjena boje outliera

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:

Dodajte sažetak statistike

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:

Box Iscrtaj s točkama

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:

Promijenite boju Box

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 Zemljište s više grupa

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:

Box Crtanje s isprekidanim točkama

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()

Box Crtanje s isprekidanim točkama

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:

Reckast Box Zemljište

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:

Reckast Box Zemljište

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