Spec-Zone.ru › NumPy 1.15

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).
  • Если [целое число, целое число], то количество бинов в каждом измерении (nx, ny = bins).
  • Если [массив, массив], то границы бинов в каждом измерении (x_edges, y_edges = bins).
  • Комбинация [целое число, массив] или [массив, целое число], где целое число - количество бинов, а массив - границы бинов.
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

Псевдоним для аргумента density, который ведет себя идентично. Чтобы избежать путаницы с сломанным аргументом 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
Одномерная гистограмма
histogramdd
Многомерная гистограмма

Примечания

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

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

Примеры

>>> import matplotlib as mpl
>>> import matplotlib.pyplot as plt

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

>>> 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 = mpl.image.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.15.4/reference/generated/numpy.histogram2d.html

Spec-Zone.ru

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