pygram11.histogram2d#

pygram11.histogram2d(x, y, bins=10, range=None, weights=None, flow=False, cons_var=False)[source]#

Histogram data in two dimensions.

This function provides an API very simiar to numpy.histogram2d(). Keep in mind that the returns are different.

Parameters:
  • x (array_like) – Array representing the x coordinate of the data to histogram.

  • y (array_like) – Array representing the y coordinate of the data to histogram.

  • bins (int or array_like or [int, int] or [array, array], optional) –

    The bin specification:
    • If int, the number of bins for the two dimensions (nx = ny = bins).

    • If array_like, the bin edges for the two dimensions (x_edges = y_edges = bins).

    • If [int, int], the number of bins in each dimension (nx, ny = bins).

    • If [array_like, array_like], the bin edges in each dimension (x_edges, y_edges = bins).

  • range (array_like, shape(2,2), optional) – The edges of this histogram along each dimension. If bins is not integral, then this parameter is ignored. If None, the default is [[x.min(), x.max()], [y.min(), y.max()]].

  • weights (array_like) – An array of weights associated to each element \((x_i, y_i)\) pair. Each pair of the data will contribute its associated weight to the bin count.

  • flow (bool) – Include over/underflow.

  • cons_var (bool) – If True, conserve the variance rather than return the standard error (square root of the variance).

Raises:
  • ValueError – If x and y have different shape or either bin edge definition is not monotonically increasing.

  • ValueError – If the shape of weights is not compatible with x and y.

  • TypeError – If x, y, or weights are unsupported types

See also

fix2d

Used for no weight or single weight fixed bin width histograms

var2d

Used for no weight or single weight variable bin width histograms.

Returns:

Examples

Gaussian distributions in 2D with automatic bin ranges:

>>> rng = np.random.default_rng(123)
>>> x = rng.standard_normal(size=(1000,))
>>> y = rng.standard_normal(size=(1000,))
>>> w = rng.uniform(0.3, 0.4, size=x.shape)
>>> h, err = histogram2d(x, y, bins=[10, 10], weights=w)
>>> h.shape
(10, 10)