'Parameters
pad : float
fraction of the axes height to put as padding.
defaults to 0.0
add_all : bool
True: Add the {rgb, r, g, b} axes to the figure
defaults to True.
axes_class : matplotlib.axes.Axes
kl :
Unpacked into axes_class() init for RGB
kwargs :
Unpacked into axes_class() init for RGB, R, G, B axes'

def __init__(self, *kl, **kwargs):

    pad = kwargs.pop(u'pad', 0.0)
    add_all = kwargs.pop(u'add_all', True)
    try:
        axes_class = kwargs.pop(u'axes_class', self._defaultAxesClass)
    except AttributeError:
        new_msg = u'A    subclass    of    RGBAxesBase    must    have    a    _defaultAxesClass    attribute.    If    you    are    not    sure    which    axes    class    to    use,    consider    using    mpl_toolkits.axes_grid1.mpl_axes.Axes.'
        six.reraise(AttributeError, AttributeError(new_msg), sys.exc_info()[2])
    ax = axes_class(*kl, **kwargs)
    divider = make_axes_locatable(ax)
    pad_size = Size.Fraction(pad, Size.AxesY(ax))
    xsize = Size.Fraction(((1.0 - (2.0 * pad)) / 3.0), Size.AxesX(ax))
    ysize = Size.Fraction(((1.0 - (2.0 * pad)) / 3.0), Size.AxesY(ax))
    divider.set_horizontal([Size.AxesX(ax), pad_size, xsize])
    divider.set_vertical([ysize, pad_size, ysize, pad_size, ysize])
    ax.set_axes_locator(divider.new_locator(0, 0, ny1=(-1)))
    ax_rgb = []
    for ny in [4, 2, 0]:
        ax1 = axes_class(ax.get_figure(), ax.get_position(original=True), sharex=ax, sharey=ax, **kwargs)
        locator = divider.new_locator(nx=2, ny=ny)
        ax1.set_axes_locator(locator)
        ax1.axis[:].toggle(ticklabels=False)
        ax_rgb.append(ax1)
    self.RGB = ax
    (self.R, self.G, self.B) = ax_rgb
    if add_all:
        fig = ax.get_figure()
        fig.add_axes(ax)
        self.add_RGB_to_figure()
    self._config_axes()
