Spec-Zone.ru › NumPy 1.11

numpy.histogram2d

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

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

Параметры:

x : array_like, форма (N,)

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

y : array_like, форма (N,)

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

bins : int или array_like или [int, int] или [array, array], необязательно

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

  • Если int, число бинов для двух измерений (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 - границы бинов.

range : array_like, форма(2,2), необязательно

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

normed : bool, необязательно

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

weights : array_like, форма(N,), необязательно

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

Возвращаемое значение:

H : ndarray, форма(nx, ny)

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

xedges : ndarray, форма(nx,)

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

yedges : ndarray, форма(ny,)

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

См. также

histogram
1D гистограмма
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, 1.5, 3, 5]
>>> yedges = [0, 2, 3, 4, 6]

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

>>> x = np.random.normal(3, 1, 100)
>>> y = np.random.normal(1, 1, 100)
>>> H, xedges, yedges = np.histogram2d(y, x, bins=(xedges, yedges))

Или мы заполняем гистограмму H заданным содержимым бинов:

>>> H = np.ones((4, 4)).cumsum().reshape(4, 4)
>>> print(H[::-1])  # This shows the bin content in the order as plotted
[[ 13.  14.  15.  16.]
 [  9.  10.  11.  12.]
 [  5.   6.   7.   8.]
 [  1.   2.   3.   4.]]

Imshow может отобразить только равноудаленную интерпретацию бинов:

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

pcolormesh может отобразить точные границы бинов:

>>> ax = fig.add_subplot(132)
>>> ax.set_title('pcolormesh: exact bin edges')
>>> X, Y = np.meshgrid(xedges, yedges)
>>> ax.pcolormesh(X, Y, H)
>>> ax.set_aspect('equal')

NonUniformImage отображает точные границы бинов с интерполяцией:

>>> ax = fig.add_subplot(133)
>>> ax.set_title('NonUniformImage: interpolated')
>>> im = mpl.image.NonUniformImage(ax, interpolation='bilinear')
>>> xcenters = xedges[:-1] + 0.5 * (xedges[1:] - xedges[:-1])
>>> ycenters = yedges[:-1] + 0.5 * (yedges[1:] - yedges[:-1])
>>> im.set_data(xcenters, ycenters, H)
>>> ax.images.append(im)
>>> ax.set_xlim(xedges[0], xedges[-1])
>>> ax.set_ylim(yedges[0], yedges[-1])
>>> ax.set_aspect('equal')
>>> plt.show()

(Исходный код)

© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.histogram2d.html

Spec-Zone.ru

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