Bin to zakres reprezentujący szerokość pojedynczego słupka histogramu wzdłuż osi X. Możesz również nazwać to interwałem. (Wikipedia definiuje je bardziej formalnie jako „rozłączne kategorie”).
Funkcja Numpy histogram
nie rysuje histogramu, ale oblicza wystąpienia danych wejściowych, które mieszczą się w każdym przedziale, co z kolei określa obszar (niekoniecznie wysokość, jeśli przedziały nie mają równej szerokości) każdego słupka.
W tym przykładzie:
np.histogram([1, 2, 1], bins=[0, 1, 2, 3])
Dostępne są 3 pojemniki na wartości z przedziału od 0 do 1 (z wyłączeniem 1.), 1 do 2 (z wyłączeniem 2) i 2 do 3 (w tym 3). Sposób, w jaki Numpy definiuje te pojemniki, jeśli podaje listę ograniczników ( [0, 1, 2, 3]
) w tym przykładzie, chociaż zwraca również pojemniki w wynikach, ponieważ może wybierać je automatycznie z danych wejściowych, jeśli żadne nie są określone. Jeśli bins=5
, na przykład, użyje 5 pojemników o równej szerokości między minimalną wartością wejściową a maksymalną wartością wejściową.
Wartości wejściowe to 1, 2 i 1. Dlatego przedział „1 do 2” zawiera dwa wystąpienia (dwie 1
wartości), a przedział „2 do 3” zawiera jedno wystąpienie ( 2
). Wyniki te są w pierwszej pozycji w zwracanej krotki: array([0, 2, 1])
.
Ponieważ pojemniki mają tutaj równą szerokość, możesz użyć liczby wystąpień dla wysokości każdego słupka. Po narysowaniu miałbyś:
- słupek o wysokości 0 dla zakresu / przedziału [0,1] na osi X,
- słupek o wysokości 2 dla zakresu / przedziału [1,2],
- słupek o wysokości 1 dla zakresu / przedziału [2,3].
Możesz to wykreślić bezpośrednio za pomocą Matplotlib (jego hist
funkcja zwraca również pojemniki i wartości):
>>> import matplotlib.pyplot as plt
>>> plt.hist([1, 2, 1], bins=[0, 1, 2, 3])
(array([0, 2, 1]), array([0, 1, 2, 3]), <a list of 3 Patch objects>)
>>> plt.show()