Spec-Zone.ru › NumPy 1.16

numpy.histogram2d

numpy.histogram2d(x, y, bins=10, range=None, normed=None, weights=None, density=None) [source]

Вычислить двумерную гистограмму двух наборов данных.

Параметры:
x : array_like, shape (N,)

Массив, содержащий координаты x точек, которые необходимо гистограммировать.

y : array_like, shape (N,)

Массив, содержащий координаты y точек, которые необходимо гистограммировать.

bins : int or array_like or [int, int] or [array, array], optional

Спецификация бинов:

  • Если целое число, то число бинов для двух измерений (nx=ny=bins).
  • Если массив, то границы бинов для двух измерений (x_edges=y_edges=bins).
  • Если [int, int], то число бинов в каждом измерении (nx, ny = bins).
  • Если [массив, массив], то границы бинов в каждом измерении (x_edges, y_edges = bins).
  • Комбинация [int, массив] или [массив, int], где int — число бинов, а массив — границы бинов.
range : array_like, shape(2,2), optional

Левая и правая границы бинов вдоль каждого измерения (если не указаны явно в параметрах bins) : [[xmin, xmax], [ymin, ymax]]. Все значения за пределами этого диапазона будут считаться выбросами и не будут учитываться в гистограмме.

density : bool, optional

Если False (по умолчанию), возвращает количество выборок в каждом бине. Если True, возвращает функцию плотности вероятности в бине, bin_count / sample_count / bin_area.

normed : bool, optional

Псевдоним для аргумента плотности, который ведет себя идентично. Чтобы избежать путаницы с нерабочим аргументом normed в histogram, следует отдавать предпочтение density.

weights : array_like, shape(N,), optional

Массив значений w_i, взвешивающих каждую выборку (x_i, y_i). Веса нормализуются до 1, если normed равно True. Если normed равно False, значения возвращаемой гистограммы равны сумме весов, принадлежащих выборкам, попадающим в каждый бино.

Возвращает:
H : ndarray, shape(nx, ny)

Двумерная гистограмма выборок x и y. Значения в x гистограммируются вдоль первого измерения, а значения в y гистограммируются вдоль второго измерения.

xedges : ndarray, shape(nx+1,)

Границы бинов вдоль первого измерения.

yedges : ndarray, shape(ny+1,)

Границы бинов вдоль второго измерения.

См. также

histogram
1D гистограмма
histogramdd
Многомерная гистограмма

Замечания

Когда normed равно True, возвращаемая гистограмма представляет собой плотность выборок, определенную таким образом, что сумма по бинам произведения bin_value * bin_area равна 1.

Обратите внимание, что гистограмма не следует картезианской конвенции, где значения x находятся на абсциссе, а значения y на оси ординат. Вместо этого x гистограммируется вдоль первого измерения массива (вертикально), а y вдоль второго измерения массива (горизонтально). Это обеспечивает совместимость с histogramdd.

Примеры

>>> from matplotlib.image import NonUniformImage
>>> import matplotlib.pyplot as plt

Построение 2D гистограммы с переменной шириной бинов. Сначала определим границы бинов:

>>> xedges = [0, 1, 3, 5]
>>> yedges = [0, 2, 3, 4, 6]

Затем мы создаем гистограмму H со случайным содержимым бинов:

>>> x = np.random.normal(2, 1, 100)
>>> y = np.random.normal(1, 1, 100)
>>> H, xedges, yedges = np.histogram2d(x, y, bins=(xedges, yedges))
>>> H = H.T  # Let each row list bins with common y range.

imshow может отображать только квадратные бины:

>>> fig = plt.figure(figsize=(7, 3))
>>> ax = fig.add_subplot(131, title='imshow: square bins')
>>> plt.imshow(H, interpolation='nearest', origin='low',
...         extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]])

pcolormesh может отображать фактические границы:

>>> ax = fig.add_subplot(132, title='pcolormesh: actual edges',
...         aspect='equal')
>>> X, Y = np.meshgrid(xedges, yedges)
>>> ax.pcolormesh(X, Y, H)

NonUniformImage может использоваться для отображения фактических границ бинов с интерполяцией:

>>> ax = fig.add_subplot(133, title='NonUniformImage: interpolated',
...         aspect='equal', xlim=xedges[[0, -1]], ylim=yedges[[0, -1]])
>>> im = NonUniformImage(ax, interpolation='bilinear')
>>> xcenters = (xedges[:-1] + xedges[1:]) / 2
>>> ycenters = (yedges[:-1] + yedges[1:]) / 2
>>> im.set_data(xcenters, ycenters, H)
>>> ax.images.append(im)
>>> plt.show()
../../_images/numpy-histogram2d-1.png

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.16.1/reference/generated/numpy.histogram2d.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API