Spec-Zone.ru › NumPy 1.20

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

Псевдоним для аргумента плотности, который ведет себя идентично. Чтобы избежать путаницы с испорченным аргументом 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='lower',
...         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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.histogram2d.html

Spec-Zone.ru

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