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+1,)
Границы бинов вдоль первого измерения.
yedges : ndarray, форма (ny+1,)
Границы бинов вдоль второго измерения.
См. также
-
histogram - 1D гистограмма
-
histogramdd - Многомерная гистограмма
Примечания
Когда
normedравно True, возвращаемая гистограмма является плотностью выборки, определённой таким образом, что сумма по битам произведенияbin_value * bin_areaравна 1.Обратите внимание, что гистограмма не следует картезианской конвенции, где значения
xнаходятся на абсциссе, а значенияyна оси ординат. Вместо этого значенияxгистограммируются вдоль первого измерения массива (вертикально), а значенияyвдоль второго измерения массива (горизонтально). Это обеспечивает совместимость сhistogramdd.Примеры
>>> import matplotlib as mpl >>> 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]])
pcolormeshможет отображать фактические границы:>>> ax = fig.add_subplot(132, title='pcolormesh: actual edges', ... aspect='equal') >>> X, Y = np.meshgrid(xedges, yedges) >>> ax.pcolormesh(X, Y, H)
NonUniformImageможет использоваться для отображения фактических границ бинов с интерполяцией:>>> ax = fig.add_subplot(133, title='NonUniformImage: interpolated', ... aspect='equal', xlim=xedges[[0, -1]], ylim=yedges[[0, -1]]) >>> im = mpl.image.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()
(Исходный код, png, pdf)
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.histogram2d.html