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











