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:

Grundläggande Box Komplott

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:

Byt sida av grafen

Ä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:

Ändra färg på Outlier

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:

Lägg till en sammanfattningsstatistik

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:

Box Rita med prickar

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:

Ändra färgen på Box

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 Rita med flera grupper

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:

Box Intrig med skakiga prickar

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

Box Intrig med skakiga prickar

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:

hack Box Komplott

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:

hack Box Komplott

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

Sammanfatta detta inlägg med: