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

Calculate normal confidence interval ellipse


stat_ellipse(mapping=None, data=None, geom='path', position='identity',
             na_rm=False, type='t', level=0.95, segments=51, **kwargs)

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.

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_path)

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.

typestr in ['t', 'norm', 'euclid'] (default: 't')

The type of ellipse.

  • 't' - assumes a multivariate t-distribution, and

  • 'norm' - assumes a multivariate normal distribution.

  • 'euclid' - draws a circle with the radius equal to level, representing the euclidean distance from the center.

levelfloat, optional (default: 0.95)

The confidence level at which to draw the ellipse.

segmentsint, optional (default: 51)

Number of segments to be used in drawing the ellipse.