boxplot() in R: How to Make BoxTelek az RStudióban [Példák]

boxplot() az R-ben

boxplot() az R-ben segít az adatok kvartilis szerinti eloszlásának megjelenítésében és a kiugró értékek kimutatásában. Használhatja a geom_boxplot() geometriai objektumot a ggplot2 könyvtárból egy boxplot() rajzolásához R-ben.

A levegőminőségi adatkészletet használjuk a boxplot() bevezetésére az R-ben a ggplot-tal. Ez az adatkészlet New York levegőminőségét méri 1973 májusától szeptemberig. Az adatkészlet 154 megfigyelést tartalmaz. A következő változókat fogjuk használni:

  • Ózon: numerikus változó
  • Szél: Numerikus változó
  • Hónap: májustól szeptemberig. Numerikus változó

Teremt Box Cselekmény

Mielőtt elkezdené az első boxplot() létrehozását R-ben, a következőképpen kell manipulálnia az adatokat:

  • 1. lépés: Importálja az adatokat
  • 2. lépés: Dobja el a szükségtelen változókat
  • 3. lépés: A hónap átalakítása faktorszintre
  • 4. lépés: Hozzon létre egy új kategorikus változót, amely három szinttel osztja fel a hónapot: kezdete, közepe és vége.
  • 5. lépés: Távolítsa el a hiányzó megfigyeléseket

Mindezek a lépések a dplyr és a %>% pipeline operátor segítségével hajthatók végre.

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

Jó gyakorlat az adatok szerkezetének ellenőrzése a glimpse() függvénnyel.

glimpse(data_air)

output:

## 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...

Vannak NA-k az adatkészletben. Eltávolításuk bölcs dolog.

# Step 5
data_air_nona <-data_air %>% na.omit()	

Alapvető dobozrajz

Ábrázoljuk az alap R boxplot()-t az ózon havi eloszlásával.

# Store the graph
box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone))
# Add the geometric object box plot
box_plot +
    geom_boxplot()

Kód Magyarázat

  • Tárolja a grafikont további felhasználás céljából
    • box_plot: A grafikont a box_plot változóban tárolja. Ez hasznos a további használathoz, vagy elkerülheti a túl bonyolult kódsorokat
  • Adja hozzá az R boxplot() geometriai objektumát
    • A data_air_nona adatkészletet átadja a ggplot boxplotnak.
    • Az aes() argumentumon belül hozzáadja az x tengelyt és az y tengelyt.
    • A + jel azt jelenti, hogy azt szeretné, hogy R továbbra is olvassa a kódot. Feltörésével olvashatóbbá teszi a kódot.
    • A geom_boxplot() segítségével hozzon létre egy dobozdiagramot

output:

alapvető Box Cselekmény

Változtassa meg a grafikon oldalát

Megfordíthatja a grafikon oldalát.

box_plot +
  geom_boxplot()+
  coord_flip()

Kód Magyarázat

  • box_plot: A tárolt grafikont használja. Ez elkerüli az összes kód újraírását minden alkalommal, amikor új információt ad a grafikonhoz.
  • geom_boxplot(): Hozzon létre boxplots()-t az R-ben
  • coord_flip(): A grafikon oldalának megfordítása

output:

A grafikon oldalának módosítása

Változtassa meg a kiugró színt

Módosíthatja a kiugró csíkok színét, alakját és méretét.

box_plot +
    geom_boxplot(outlier.colour = "red",
        outlier.shape = 2,
        outlier.size = 3) +
    theme_classic()

Kód Magyarázat

  • outlier.colour=”red”: A kiugró értékek színének szabályozása
  • outlier.shape=2: A kiugró alakzat módosítása. A 2 a háromszögre vonatkozik
  • outlier.size=3: A háromszög méretének módosítása. A méret arányos a számmal.

output:

Változtassa meg a Outlier színét

Összefoglaló statisztika hozzáadása

Hozzáadhat egy összefoglaló statisztikát az R boxplot()-hoz.

box_plot +
    geom_boxplot() +
    stat_summary(fun.y = mean,
        geom = "point",
        size = 3,
        color = "steelblue") +
    theme_classic()

Kód Magyarázat

  • A stat_summary() lehetővé teszi egy összegzés hozzáadását az R vízszintes boxplothoz
  • A fun.y argumentum szabályozza a visszaadott statisztikákat. Az aljasságot fogod használni
  • Megjegyzés: Egyéb statisztikák is elérhetők, például min és max. Egynél több statisztika is megjeleníthető ugyanazon a grafikonon
  • geom = „pont”: ábrázolja az átlagot egy ponttal
  • size=3: A pont mérete
  • szín =”acélkék”: A pontok színe

output:

Összefoglaló statisztika hozzáadása

Box Telek pontokkal

A következő vízszintes R boxplotban hozzáadja a pontrajzi rétegeket. Minden pont egy megfigyelést jelent.

box_plot +
    geom_boxplot() +
    geom_dotplot(binaxis = 'y',
        dotsize = 1,
        stackdir = 'center') +
    theme_classic()

Kód Magyarázat

  • A geom_dotplot() lehetővé teszi a pontok hozzáadását a tároló szélességéhez
  • binaxis='y': Módosítsa a pontok helyzetét az y tengely mentén. Alapértelmezés szerint x-tengely
  • dotsize=1: A pontok mérete
  • stackdir='center': A pontok halmozásának módja: Négy érték:
    • „fel” (alapértelmezett),
    • "le"
    • "központ"
    • "középpont"

output:

Box Telek pontokkal

Ellenőrzés Esztétika a Box Cselekmény

Változtassa meg a doboz színét

Megváltoztathatja a csoport színeit.

ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) +
    geom_boxplot() +
    theme_classic()

Kód Magyarázat

  • A csoportok színeit az aes() leképezés szabályozza. A color= Month használatával módosíthatja a doboz és a whisker plot színét a hónapok szerint

output:

Változtassa meg a színét Box

Box telek több csoporttal

Lehetőség van több csoport hozzáadására is. Megjelenítheti a levegőminőség különbségét a mérés napja szerint.

ggplot(data_air_nona, aes(Month, Ozone)) +
    geom_boxplot(aes(fill = day_cat)) +
    theme_classic()

Kód Magyarázat

  • A geometriai objektum aes() leképezése szabályozza a megjelenítendő csoportokat (ennek a változónak tényezőnek kell lennie)
  • Az aes(fill= day_cat) lehetővé teszi három doboz létrehozását minden hónaphoz az x tengelyen

output:

Box Telek több csoporttal

Box Telek remegő pontokkal

A pont megjelenítésének másik módja a vibráló pontok. Ez egy kényelmes módja a pontok megjelenítésének boxplot segítségével az R változó kategorikus adataihoz.

Ezzel a módszerrel elkerülhető a diszkrét adatok átfedése.

box_plot +
    geom_boxplot() +
    geom_jitter(shape = 15,
        color = "steelblue",
        position = position_jitter(width = 0.21)) +
    theme_classic()

Kód Magyarázat

  • A geom_jitter() minden ponthoz hozzáad egy kis csökkenést.
  • shape=15 megváltoztatja a pontok alakját. A 15 a négyzeteket jelöli
  • szín = „acélkék”: a pont színének módosítása
  • pozíció=pozíció_jitter(szélesség = 0.21): Az átfedő pontok elhelyezésének módja. position_jitter(width = 0.21) azt jelenti, hogy a pontokat 20 százalékkal elmozdítja az x tengelytől. Alapértelmezés szerint 40 százalék.

output:

Box Telek remegő pontokkal

Látható a különbség az első grafikon között a jitter módszerrel és a második között a pont módszerrel.

box_plot +
    geom_boxplot() +
    geom_point(shape = 5,
        color = "steelblue") +
    theme_classic()

Box Telek remegő pontokkal

hornyolt Box Cselekmény

A geom_boxplot() érdekes tulajdonsága az R bevágásos boxplot függvénye. A bevágási diagram leszűkíti a mezőt a medián körül. A bemetszett dobozos diagram fő célja a medián jelentőségének összehasonlítása a csoportok között. Szilárd bizonyíték van arra, hogy két csoport eltérő mediánnal rendelkezik, amikor a bevágások nem fedik át egymást. A bevágás kiszámítása a következőképpen történik:

hornyolt Box Cselekmény

-val az interkvartilis és a megfigyelések száma.

box_plot +
    geom_boxplot(notch = TRUE) +
    theme_classic()

Kód Magyarázat

  • geom_boxplot(notch=TRUE): Hozzon létre egy hornyolt vízszintes boxplot R-t

output:

hornyolt Box Cselekmény

Összegzésként

Az alábbi táblázatban összefoglalhatjuk az R vízszintes boxplot különböző típusait:

Objektív Kód
Alapvető dobozrajz
ggplot(df, aes( x = x1, y =y)) + geom_boxplot()
fordítsa meg az oldalát
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip()
Vágott dobozos telek
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE)
Box cselekmény remegő pontokkal
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21))

Ellenőrizze még:- R oktatóanyag kezdőknek: Ismerje meg az R programozási nyelvet