R Box Plot

Ez a cikk megtanulja, hogyan hozzon létre whisker és box plotot az R programozásban. Azt is megtanulja, hogyan rajzolhat több boxplotot egyetlen plotban.

A boxplot (és a whisker plot) az R-ben a boxplot() függvény segítségével jön létre.

A boxplot() függvény tetszőleges számú numerikus vektort fogad be, és minden egyes vektorhoz egy boxplotot rajzol.

Egy listát (vagy adatkeretet) is átadhat, amelynek összetevői numerikus vektorok. Használjuk a beépített airquality adatkészletet, amely a “Napi levegőminőségi mérések New Yorkban, 1973. májustól szeptemberig.” – R dokumentáció.

> str(airquality)'data.frame':153 obs. of 6 variables:$ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ...$ Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ...$ Wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...$ Temp : int 67 72 74 62 56 66 65 59 61 69 ...$ Month : int 5 5 5 5 5 5 5 5 5 5 ...$ Day : int 1 2 3 4 5 6 7 8 9 10 ...

Készítsünk boxplotot az ózonmérésekhez.

boxplot(airquality$Ozone)

Default box plot in R Programming

Láthatjuk, hogy a medián feletti adatok jobban szóródnak. A felső szélsőértéknél két kiugró értéket is észrevehetünk.

Megadhatunk további paramétereket, hogy szabályozzuk a grafikonunk kinézetét. Ezekről a ?boxplot súgóban olvashatunk.

A gyakran használtak közül néhány: main – a cím megadásához, xlab és ylab – a tengelyek címkézéséhez, col a szín meghatározásához stb.

Kiegészítésképpen a horizontal = TRUE argumentummal vízszintesen is ábrázolhatunk, a notch = TRUE segítségével pedig bevágást adhatunk a dobozhoz.

boxplot(airquality$Ozone,main = "Mean ozone in parts per billion at Roosevelt Island",xlab = "Parts Per Billion",ylab = "Ozone",col = "orange",border = "brown",horizontal = TRUE,notch = TRUE)

Horizontális dobozplot R-ben

Return Value of boxplot()

A boxplot() függvény egy listát ad vissza, amelynek 6 összetevője az alábbiak szerint látható.

> b <- boxplot(airquality$Ozone)> b$stats 1.0 18.0 31.5 63.5 122.0attr(,"class")1 "integer" $n 116$conf 24.82518 38.17482$out 135 168$group 1 1$names "1"

Amint fentebb láthatjuk, egy olyan listát kapunk vissza, amely stats-tartalmazza a whiskers és a box felső/alsó szélső értékeinek helyzetét a mediánnal együtt,

  • n-a megfigyelések száma, amelyekkel a boxplot rajzolva van (vegyük észre, hogy a NA-eket nem vesszük figyelembe)
  • conf-felső/alsó szélső értékek a bevágásnál, out-a kiugró érték
  • group-a kiugróval azonos hosszúságú vektor, amelynek elemei jelzik, hogy a kiugró melyik csoportba tartozik, és
  • names-a csoportok neveinek vektora.

Multiple Boxplot

Lista, adatkeret vagy több vektor átadásával több boxplotot is rajzolhatunk egyetlen ábrán.

Lássuk a airquality adathalmaz Ozone és Temp mezőjét. Generáljunk normális eloszlást is ugyanazzal az átlaggal és szórással, és ábrázoljuk őket egymás mellett az összehasonlítás érdekében.

# prepare the dataozone <- airquality$Ozonetemp <- airquality$Temp# gererate normal distribution with same mean and sdozone_norm <- rnorm(200,mean=mean(ozone, na.rm=TRUE), sd=sd(ozone, na.rm=TRUE))temp_norm <- rnorm(200,mean=mean(temp, na.rm=TRUE), sd=sd(temp, na.rm=TRUE))

Most készítsünk 4 boxplotot ezekkel az adatokkal. A at és names argumentumokat használjuk a hely és a címke jelölésére.

boxplot(ozone, ozone_norm, temp, temp_norm,main = "Multiple boxplots for comparision",at = c(1,2,4,5),names = c("ozone", "normal", "temp", "normal"),las = 2,col = c("orange","red"),border = "brown",horizontal = TRUE,notch = TRUE)

r-multiple-boxplot

Boxplot forma Formula

A boxplot() függvény y~x formájú képleteket is felvehet, ahol, y egy numerikus vektor, amelyet a x értéke szerint csoportosítunk.

A airquality adathalmazunkban például a Temp lehet a numerikus vektorunk. A hónap lehet a csoportosító változónk, így minden hónapra külön-külön megkapjuk a boxplotot. Adatkészletünkben a hónap szám alakú (1=Január, 2-Február és így tovább).

boxplot(Temp~Month,data=airquality,main="Different boxplots for each month",xlab="Month Number",ylab="Degree Fahrenheit",col="orange",border="brown")

Multiboxplotok egyetlen ábrán

A fenti ábrából kitűnik, hogy a 7-es számú hónap (július) viszonylag melegebb, mint a többi.

Megállapítható, hogy a 7-es számú hónap (július) viszonylag melegebb, mint a többi.