'Adds a non-resampled image to the figure.
call signatures::
figimage(X, **kwargs)
adds a non-resampled array *X* to the figure.
figimage(X, xo, yo)
with pixel offsets *xo*, *yo*,
*X* must be a float array:
* If *X* is MxN, assume luminance (grayscale)
* If *X* is MxNx3, assume RGB
* If *X* is MxNx4, assume RGBA
Optional keyword arguments:
Keyword     Description
resize      a boolean, True or False. If "True", then re-size the
Figure to match the given image size.
xo or yo    An integer, the *x* and *y* image offset in pixels
cmap        a :class:`matplotlib.colors.Colormap` instance, e.g.,
cm.jet. If *None*, default to the rc ``image.cmap``
value
norm        a :class:`matplotlib.colors.Normalize` instance. The
default is normalization().  This scales luminance -> 0-1
vmin|vmax   are used to scale a luminance image to 0-1.  If either
is *None*, the min and max of the luminance values will
be used.  Note if you pass a norm instance, the settings
for *vmin* and *vmax* will be ignored.
alpha       the alpha blending value, default is *None*
origin      [ \'upper\' | \'lower\' ] Indicates where the [0,0] index of
the array is in the upper left or lower left corner of
the axes. Defaults to the rc image.origin value
figimage complements the axes image
(:meth:`~matplotlib.axes.Axes.imshow`) which will be resampled
to fit the current axes.  If you want a resampled image to
fill the entire figure, you can define an
:class:`~matplotlib.axes.Axes` with extent [0,0,1,1].
An :class:`matplotlib.image.FigureImage` instance is returned.
Additional kwargs are Artist kwargs passed on to
:class:`~matplotlib.image.FigureImage`'

def figimage(self, X, xo=0, yo=0, alpha=None, norm=None, cmap=None, vmin=None, vmax=None, origin=None, resize=False, **kwargs):

    if (not self._hold):
        self.clf()
    if resize:
        dpi = self.get_dpi()
        figsize = [(x / float(dpi)) for x in (X.shape[1], X.shape[0])]
        self.set_size_inches(figsize, forward=True)
    im = FigureImage(self, cmap, norm, xo, yo, origin, **kwargs)
    im.stale_callback = _stale_figure_callback
    im.set_array(X)
    im.set_alpha(alpha)
    if (norm is None):
        im.set_clim(vmin, vmax)
    self.images.append(im)
    im._remove_method = (lambda h: self.images.remove(h))
    self.stale = True
    return im
