lets_plot.geom_smooth(mapping=None, *, data=None, stat=None, position=None, show_legend=None, sampling=None, tooltips=None, method=None, n=None, se=None, level=None, span=None, deg=None, seed=None, max_n=None, **other_args)

Add a smoothed conditional mean.

  • mapping (FeatureSpec) – Set of aesthetic mappings created by aes() function. Aesthetic mappings describe the way that variables in the data are mapped to plot “aesthetics”.

  • data (dict or DataFrame) – The data to be displayed in this layer. If None, the default, the data is inherited from the plot data as specified in the call to ggplot.

  • stat (str, default=’smooth’) – The statistical transformation to use on the data for this layer, as a string. Supported transformations: ‘identity’ (leaves the data unchanged), ‘count’ (counts number of points with same x-axis coordinate), ‘bin’ (counts number of points with x-axis coordinate in the same bin), ‘smooth’ (performs smoothing - linear default), ‘density’ (computes and draws kernel density estimate).

  • position (str or FeatureSpec) – Position adjustment, either as a string (‘identity’, ‘stack’, ‘dodge’, …), or the result of a call to a position adjustment function.

  • show_legend (bool, default=True) – False - do not show legend for this layer.

  • sampling (FeatureSpec) – Result of the call to the sampling_xxx() function. Value None (or ‘none’) will disable sampling for this layer.

  • tooltips (layer_tooltips) – Result of the call to the layer_tooltips() function. Specifies appearance, style and content.

  • method (str, default=’lm’) – Smoothing method: ‘lm’ (Linear Model) or ‘loess’ (Locally Estimated Scatterplot Smoothing).

  • n (int) – Number of points to evaluate smoother at.

  • se (bool, default=True) – Display confidence interval around smooth.

  • level (float, default=0.95) – Level of confidence interval to use.

  • span (float, default=0.5) – Only for ‘loess’ method. The fraction of source points closest to the current point is taken into account for computing a least-squares regression. A sensible value is usually 0.25 to 0.5.

  • deg (int, default=1) – Degree of polynomial for linear regression model.

  • seed (int) – Random seed for ‘loess’ sampling.

  • max_n (int, default=1000) – Maximum number of data-points for ‘loess’ method. If this quantity exceeded random sampling is applied to data.

  • other_args – Other arguments passed on to the layer. These are often aesthetics settings used to set an aesthetic to a fixed value, like color=’red’, fill=’blue’, size=3 or shape=21. They may also be parameters to the paired geom/stat.


Geom object specification.

Return type



geom_smooth() aids the eye in seeing patterns in the presence of overplotting.

Computed variables:

  • ..y.. : predicted (smoothed) value.

  • ..ymin.. : lower pointwise confidence interval around the mean.

  • ..ymax.. : upper pointwise confidence interval around the mean.

  • ..se.. : standard error.

geom_smooth() understands the following aesthetics mappings:

  • x : x-axis value.

  • y : y-axis value.

  • alpha : transparency level of a layer. Understands numbers between 0 and 1.

  • color (colour) : color of a geometry. Can be continuous or discrete. For continuous value this will be a color gradient between two colors.

  • linetype : type of the line of conditional mean line. Codes and names: 0 = ‘blank’, 1 = ‘solid’, 2 = ‘dashed’, 3 = ‘dotted’, 4 = ‘dotdash’, 5 = ‘longdash’, 6 = ‘twodash.

  • size : lines width. Defines line width for conditional mean and confidence bounds lines.


1import numpy as np
2from lets_plot import *
5n = 50
6x = np.arange(n)
7y = x + np.random.normal(scale=10, size=n)
8ggplot({'x': x, 'y': y}, aes(x='x', y='y')) + \
9    geom_point() + geom_smooth()