def quenching_report(flr, flr_corrected, quenching_layer, dives, depth,
    pcolor_kwargs={}):
    """
    A report for the results of optics.quenching_correction.

    The function creates a figure object of 3 subplots containing a pcolormesh
    of the original fluorescence data, the quenching corrected fluorescence
    data and the quenching layer calculated from the
    optics.quenching_correction function.

    Parameters
    ----------
    flr: numpy.ndarray or pandas.Series
        Fluorescence data after cleaning and factory calibration conversion.
    flr_corrected: numpy.ndarray or pandas.Series
        The fluorescence data corrected for quenching.
    quenching layer: bool
        A boolean mask of where the fluorescence is quenched.
    dives: numpy.ndarray or pandas.Series
        The dive count (round is down dives, 0.5 is up dives).
    depth: numpy.ndarray or pandas.Series
        The depth array in metres.
    pcolor_kwargs: dict
        A dictionary of keyword arguements passed to pcolormesh.

    Returns
    -------
    figure: object
        Creates a figure object with 3 subplots containing a pcolormesh of the
        original fluorescence data, the quenching corrected fluorescence data
        and the quenching layer calculated from the optics.quenching_correction
        function.
    """
    from matplotlib.pyplot import subplots, cm
    from numpy import array, nanpercentile
    from . import plot
    y = array(depth)
    i = y < 183
    y = y[i]
    x = array(dives)[i]
    z = [array(flr)[i], array(flr_corrected)[i], array(quenching_layer)[i]]
    fig, ax = subplots(3, 1, figsize=[10, 11], dpi=90)
    title = 'Quenching correction with Thomalla et al. (2017)'
    bmin, bmax = nanpercentile(z[1], [2, 98])
    smin, smax = nanpercentile(z[2], [2, 98])
    props = dict(cmap=cm.YlGnBu_r)
    props.update(pcolor_kwargs)
    plot.pcolormesh(x, y, z[0], ax=ax[0], vmin=bmin, vmax=bmax, **props),
    plot.pcolormesh(x, y, z[1], ax=ax[1], vmin=bmin, vmax=bmax, **props),
    plot.pcolormesh(x, y, z[2], ax=ax[2], vmin=smin, vmax=smax, **props),
    for i in range(0, 3):
        ax[i].set_ylim(180, 0)
        ax[i].set_xlim(x.min(), x.max())
        ax[i].set_ylabel('Depth (m)')
        ax[i].set_xlabel('Dive number')
        if i != 2:
            ax[i].set_xticklabels([])
            ax[i].cb.set_label('Relative Units')
        else:
            ax[i].set_xlabel('Dive number')
            ax[i].cb.set_label('Boolean mask')
    ax[0].set_title('Original fluorescence')
    ax[1].set_title('Quenching corrected fluorescence')
    ax[2].set_title('Quenching layer')
    fig.tight_layout()
    fig.text(0.47, 1.02, title, va='center', ha='center', size=14)
    return fig
