code: def test_plt_overlay_long_df():
      m = 200
      x = np.array(list(range(m)) * m) / (1.0 * m)
      x = x * 2 * math.pi
      z = []
      for u in range(m):
          z = z + [u] * m
      y = np.sin(x) + np.random.normal(0, 1, len(x))
      w = np.cos(x) + np.random.normal(0, 1, len(x))
      df = pd.DataFrame({"x": x, "y": y, "z": z, "w": w})
  
      agg_dict = {
          "y": [
              np.nanmean,
              partial(np.nanpercentile, q=25),
              partial(np.nanpercentile, q=75),
          ],
          "w": np.nanmean,
      }
      agg_col_names = ["mean", "lower", "upper", "w"]
      x_col = "x"
      y_col = "y"
      split_col = "z"
      df_plt = plt_overlay_long_df(
          df=df,
          x_col=x_col,
          y_col=y_col,
          split_col=split_col,
          plt_title="",
          agg_dict=agg_dict,
          agg_col_names=agg_col_names,
      )
      assert list(df_plt.columns) == ["x"] + agg_col_names
  
file_path: greykite/greykite/tests/common/viz/test_timeseries_plotting_mpl.py
imports: import datetime
  import math
  from functools import partial
  import matplotlib
  import numpy
  import pandas
  import scipy.stats
  from greykite.common.viz.timeseries_plotting_mpl import plt_compare_timeseries
  from greykite.common.viz.timeseries_plotting_mpl import plt_longterm_ts_agg
  from greykite.common.viz.timeseries_plotting_mpl import plt_overlay_long_df
  from greykite.common.viz.timeseries_plotting_mpl import plt_overlay_with_bands
label_desc: Use image node_id 2 for calling a global function with example usage: test_plt_overlay_long_df() without return types