boxplot() i R: Hvordan lage BoxPlotter i RStudio [Eksempler]
boxplot() i R
boxplot() i R hjelper til med รฅ visualisere fordelingen av dataene etter kvartil og oppdage tilstedevรฆrelsen av uteliggere. Du kan bruke det geometriske objektet geom_boxplot() fra ggplot2-biblioteket til รฅ tegne et boxplot() i R.
Vi vil bruke luftkvalitetsdatasettet til รฅ introdusere boxplot() i R med ggplot. Dette datasettet mรฅler luftkvaliteten i New York fra mai til september 1973. Datasettet inneholder 154 observasjoner. Vi vil bruke fรธlgende variabler:
- Ozon: Numerisk variabel
- Vind: Numerisk variabel
- Mรฅned: mai til september. Numerisk variabel
Opprett Box Plott
Fรธr du begynner รฅ lage ditt fรธrste boxplot() i R, mรฅ du manipulere dataene som fรธlger:
- Trinn 1: Importer dataene
- Trinn 2: Slipp unรธdvendige variabler
- Trinn 3: Konverter mรฅned i faktornivรฅ
- Trinn 4: Lag en ny kategorisk variabel som deler mรฅneden med tre nivรฅer: begynnelse, midt og slutt.
- Trinn 5: Fjern manglende observasjoner
Alle disse trinnene gjรธres med dplyr og rรธrledningsoperatรธren %>%.
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"))))
En god praksis er รฅ sjekke strukturen til dataene med funksjonen glimpse().
glimpse(data_air)
Utgang:
## 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...
Det er NA-er i datasettet. ร fjerne dem er lurt.
# Step 5 data_air_nona <-data_air %>% na.omit()
Grunnleggende boksplott
La oss plotte det grunnleggende R-boksplot() med fordelingen av ozon etter mรฅned.
# Store the graph
box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone))
# Add the geometric object box plot
box_plot +
geom_boxplot()
Kode Forklaring
- Lagre grafen for videre bruk
- box_plot: Du lagrer grafen i variabelen box_plot. Det er nyttig for videre bruk eller unngรฅ for komplisert kodelinje
- Legg til det geometriske objektet til R boxplot()
- Du sender datasettet data_air_nona til ggplot boxplot.
- Inne i aes()-argumentet legger du til x-aksen og y-aksen.
- +-tegnet betyr at du vil at R skal fortsette รฅ lese koden. Det gjรธr koden mer lesbar ved รฅ bryte den.
- Bruk geom_boxplot() for รฅ lage et boksplott
Utgang:
Bytt side av grafen
Du kan snu siden av grafen.
box_plot + geom_boxplot()+ coord_flip()
Kode Forklaring
- box_plot: Du bruker grafen du lagret. Den unngรฅr รฅ skrive om alle kodene hver gang du legger til ny informasjon i grafen.
- geom_boxplot(): Lag boxplots() i R
- coord_flip(): Vend siden av grafen
Utgang:
Endre farge pรฅ ytterside
Du kan endre farge, form og stรธrrelse pรฅ uteliggere.
box_plot +
geom_boxplot(outlier.colour = "red",
outlier.shape = 2,
outlier.size = 3) +
theme_classic()
Kode Forklaring
- outlier.colour=โrรธdโ: Kontroller fargen pรฅ uteliggere
- outlier.shape=2: Endre formen pรฅ uteliggeren. 2 refererer til trekant
- outlier.size=3: Endre stรธrrelsen pรฅ trekanten. Stรธrrelsen er proporsjonal med antallet.
Utgang:
Legg til en sammendragsstatistikk
Du kan legge til en oppsummeringsstatistikk til R boxplot().
box_plot +
geom_boxplot() +
stat_summary(fun.y = mean,
geom = "point",
size = 3,
color = "steelblue") +
theme_classic()
Kode Forklaring
- stat_summary() tillater รฅ legge til et sammendrag til det horisontale boksplot R
- Argumentet fun.y styrer statistikken som returneres. Du vil bruke middel
- Merk: Annen statistikk er tilgjengelig som min og maks. Mer enn รฉn statistikk kan vises i samme graf
- geom = "punkt": Plott gjennomsnittet med et punkt
- stรธrrelse=3: Stรธrrelsen pรฅ punktet
- farge =โstรฅlblรฅโ: Farge pรฅ punktene
Utgang:
Box Plott med prikker
I neste horisontale boksplott R legger du til punktplottlagene. Hver prikk representerer en observasjon.
box_plot +
geom_boxplot() +
geom_dotplot(binaxis = 'y',
dotsize = 1,
stackdir = 'center') +
theme_classic()
Kode Forklaring
- geom_dotplot() gjรธr det mulig รฅ legge til dot til beholderens bredde
- binaxis='y': Endre posisjonen til prikkene langs y-aksen. Som standard, x-aksen
- dotsize=1: Stรธrrelsen pรฅ prikkene
- stackdir='center': Mรฅte รฅ stable prikkene pรฅ: Fire verdier:
- "opp" (standard),
- "ned"
- "senter"
- "hele midten"
Utgang:
Kontroll Estetikk av Box Plott
Endre fargen pรฅ boksen
Du kan endre fargene pรฅ gruppen.
ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) +
geom_boxplot() +
theme_classic()
Kode Forklaring
- Fargene til gruppene kontrolleres i aes()-tilordningen. Du kan bruke color= Month for รฅ endre fargen pรฅ boksen og vรฆrhรฅrsplottet i henhold til mรฅnedene
Utgang:
Box plott med flere grupper
Det er ogsรฅ mulig รฅ legge til flere grupper. Du kan visualisere forskjellen i luftkvaliteten i henhold til mรฅledagen.
ggplot(data_air_nona, aes(Month, Ozone)) +
geom_boxplot(aes(fill = day_cat)) +
theme_classic()
Kode Forklaring
- Aes()-tilordningen av det geometriske objektet kontrollerer gruppene som skal vises (denne variabelen mรฅ vรฆre en faktor)
- aes(fill= day_cat) lar deg lage tre bokser for hver mรฅned i x-aksen
Utgang:
Box Plott med rystede prikker
En annen mรฅte รฅ vise prikken pรฅ er med rystede punkter. Det er en praktisk mรฅte รฅ visualisere punkter med boxplot for kategoriske data i R-variabel.
Denne metoden unngรฅr overlapping av de diskrete dataene.
box_plot +
geom_boxplot() +
geom_jitter(shape = 15,
color = "steelblue",
position = position_jitter(width = 0.21)) +
theme_classic()
Kode Forklaring
- geom_jitter() legger til litt forfall til hvert punkt.
- shape=15 endrer formen pรฅ punktene. 15 representerer rutene
- farge = "stรฅlblรฅ": Endre fargen pรฅ punktet
- position=position_jitter(width = 0.21): Mรฅte รฅ plassere de overlappende punktene. position_jitter(width = 0.21) betyr at du flytter punktene med 20 prosent fra x-aksen. Som standard, 40 prosent.
Utgang:
Du kan se forskjellen mellom den fรธrste grafen med jittermetoden og den andre med punktmetoden.
box_plot +
geom_boxplot() +
geom_point(shape = 5,
color = "steelblue") +
theme_classic()
hakk Box Plott
Et interessant trekk ved geom_boxplot(), er en notched boxplot-funksjon i R. Notchplotten begrenser boksen rundt medianen. Hovedformรฅlet med et hakkede boksplott er รฅ sammenligne betydningen av medianen mellom grupper. Det er sterke bevis for at to grupper har forskjellige medianer nรฅr hakkene ikke overlapper hverandre. Et hakk beregnes som fรธlger:
med er interkvartil og antall observasjoner.
box_plot +
geom_boxplot(notch = TRUE) +
theme_classic()
Kode Forklaring
- geom_boxplot(notch=TRUE): Lag et horisontalt boksplot R med hakk
Utgang:
Sammendrag
Vi kan oppsummere de forskjellige typene horisontale boksplott R i tabellen nedenfor:
| Mรฅlet | Kode |
|---|---|
| Grunnleggende boksplott |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() |
| snu siden |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip() |
| Hakket boksplott |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE) |
| Box plott med rystede prikker |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21)) |
Sjekk ogsรฅ: - R-opplรฆring for nybegynnere: Lรฆr R-programmeringssprรฅk











