Spec-Zone.ru › NumPy 1.10

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, значения возвращаемой гистограммы равны сумме весов, относящихся к образцам, попадающим в каждый бине.

Возвращает:

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

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

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

Spec-Zone.ru

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