R Box Plot

W tym artykule nauczysz się tworzyć wykresy w kształcie wąsika i pudełka w programie R. Nauczysz się również rysować wiele wykresów pudełkowych w pojedynczym wykresie. Nauczysz się również rysować wiele wykresów pudełkowych w jednym wykresie.

W R, boxplot (i wykres wachlarzowy) jest tworzony przy użyciu funkcji boxplot().

Funkcja boxplot() przyjmuje dowolną liczbę wektorów numerycznych, rysując boxplot dla każdego wektora.

Możesz również przekazać listę (lub ramkę danych) z wektorami numerycznymi jako jej składnikami. Użyjmy wbudowanego zbioru danych airquality, który ma „Codzienne pomiary jakości powietrza w Nowym Jorku, od maja do września 1973 r.”- dokumentacja R.

> 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 ...

Zróbmy wykres pudełkowy dla odczytów ozonu.

boxplot(airquality$Ozone)

Domyślny wykres pudełkowy w R Programming

Widzimy, że dane powyżej mediany są bardziej rozproszone. Możemy również zauważyć dwie wartości skrajne na wyższym biegunie.

Możemy przekazać dodatkowe parametry, aby kontrolować wygląd naszego wykresu. Możesz o nich przeczytać w sekcji pomocy ?boxplot.

Niektóre z często używanych to, main-do nadania tytułu, xlabi ylab-do nadania etykiet dla osi, coldo określenia koloru itd.

Dodatkowo, za pomocą argumentu horizontal = TRUE możemy wykreślić go poziomo, a za pomocą notch = TRUE dodać wcięcie do pudełka.

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)

Horizontal box plot in R

Return Value of boxplot()

Funkcja boxplot() zwraca listę z 6 elementami przedstawionymi w następujący sposób.

> 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"

Jak widzimy powyżej, zwracana jest lista, która posiada stats-położenie górnych/dolnych ekstremów wcięcia i pudełka wraz z medianą,

  • n-liczbę obserwacji, z którymi boxplot jest rysowany (zauważ, że NA nie są brane pod uwagę)
  • conf-górne/dolne ekstrema wcięcia, out-wartość wartości odstających
  • group-wektor tej samej długości co out, którego elementy wskazują do jakiej grupy należy odstający oraz
  • names-wektor nazw grup.

Wielokrotne boxploty

Możemy narysować wiele boxplotów w jednym wykresie, przekazując listę, ramkę danych lub wiele wektorów.

Rozważmy pola Ozone i Temp zbioru danych airquality. Wygenerujmy również rozkład normalny z taką samą średnią i odchyleniem standardowym i wykreślmy je obok siebie dla porównania.

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

Teraz wykonamy 4 wykresy pudełkowe z tymi danymi. Używamy argumentów at i names do oznaczenia miejsca i etykiety.

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

Formuła boxplot

Funkcja boxplot() może również przyjmować formuły postaci y~x gdzie, y jest wektorem liczbowym, który jest grupowany według wartości x.

Na przykład, w naszym zbiorze danych airquality, Temp może być naszym wektorem liczbowym. Miesiąc może być naszą zmienną grupującą, tak abyśmy otrzymali boxplot dla każdego miesiąca osobno. W naszym zbiorze danych miesiąc ma postać liczby (1=styczeń, 2-luty i tak dalej).

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

Wielokrotne wykresy pudełkowe w jednym wykresie

Z powyższego rysunku jasno wynika, że miesiąc numer 7 (lipiec) jest relatywnie cieplejszy od pozostałych.

.