Zasobnik to zakres reprezentujący szerokość pojedynczego słupka histogramu wzdłuż osi X. Można również nazwać to odstępem czasu. (Wikipedia definiuje je bardziej formalnie jako "rozłączne kategorie").
Funkcja Numpy histogram
nie rysuje histogramu, ale oblicza wystąpienie danych wejściowych, które mieszczą się w każdym pojemniku, co z kolei określa obszar (nie koniecznie wysokość, jeśli pojemniki nie mają jednakowej szerokości) każdego pręta.
w poniższym przykładzie:
np.histogram([1, 2, 1], bins=[0, 1, 2, 3])
są 3 pojemniki dla wartości w zakresie od 0 do 1 (z wyłączeniem 1), 1 do 2 (zaw. 2) i od 2 do 3 (. Łącznie z 3) , odpowiednio. Sposób, w jaki Numpy definiuje te pojemniki, podając w tym przykładzie listę ograniczników ([0, 1, 2, 3]
), mimo że zwraca również pojemniki w wynikach, ponieważ może wybrać je automatycznie z danych wejściowych, jeśli żadna nie zostanie określona. Jeśli na przykład bins=5
, użyje 5 pojemników o jednakowej 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 bin "1 do 2" zawiera dwa wystąpienia (dwie wartości 1
), a bin "2 do 3" zawiera jedno wystąpienie (2
). Te wyniki znajdują się w pierwszej pozycji w zwróconej krotce: array([0, 2, 1])
.
Ponieważ pojemniki są tutaj równej szerokości, można użyć liczby wystąpień dla wysokości każdego słupka. Wydobyte, trzeba:
- bar wysokości 0 dla zakresu/bin [0,1] na osi X,
- bar wysokości 2 dla zakresu/bin [1,2] ,
- pręt o wysokości 1 dla zakresu/zasobnika [2,3].
można wykreślić to bezpośrednio z matplotlib (jego hist
zwraca również kosze 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()
Możesz również być zainteresowany [tą odpowiedzią] (http://stackoverflow.com/a/5328669/372643), jeśli chcesz je narysować. [Matplotlib może również obliczyć je bezpośrednio] (http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.hist). Zobacz przykłady [tutaj] (http://matplotlib.sourceforge.net/examples/api/histogram_demo.html) i [tutaj] (http://matplotlib.sourceforge.net/examples/pylab_examples/histogram_demo_extended.html). – Bruno
Dziękuję za tę odpowiedź, uratowało mi to mnóstwo problemów! – AlexFZ