W tym artykule nauczysz się używać funkcji hist() do tworzenia histogramów w programowaniu R z pomocą licznych przykładów.
Histogram można utworzyć za pomocą funkcji hist()
w języku programowania R. Funkcja ta przyjmuje wektor wartości, dla których wykreślany jest histogram.
Użyjmy wbudowanego zbioru danych airquality
, który posiada 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 ...
Użyjemy parametru temperatury, który ma 154 obserwacje w stopniach Fahrenheita.
Przykład 1: Prosty histogram
Temperature <- airquality$Temphist(Temperature)
Powyżej widzimy, że jest 9 komórek z równo rozmieszczonymi przerwami. W tym przypadku wysokość komórki jest równa liczbie obserwacji mieszczących się w tej komórce.
Możemy przekazać dodatkowe parametry, aby kontrolować wygląd naszego wykresu. Możesz o nich przeczytać w sekcji pomocy ?hist
.
Niektóre z często używanych to, main
aby nadać tytuł, xlab
i ylab
aby dostarczyć etykiety dla osi, xlim
i ylim
aby zapewnić zakres osi, col
aby zdefiniować kolor itp.
Dodatkowo, za pomocą argumentu freq=FALSE
możemy uzyskać rozkład prawdopodobieństwa zamiast częstości.
Przykład 2: Histogram z dodanymi parametrami
# histogram with added parametershist(Temperature,main="Maximum daily temperature at La Guardia Airport",xlab="Temperature in degrees Fahrenheit",xlim=c(50,100),col="darkmagenta",freq=FALSE)
Zauważ, że oś y jest oznaczona jako gęstość zamiast częstotliwości. W tym przypadku całkowity obszar histogramu jest równy 1.
Wartość zwracana przez hist()
Funkcja hist()
zwraca listę z 6 elementami.
> h <- hist(Temperature)> h$breaks 55 60 65 70 75 80 85 90 95 100$counts 8 10 15 19 33 34 20 12 2$density 0.010457516 0.013071895 0.019607843 0.024836601 0.043137255 0.044444444 0.026143791 0.015686275 0.002614379$mids 57.5 62.5 67.5 72.5 77.5 82.5 87.5 92.5 97.5$xname "Temperature"$equidist TRUEattr(,"class") "histogram"
Widzimy, że zwracany jest obiekt klasy histogram
, który posiada:
-
breaks
-miejsca, w których występują przerwy, -
counts
-liczbę obserwacji mieszczących się w tej komórce, -
density
-gęstość komórek,mids
-środki komórek, -
xname
-nazwa argumentu x oraz -
equidist
– wartość logiczna wskazująca, czy przerwy są równo rozmieszczone, czy nie.
Możemy użyć tych wartości do dalszego przetwarzania.
Na przykład w poniższym przykładzie używamy wartości zwracanych do umieszczenia liczników na górze każdej komórki za pomocą funkcji text()
.
Przykład 3: Użyj wartości zwrotnych histogramu do etykiet przy użyciu funkcji text()
h <- hist(Temperature,ylim=c(0,40))text(h$mids,h$counts,labels=h$counts, adj=c(0.5, -0.5))
Definiowanie liczby przerw
Z pomocą argumentu breaks
możemy określić liczbę komórek, które chcemy mieć w histogramie. Jednak liczba ta jest tylko sugestią.
R oblicza najlepszą liczbę komórek, pamiętając o tej sugestii. Poniżej znajdują się dwa histogramy dla tych samych danych z różną liczbą komórek.
Przykład 4: Histogram z różnymi przerwami
hist(Temperature, breaks=4, main="With breaks=4")hist(Temperature, breaks=20, main="With breaks=20")
Na powyższym rysunku widzimy, że rzeczywista liczba komórek jest większa niż podaliśmy.
Możemy również zdefiniować punkty przerw pomiędzy komórkami w postaci wektora. Dzięki temu możliwe jest wykreślenie histogramu z nierównymi odstępami. W takim przypadku obszar komórki jest proporcjonalny do liczby obserwacji mieszczących się w tej komórce.
Przykład 5: Histogram o niejednolitej szerokości
hist(Temperature,main="Maximum daily temperature at La Guardia Airport",xlab="Temperature in degrees Fahrenheit",xlim=c(50,100),col="chocolate",border="brown",breaks=c(55,60,70,75,80,100))