Spec-Zone.ru › NumPy 1.18

numpy.histogram2d

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

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

Parameters
xarray_like, shape (N,)

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

yarray_like, shape (N,)

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

binsint or array_like or [int, int] or [array, array], optional

Спецификация разбиения на интервалы:

  • Если целое число, количество интервалов для двух измерений (nx=ny=bins).
  • Если array_like, границы интервалов для двух измерений (x_edges=y_edges=bins).
  • Если [int, int], количество интервалов в каждом измерении (nx, ny = bins).
  • Если [array, array], границы интервалов в каждом измерении (x_edges, y_edges = bins).
  • Сочетание [int, array] или [array, int], где int — количество интервалов, а array — границы интервалов.
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, значения возвращаемой гистограммы равны сумме весов, принадлежащих выборкам, попадающим в каждый интервал.

Returns
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

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

>>> 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.18/reference/generated/numpy.histogram2d.html

Spec-Zone.ru

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