boxplot() i R: How to Make BoxHandlingar i RStudio [Exempel]
boxplot() i R
boxplot() i R hjรคlper till att visualisera fรถrdelningen av data per kvartil och upptรคcka fรถrekomsten av extremvรคrden. Du kan anvรคnda det geometriska objektet geom_boxplot() frรฅn ggplot2-biblioteket fรถr att rita en boxplot() i R.
Vi kommer att anvรคnda luftkvalitetsdataset fรถr att introducera boxplot() i R med ggplot. Denna datauppsรคttning mรคter luftkvaliteten i New York frรฅn maj till september 1973. Datauppsรคttningen innehรฅller 154 observationer. Vi kommer att anvรคnda fรถljande variabler:
- Ozon: Numerisk variabel
- Vind: Numerisk variabel
- Mรฅnad: maj till september. Numerisk variabel
Skapa Box Komplott
Innan du bรถrjar skapa din fรถrsta boxplot() i R mรฅste du manipulera data enligt fรถljande:
- Steg 1: Importera data
- Steg 2: Slรคpp onรถdiga variabler
- Steg 3: Konvertera mรฅnad till faktornivรฅ
- Steg 4: Skapa en ny kategorisk variabel som delar mรฅnaden med tre nivรฅer: bรถrjan, mitten och slutet.
- Steg 5: Ta bort saknade observationer
Alla dessa steg gรถrs med dplyr och pipelineoperatรถ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 bra praxis รคr att kontrollera strukturen pรฅ datan med funktionen glimpse().
glimpse(data_air)
Produktion:
## 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 finns NA i datamรคngden. Att ta bort dem รคr klokt.
# Step 5 data_air_nona <-data_air %>% na.omit()
Grundlรคggande boxplot
Lรฅt oss plotta den grundlรคggande R-boxplotten() med fรถrdelningen av ozon per mรฅnad.
# Store the graph
box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone))
# Add the geometric object box plot
box_plot +
geom_boxplot()
Kodfรถrklaring
- Lagra grafen fรถr vidare anvรคndning
- box_plot: Du lagrar grafen i variabeln box_plot. Det รคr anvรคndbart fรถr vidare anvรคndning eller fรถr att undvika alltfรถr komplicerade koder
- Lรคgg till det geometriska objektet fรถr R boxplot()
- Du skickar datauppsรคttningen data_air_nona till ggplot boxplot.
- Inuti aes()-argumentet lรคgger du till x-axeln och y-axeln.
- Tecknet + betyder att du vill att R ska fortsรคtta lรคsa koden. Det gรถr koden mer lรคsbar genom att bryta den.
- Anvรคnd geom_boxplot() fรถr att skapa en boxplot
Produktion:
Byt sida av grafen
Du kan vรคnda sidan av grafen.
box_plot + geom_boxplot()+ coord_flip()
Kodfรถrklaring
- box_plot: Du anvรคnder grafen du lagrade. Det undviker att skriva om alla koder varje gรฅng du lรคgger till ny information i grafen.
- geom_boxplot(): Skapa boxplots() i R
- coord_flip(): Vรคnd sidan av grafen
Produktion:
รndra fรคrg pรฅ avvikelsen
Du kan รคndra fรคrg, form och storlek pรฅ utstickarna.
box_plot +
geom_boxplot(outlier.colour = "red",
outlier.shape = 2,
outlier.size = 3) +
theme_classic()
Kodfรถrklaring
- outlier.colour=โrรถdโ: Styr fรคrgen pรฅ extremvรคrdena
- outlier.shape=2: รndra formen pรฅ avvikelsen. 2 avser triangel
- outlier.size=3: รndra storleken pรฅ triangeln. Storleken รคr proportionell mot antalet.
Produktion:
Lรคgg till en sammanfattande statistik
Du kan lรคgga till en sammanfattande statistik till R boxplot().
box_plot +
geom_boxplot() +
stat_summary(fun.y = mean,
geom = "point",
size = 3,
color = "steelblue") +
theme_classic()
Kodfรถrklaring
- stat_summary() tillรฅter att lรคgga till en sammanfattning till den horisontella boxplotten R
- Argumentet fun.y styr statistiken som returneras. Du kommer att anvรคnda medelvรคrde
- Obs: Annan statistik รคr tillgรคnglig som min och max. Mer รคn en statistik kan visas i samma graf
- geom = "punkt": Rita medelvรคrdet med en punkt
- storlek=3: Spetsens storlek
- fรคrg =โstรฅlblรฅโ: Fรคrg pรฅ punkterna
Produktion:
Box Rita med prickar
I nรคsta horisontella boxplot R lรคgger du till dot plot-lagren. Varje punkt representerar en observation.
box_plot +
geom_boxplot() +
geom_dotplot(binaxis = 'y',
dotsize = 1,
stackdir = 'center') +
theme_classic()
Kodfรถrklaring
- geom_dotplot() gรถr det mรถjligt att lรคgga till punkt till lรฅdans bredd
- binaxis='y': รndra positionen fรถr prickarna lรคngs y-axeln. Som standard, x-axel
- dotsize=1: Storleken pรฅ prickarna
- stackdir='center': Sรคtt att stapla prickarna: Fyra vรคrden:
- "upp" (standard),
- "ner"
- "Centrum"
- "hela mitten"
Produktion:
Kontroll Estetik av Box Komplott
รndra fรคrgen pรฅ lรฅdan
Du kan รคndra fรคrgerna pรฅ gruppen.
ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) +
geom_boxplot() +
theme_classic()
Kodfรถrklaring
- Fรคrgerna pรฅ grupperna styrs i aes()-mappningen. Du kan anvรคnda color= Month fรถr att รคndra fรคrgen pรฅ rutan och morrhรฅrsplott enligt mรฅnaderna
Produktion:
Box plot med flera grupper
Det รคr ocksรฅ mรถjligt att lรคgga till flera grupper. Du kan visualisera skillnaden i luftkvaliteten beroende pรฅ dagen fรถr รฅtgรคrden.
ggplot(data_air_nona, aes(Month, Ozone)) +
geom_boxplot(aes(fill = day_cat)) +
theme_classic()
Kodfรถrklaring
- Aes()-mappningen av det geometriska objektet styr grupperna som ska visas (denna variabel mรฅste vara en faktor)
- aes(fill= day_cat) tillรฅter att skapa tre rutor fรถr varje mรฅnad i x-axeln
Produktion:
Box Intrig med skakiga prickar
Ett annat sรคtt att visa punkten รคr med skakiga punkter. Det รคr ett bekvรคmt sรคtt att visualisera punkter med boxplot fรถr kategoriska data i R-variabel.
Denna metod undviker รถverlappning av diskreta data.
box_plot +
geom_boxplot() +
geom_jitter(shape = 15,
color = "steelblue",
position = position_jitter(width = 0.21)) +
theme_classic()
Kodfรถrklaring
- geom_jitter() lรคgger till lite fรถrfall till varje punkt.
- shape=15 รคndrar formen pรฅ punkterna. 15 representerar rutorna
- fรคrg = "stรฅlblรฅ": รndra fรคrgen pรฅ punkten
- position=position_jitter(width = 0.21): Sรคtt att placera de รถverlappande punkterna. position_jitter(width = 0.21) betyder att du flyttar punkterna med 20 procent frรฅn x-axeln. Som standard, 40 procent.
Produktion:
Du kan se skillnaden mellan den fรถrsta grafen med jittermetoden och den andra med punktmetoden.
box_plot +
geom_boxplot() +
geom_point(shape = 5,
color = "steelblue") +
theme_classic()
hack Box Komplott
En intressant egenskap hos geom_boxplot(), รคr en skรฅrad boxplotfunktion i R. Notchplotten smalnar av rutan runt medianen. Huvudsyftet med en skรฅrad boxplot รคr att jรคmfรถra betydelsen av medianen mellan grupper. Det finns starka bevis fรถr att tvรฅ grupper har olika medianer nรคr skรฅrorna inte รถverlappar varandra. En notch berรคknas enligt fรถljande:
med รคr interkvartilen och antalet observationer.
box_plot +
geom_boxplot(notch = TRUE) +
theme_classic()
Kodfรถrklaring
- geom_boxplot(notch=TRUE): Skapa en skรฅrad horisontell boxplot R
Produktion:
Sammanfattning
Vi kan sammanfatta de olika typerna av horisontell boxplot R i tabellen nedan:
| Mรฅl | Koda |
|---|---|
| Grundlรคggande boxplot |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() |
| vรคnd รฅt sidan |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip() |
| Naggad boxtomt |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE) |
| Box plot med skakiga prickar |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21)) |
Kontrollera ocksรฅ: - R Handledning fรถr nybรถrjare: Lรคr dig R programmeringssprรฅk











