Source code for energytrackr.plot.builtin_plot_objects.sma_line
"""SMA line plot object."""fromdataclassesimportdataclassfromtypingimportAnyimportpandasaspdfromenergytrackr.plot.builtin_plot_objects.series_lineimportSeriesLine
[docs]@dataclass(frozen=True)classSMALineConfig:"""Configuration for the Simple Moving Average (SMA) line plot object."""window:int=50color:str="orange"line_width:int=2radius:float=0.3legend:str="SMA"default_visible:bool=True
[docs]classSMALine(SeriesLine[SMALineConfig]):"""Draws a rolling-window simple moving average over the median values."""def__init__(self,**params:dict[str,Any])->None:"""Initialize the SMA line with optional parameters overriding defaults."""super().__init__(SMALineConfig,**params)
[docs]defcompute(self,series:pd.Series)->pd.Series:"""Compute the simple moving average of the series. Args: series: Input median series. Returns: SMA series with the same index. """returnseries.rolling(window=self.config.window,min_periods=1).mean()