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