LOESS Transform#
The LOESS transform (LOcally Estimated Scatterplot Smoothing) uses a locally-estimated regression to produce a trend line. LOESS performs a sequence of local weighted regressions over a sliding window of nearest-neighbor points. For standard parametric regression options, see the Regression Transform.
Here is an example of using LOESS to smooth samples from a Gaussian random walk:
import altair as alt
import pandas as pd
import numpy as np
np.random.seed(42)
df = pd.DataFrame({
'x': range(100),
'y': np.random.randn(100).cumsum()
})
chart = alt.Chart(df).mark_point().encode(
x='x',
y='y'
)
chart + chart.transform_loess('x', 'y').mark_line()
Transform Options#
The transform_loess()
method is built on the
LoessTransform
class, which has the following options:
Property |
Type |
Description |
---|---|---|
as |
array( |
The output field names for the smoothed points generated by the loess transform. Default value: The field names of the input x and y values. |
bandwidth |
|
A bandwidth parameter in the range Default value: |
groupby |
array( |
The data fields to group by. If not specified, a single group containing all data objects will be used. |
loess |
The data field of the dependent variable to smooth. |
|
on |
The data field of the independent variable to use a predictor. |