boxplot() v R: How to Make BoxPozemky v RStudio [Příklady]
boxplot() v R
boxplot() v R pomáhá vizualizovat rozdělení dat podle kvartilů a detekovat přítomnost odlehlých hodnot. Ke kreslení boxplot() v R můžete použít geometrický objekt geom_boxplot() z knihovny ggplot2.
Použijeme datovou sadu o kvalitě ovzduší k zavedení boxplot() v R s ggplot. Tento soubor dat měří kvalitu ovzduší v New Yorku od května do září 1973. Soubor dat obsahuje 154 pozorování. Použijeme následující proměnné:
- Ozon: Číselná proměnná
- Vítr: Numerická proměnná
- Měsíc: květen až září. Numerická proměnná
Vytvořit Box Spiknutí
Než začnete vytvářet svůj první boxplot() v R, musíte s daty manipulovat následovně:
- Krok 1: Importujte data
- Krok 2: Odstraňte nepotřebné proměnné
- Krok 3: Převeďte měsíc na úrovni faktoru
- Krok 4: Vytvořte novou kategorickou proměnnou rozdělující měsíc na tři úrovně: začátek, střed a konec.
- Krok 5: Odstraňte chybějící pozorování
Všechny tyto kroky se provádějí pomocí dplyr a operátora potrubí %>%.
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"))))
Osvědčeným postupem je zkontrolovat strukturu dat pomocí funkce glimpse().
glimpse(data_air)
Výstup:
## 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...
V datové sadě jsou NA. Jejich odstranění je moudré.
# Step 5 data_air_nona <-data_air %>% na.omit()
Základní krabicová zápletka
Nakreslíme základní R boxplot() s rozložením ozónu po měsících.
# Store the graph box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone)) # Add the geometric object box plot box_plot + geom_boxplot()
Vysvětlení kódu
- Uložte graf pro další použití
- box_plot: Graf uložíte do proměnné box_plot Je to užitečné pro další použití nebo se vyhnete příliš složité řadě kódů
- Přidejte geometrický objekt R boxplot()
- Dataset data_air_nona předáte do ggplot boxplot.
- Do argumentu aes() přidáte osu x a osu y.
- Znak + znamená, že chcete, aby R pokračoval ve čtení kódu. Dělá kód čitelnějším tím, že jej prolomí.
- Pomocí geom_boxplot() vytvořte krabicový graf
Výstup:
Změňte stranu grafu
Můžete otočit stranu grafu.
box_plot + geom_boxplot()+ coord_flip()
Vysvětlení kódu
- box_plot: Používáte graf, který jste si uložili. Vyhne se přepisování všech kódů pokaždé, když do grafu přidáte nové informace.
- geom_boxplot(): Vytvořte boxplots() v R
- coord_flip(): Otočení strany grafu
Výstup:
Změnit barvu odlehlé hodnoty
Můžete změnit barvu, tvar a velikost odlehlých hodnot.
box_plot + geom_boxplot(outlier.colour = "red", outlier.shape = 2, outlier.size = 3) + theme_classic()
Vysvětlení kódu
- outlier.colour=”red”: Ovládejte barvu odlehlých hodnot
- outlier.shape=2: Změní tvar odlehlé hodnoty. 2 odkazuje na trojúhelník
- outlier.size=3: Změní velikost trojúhelníku. Velikost je úměrná číslu.
Výstup:
Přidejte souhrnnou statistiku
Do R boxplot() můžete přidat souhrnnou statistiku.
box_plot + geom_boxplot() + stat_summary(fun.y = mean, geom = "point", size = 3, color = "steelblue") + theme_classic()
Vysvětlení kódu
- stat_summary() umožňuje přidat shrnutí do horizontálního boxplotu R
- Argument fun.y řídí vrácené statistiky. Budete používat střední
- Poznámka: K dispozici jsou další statistiky, jako je min. a max. V jednom grafu lze zobrazit více než jednu statistiku
- geom = „bod“: Vyneste průměr s bodem
- size=3: Velikost bodu
- barva =”ocelová modrá”: Barva bodů
Výstup:
Box Zápletka s tečkami
V dalším horizontálním boxplotu R přidáte vrstvy bodového grafu. Každá tečka představuje pozorování.
box_plot + geom_boxplot() + geom_dotplot(binaxis = 'y', dotsize = 1, stackdir = 'center') + theme_classic()
Vysvětlení kódu
- geom_dotplot() umožňuje přidat tečku na šířku přihrádky
- binaxis='y': Změňte polohu teček podél osy y. Ve výchozím nastavení osa x
- dotsize=1: Velikost teček
- stackdir='center': Způsob, jak skládat tečky: Čtyři hodnoty:
- „nahoru“ (výchozí),
- "dolů"
- "centrum"
- "uprostřed"
Výstup:
Ovládání Estetika Box Spiknutí
Změňte barvu krabice
Můžete změnit barvy skupiny.
ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) + geom_boxplot() + theme_classic()
Vysvětlení kódu
- Barvy skupin jsou řízeny v mapování aes(). Pomocí color= Month můžete změnit barvu rámečku a grafu vousů podle měsíců
Výstup:
Box zápletka s více skupinami
Je také možné přidat více skupin. Rozdíl v kvalitě vzduchu si můžete vizualizovat podle dne měření.
ggplot(data_air_nona, aes(Month, Ozone)) + geom_boxplot(aes(fill = day_cat)) + theme_classic()
Vysvětlení kódu
- Mapování aes() geometrického objektu řídí skupiny, které se mají zobrazit (tato proměnná musí být faktorem)
- aes(fill= day_cat) umožňuje vytvořit tři rámečky pro každý měsíc na ose x
Výstup:
Box Zápletka s roztřesenými tečkami
Dalším způsobem, jak tečku zobrazit, jsou roztřesené body. Je to pohodlný způsob, jak vizualizovat body pomocí boxplotu pro kategorická data v proměnné R.
Tato metoda zabraňuje překrývání diskrétních dat.
box_plot + geom_boxplot() + geom_jitter(shape = 15, color = "steelblue", position = position_jitter(width = 0.21)) + theme_classic()
Vysvětlení kódu
- geom_jitter() přidává ke každému bodu malý pokles.
- shape=15 mění tvar bodů. 15 představuje čtverce
- barva = „ocelově modrá“: Změna barvy bodu
- position=position_jitter(width = 0.21): Způsob umístění překrývajících se bodů. position_jitter(width = 0.21) znamená, že posunete body o 20 procent od osy x. Standardně 40 procent.
Výstup:
Můžete vidět rozdíl mezi prvním grafem s metodou jitter a druhým s bodovou metodou.
box_plot + geom_boxplot() + geom_point(shape = 5, color = "steelblue") + theme_classic()
Vroubkované Box Spiknutí
Zajímavou vlastností geom_boxplot() je vrubová funkce boxplot v R. Notch plot zužuje rámeček kolem mediánu. Hlavním účelem vrubového krabicového grafu je porovnat významnost mediánu mezi skupinami. Existují silné důkazy, že dvě skupiny mají různé mediány, když se zářezy nepřekrývají. Zářez se vypočítá následovně:
s je mezikvartil a počet pozorování.
box_plot + geom_boxplot(notch = TRUE) + theme_classic()
Vysvětlení kódu
- geom_boxplot(notch=TRUE): Vytvořte vrubový horizontální boxplot R
Výstup:
Shrnutí
Různé typy horizontálního boxplotu R můžeme shrnout v tabulce níže:
Objektivní | Kód |
---|---|
Základní krabicová zápletka |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() |
převrátit stranu |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip() |
Vroubkovaná krabicová zápletka |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE) |
Box zápletka s roztřesenými tečkami |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21)) |
Zkontrolujte také: - Kurz R pro začátečníky: Naučte se programovací jazyk R