code: def plot_cumulative_returns_by_quantile(
      quantile_returns, period, freq=None, ax=None
  ):
      """
      Plots the cumulative returns of various factor quantiles.
  
      Parameters
      ----------
      quantile_returns : pd.DataFrame
          Returns by factor quantile
      period : pandas.Timedelta or string
          Length of period for which the returns are computed (e.g. 1 day)
          if 'period' is a string it must follow pandas.Timedelta constructor
          format (e.g. '1 days', '1D', '30m', '3h', '1D1h', etc)
      freq : pandas DateOffset
          Used to specify a particular trading calendar e.g. BusinessDay or Day
          Usually this is inferred from utils.infer_trading_calendar, which is
          called by either get_clean_factor_and_forward_returns or
          compute_forward_returns
      ax : matplotlib.Axes, optional
          Axes upon which to plot.
  
      Returns
      -------
      ax : matplotlib.Axes
      """
  
      if ax is None:
          f, ax = plt.subplots(1, 1, figsize=(18, 6))
  
      ret_wide = quantile_returns.unstack("factor_quantile")
  
      cum_ret = ret_wide.apply(perf.cumulative_returns)
  
      cum_ret = cum_ret.loc[
          :, ::-1
      ]  # we want negative quantiles as 'red'
  
      cum_ret.plot(lw=2, ax=ax, cmap=cm.coolwarm)
      ax.legend()
      ymin, ymax = cum_ret.min().min(), cum_ret.max().max()
      ax.set(
          ylabel="Log Cumulative Returns",
          title="""Cumulative Return by Quantile
                      ({} Period Forward Return)""".format(
              period
          ),
          xlabel="",
          yscale="symlog",
          yticks=np.linspace(ymin, ymax, 5),
          ylim=(ymin, ymax),
      )
  
      ax.yaxis.set_major_formatter(ScalarFormatter())
      ax.axhline(1.0, linestyle="-", color="black", lw=1)
  
      return ax
  
imports: import numpy
  import pandas
  from scipy import stats
  import statsmodels.api
  import seaborn
  import matplotlib.cm
  import matplotlib.pyplot
  from matplotlib.ticker import ScalarFormatter
  from functools import wraps
  from .None import utils
  from .None import performance
label_desc: Use image node_id 19 for calling a global function with example usage: plot_cumulative_returns_by_quantile(quantile_returns, period, freq, ax) and returns: ax