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:

Basic Box Spiknutí

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ěna strany grafu

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:

Změnit barvu odlehlé hodnoty

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:

Přidejte souhrnnou statistiku

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:

Box Zápletka s tečkami

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:

Změňte barvu Box

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 Plot s více skupinami

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:

Box Zápletka s roztřesenými tečkami

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

Box Zápletka s roztřesenými tečkami

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ě:

Vroubkované Box Spiknutí

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:

Vroubkované Box Spiknutí

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