Контейнер представляет собой диапазон, представляющий ширину одного столбца гистограммы вдоль оси X. Вы также можете назвать это интервалом. (Википедия определяет их более формально как «непересекающиеся категории».)
Функция Numpy histogram
не рисует гистограмму, но вычисляет вхождения входных данных, которые попадают в каждый лоток, который, в свою очередь, определяет область (не обязательно высоту, если лотки не имеют одинаковую ширину). ) каждого бара.
В этом примере:
np.histogram([1, 2, 1], bins=[0, 1, 2, 3])
Имеется 3 ячейки для значений в диапазоне от 0 до 1 (кроме 1), от 1 до 2 (кроме 2) и от 2 до 3 (включая 3), соответственно. Способ, которым Numpy определяет эти ячейки, если путем предоставления списка разделителей ([0, 1, 2, 3]
) в этом примере, хотя он также возвращает ячейки в результатах, поскольку он может автоматически выбирать их из входных данных, если они не указаны. Например, если bins=5
, он будет использовать 5 интервалов равной ширины между минимальным входным значением и максимальным входным значением.
Входными значениями являются 1, 2 и 1. Следовательно, в ячейке «1 до 2» содержится два вхождения (два значения 1
), а в ячейке «2 до 3» содержится одно вхождение (2
). Эти результаты находятся в первом элементе в возвращенном кортеже: array([0, 2, 1])
.
Поскольку ячейки здесь имеют одинаковую ширину, вы можете использовать количество вхождений для высоты каждого стержня. При получении вы получите:
- планка высоты 0 для диапазона / бина [0,1] по оси X,
- планка высоты 2 для диапазона / бин [1,2],
- планка высоты 1 для диапазона / бина [2,3].
Вы можете построить это напрямую с помощью Matplotlib (его функция hist
также возвращает ячейки и значения):
>>> 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()
