Articles

R Histograms

Posted on

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)

Przykładowy histogram w programowaniu w R

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)

Utwórz histogram w R z parametrami takimi jak kolor.

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

Histogram z tekstową wartością zwrotną

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

R Histogram With Break

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

R histogram o różnych szerokościach

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *