code: def plot_top_bottom_quantile_turnover(
      quantile_turnover, period=1, ax=None
  ):
      """
      Plots period wise top and bottom quantile factor turnover.
  
      Parameters
      ----------
      quantile_turnover: pd.Dataframe
          Quantile turnover (each DataFrame column a quantile).
      period: int, optional
          Period over which to calculate the turnover.
      ax : matplotlib.Axes, optional
          Axes upon which to plot.
  
      Returns
      -------
      ax : matplotlib.Axes
          The axes that were plotted on.
      """
      if ax is None:
          f, ax = plt.subplots(1, 1, figsize=(18, 6))
  
      max_quantile = quantile_turnover.columns.max()
      min_quantile = quantile_turnover.columns.min()
      turnover = pd.DataFrame()
      turnover["top quantile turnover"] = quantile_turnover[
          max_quantile
      ]
      turnover["bottom quantile turnover"] = quantile_turnover[
          min_quantile
      ]
      turnover.plot(
          title="{}D Period Top and Bottom Quantile Turnover".format(
              period
          ),
          ax=ax,
          alpha=0.6,
          lw=0.8,
      )
      ax.set(ylabel="Proportion Of Names New To Quantile", xlabel="")
  
      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 16 for calling a global function with example usage: plot_top_bottom_quantile_turnover(quantile_turnover, period, ax) and returns: ax