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











