Spec-Zone.ru › NumPy 1.19

numpy.histogram2d

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

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

Параметры
xarray_like, shape (N,)

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

yarray_like, shape (N,)

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

binsint 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 — количество интервалов, а массив — границы интервалов.
rangearray_like, shape(2,2), optional

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

densitybool, optional

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

normedbool, optional

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

weightsarray_like, shape(N,), optional

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

Возвращает
Hndarray, shape(nx, ny)

Двумерная гистограмма образцов x и y. Значения в x гистограммируются по первому измерению, а значения в y — по второму измерению.

xedgesndarray, shape(nx+1,)

Границы интервалов по первому измерению.

yedgesndarray, 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

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

>>> 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]])
<matplotlib.image.AxesImage object at 0x...>

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

>>> ax = fig.add_subplot(132, title='pcolormesh: actual edges',
...         aspect='equal')
>>> X, Y = np.meshgrid(xedges, yedges)
>>> ax.pcolormesh(X, Y, H)
<matplotlib.collections.QuadMesh object at 0x...>

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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.histogram2d.html

Spec-Zone.ru

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