code: def run(self, data):
      from statsmodels.tsa.seasonal import STL
  
      index, col = (self.cfg.get(p) for p in ["index", "col"])
      df = build_data(data, self.cfg)
      sd_df = STL(df).fit()
  
      df = pd.concat(
          [df, sd_df.seasonal, sd_df.trend, sd_df.resid],
          axis=1,
          keys=[col, "seasonal", "trend", "resid"],
      )
      df = df.reset_index()
      return_data, _code = build_base_chart(
          df.fillna(0),
          index,
          [col, "seasonal", "trend", "resid"],
          agg="raw",
      )
      return return_data
  
imports: import pandas
  from six import PY3
  from statsmodels.tsa.filters.bk_filter import bkfilter
  from statsmodels.tsa.filters.cf_filter import cffilter
  from statsmodels.tsa.filters.hp_filter import hpfilter
  from statsmodels.tsa.seasonal import seasonal_decompose
  import dtale.global_state
  from dtale.query import run_query
  from dtale.charts.utils import build_base_chart
label_desc: Use image node_id 2 for calling the STLReport obj's underlying member method code with example usage: obj.run(data) and returns: return_data