boxplot() in R: Hoe maak je het? BoxPercelen in RStudio [Voorbeelden]

boxplot() in R

boxplot() in R helpt om de distributie van de data per kwartiel te visualiseren en de aanwezigheid van outliers te detecteren. U kunt het geometrische object geom_boxplot() uit de ggplot2-bibliotheek gebruiken om een โ€‹โ€‹boxplot() in R te tekenen.

We zullen de dataset luchtkwaliteit gebruiken om boxplot() in R te introduceren met ggplot. Deze dataset meet de luchtkwaliteit van New York van mei tot september 1973. De dataset bevat 154 observaties. We zullen de volgende variabelen gebruiken:

  • Ozon: numerieke variabele
  • Wind: numerieke variabele
  • Maand: mei tot september. Numerieke variabele

creรซren Box Plot

Voordat u begint met het maken van uw eerste boxplot() in R, moet u de gegevens als volgt manipuleren:

  • Stap 1: Importeer de gegevens
  • Stap 2: Verwijder onnodige variabelen
  • Stap 3: Converteer Maand naar factorniveau
  • Stap 4: Maak een nieuwe categorische variabele die de maand verdeelt in drie niveaus: begin, midden en einde.
  • Stap 5: Verwijder ontbrekende waarnemingen

Al deze stappen worden uitgevoerd met dplyr en de pijplijnoperator %>%.

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

Een goede gewoonte is om de structuur van de gegevens te controleren met de functie glimp().

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

Er zijn NA's in de dataset. Het is verstandig om ze te verwijderen.

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

Basis boxplot

Laten we de basis R boxplot() uitzetten met de verdeling van ozon per maand.

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

Code Uitleg

  • Bewaar de grafiek voor verder gebruik
    • box_plot: U slaat de grafiek op in de variabele box_plot. Dit is handig voor verder gebruik of om te complexe regels code te vermijden.
  • Voeg het geometrische object van R boxplot() toe
    • U geeft de dataset data_air_nona door aan ggplot boxplot.
    • Binnen het argument aes() voegt u de x-as en de y-as toe.
    • Het + teken betekent dat u wilt dat R de code blijft lezen. Het maakt de code leesbaarder door deze te breken.
    • Gebruik geom_boxplot() om een โ€‹โ€‹boxplot te maken

Output:

Basic Box Plot

Verander de kant van de grafiek

U kunt de zijkant van de grafiek omdraaien.

box_plot +
  geom_boxplot()+
  coord_flip()

Code Uitleg

  • box_plot: U gebruikt de grafiek die u hebt opgeslagen. Het voorkomt dat u alle codes opnieuw moet schrijven telkens wanneer u nieuwe informatie aan de grafiek toevoegt.
  • geom_boxplot(): Boxplots() maken in R
  • coord_flip(): Draai de zijkant van de grafiek om

Output:

Verander de kant van de grafiek

Verander de kleur van de uitschieter

U kunt de kleur, vorm en grootte van de uitschieters wijzigen.

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

Code Uitleg

  • outlier.colour=โ€redโ€: Beheer de kleur van de uitbijters
  • outlier.shape=2: Verander de vorm van de uitbijter. 2 verwijst naar driehoek
  • outlier.size=3: Verander de grootte van de driehoek. De grootte is evenredig aan het aantal.

Output:

Verander de kleur van de uitschieter

Voeg een samenvattende statistiek toe

U kunt een samenvattende statistiek toevoegen aan de R boxplot().

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

Code Uitleg

  • Met stat_summary() kunt u een samenvatting toevoegen aan de horizontale boxplot R
  • Het argument fun.y beheert de geretourneerde statistieken. Je zult gemeen gebruiken
  • Opmerking: Er zijn andere statistieken beschikbaar, zoals min en max. Er kunnen meer dan รฉรฉn statistiek in dezelfde grafiek worden weergegeven
  • geom = โ€œpuntโ€: Teken het gemiddelde met een punt
  • size=3: Grootte van het punt
  • color =โ€staalblauwโ€: Kleur van de punten

Output:

Voeg een samenvattende statistiek toe

Box Plot met punten

In de volgende horizontale boxplot R voegt u de dotplotlagen toe. Elke dot vertegenwoordigt een observatie.

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

Code Uitleg

  • geom_dotplot() maakt het toevoegen van punten aan de bakbreedte mogelijk
  • binaxis='y': Wijzig de positie van de punten langs de y-as. Standaard x-as
  • dotssize=1: Grootte van de stippen
  • stackdir='center': Manier om de punten te stapelen: Vier waarden:
    • โ€œomhoogโ€ (standaard),
    • "Naar beneden"
    • "centrum"
    • โ€œcentrumgeheelโ€

Output:

Box Plot met punten

Controle Esthetiek van de Box Plot

Verander de kleur van het vakje

U kunt de kleuren van de groep wijzigen.

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

Code Uitleg

  • De kleuren van de groepen worden beheerd in de aes()-mapping. U kunt color= Month gebruiken om de kleur van de box-and-whiskerplot te wijzigen op basis van de maanden

Output:

Verander de kleur van de Box

Box perceel met meerdere groepen

Het is ook mogelijk om meerdere groepen toe te voegen. U kunt het verschil in de luchtkwaliteit visualiseren per dag van de maatregel.

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

Code Uitleg

  • De aes()-toewijzing van het geometrische object bepaalt welke groepen moeten worden weergegeven (deze variabele moet een factor zijn)
  • aes(fill= day_cat) maakt het mogelijk om drie vakken voor elke maand in de x-as te maken

Output:

Box Plot met meerdere groepen

Box Plot met gejitterde stippen

Een andere manier om de stip te tonen is met jittered points. Het is een handige manier om punten te visualiseren met boxplot voor categorische data in R-variabelen.

Deze methode vermijdt de overlapping van de discrete gegevens.

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

Code Uitleg

  • geom_jitter() voegt een beetje verval toe aan elk punt.
  • shape=15 verandert de vorm van de punten. 15 vertegenwoordigt de vierkanten
  • kleur = โ€œstaalblauwโ€: Verander de kleur van het punt
  • position=position_jitter(width = 0.21): Manier om de overlappende punten te plaatsen. position_jitter(width = 0.21) betekent dat u de punten 20 procent verplaatst ten opzichte van de x-as. Standaard 40 procent.

Output:

Box Plot met gejitterde stippen

Je kunt het verschil zien tussen de eerste grafiek met de jittermethode en de tweede met de puntmethode.

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

Box Plot met gejitterde stippen

getand Box Plot

Een interessante feature van geom_boxplot(), is een notched boxplot functie in R. De notch plot vernauwt de box rond de mediaan. Het hoofddoel van een notched box plot is om de significantie van de mediaan tussen groepen te vergelijken. Er is sterk bewijs dat twee groepen verschillende medianen hebben wanneer de notches niet overlappen. Een notch wordt als volgt berekend:

getand Box Plot

met is het interkwartiel en het aantal waarnemingen.

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

Code Uitleg

  • geom_boxplot(notch=TRUE): Maak een gekerfde horizontale boxplot R

Output:

getand Box Plot

Samenvatting

De verschillende typen horizontale boxplot R kunnen we in onderstaande tabel samenvatten:

Objectief Code
Basis boxplot
ggplot(df, aes( x = x1, y =y)) + geom_boxplot()
draai de zijkant om
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip()
Gekartelde boxplot
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE)
Box plot met trillende stippen
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21))

Controleer ook: - R-zelfstudie voor beginners: leer R-programmeertaal

Vat dit bericht samen met: