class plotnine.stats.stat_bin_2d(mapping: Aes | None = None, data: DataLike | None = None, **kwargs: Any)[source]

2 Dimensional bin counts


stat_bin_2d(mapping=None, data=None, geom='rect', position='identity',
            na_rm=False, drop=True, binwidth=None, bins=30, breaks=None,

Only the mapping and data can be positional, the rest must be keyword arguments. **kwargs can be aesthetics (or parameters) used by the geom.

mappingaes, optional

Aesthetic mappings created with aes(). If specified and inherit.aes=True, it is combined with the default mapping for the plot. You must supply mapping if there is no plot mapping.


Default value







The bold aesthetics are required.

Options for computed aesthetics

'xmin'    # x lower bound for the bin
'xmax'    # x upper bound for the bin
'ymin'    # y lower bound for the bin
'ymax'    # y upper bound for the bin
'count'   # number of points in bin
'density' # density of points in bin, scaled to integrate to 1
datadataframe, optional

The data to be displayed in this layer. If None, the data from from the ggplot() call is used. If specified, it overrides the data from the ggplot() call.

geomstr or geom, optional (default: geom_rect)

The statistical transformation to use on the data for this layer. If it is a string, it must be the registered and known to Plotnine.

positionstr or position, optional (default: position_identity)

Position adjustment. If it is a string, it must be registered and known to Plotnine.

na_rmbool, optional (default: False)

If False, removes missing values with a warning. If True silently removes missing values.

binsint, optional (default: 30)

Number of bins. Overridden by binwidth.

breaksarray-like(s), optional (default: None)

Bin boundaries. This supercedes the binwidth, bins, center and boundary. It can be an array_like or a list of two array_likes to provide distinct breaks for the x and y axes.

binwidthfloat, optional (default: None)

The width of the bins. The default is to use bins bins that cover the range of the data. You should always override this value, exploring multiple widths to find the best to illustrate the stories in your data.

dropbool, optional (default: False)

If True, removes all cells with zero counts.