'*patches*
a sequence of Patch objects.  This list may include
a heterogeneous assortment of different patch types.
*match_original*
If True, use the colors and linewidths of the original
patches.  If False, new colors may be assigned by
providing the standard collection arguments, facecolor,
edgecolor, linewidths, norm or cmap.
If any of *edgecolors*, *facecolors*, *linewidths*,
*antialiaseds* are None, they default to their
:data:`matplotlib.rcParams` patch setting, in sequence form.
The use of :class:`~matplotlib.cm.ScalarMappable` is optional.
If the :class:`~matplotlib.cm.ScalarMappable` matrix _A is not
None (i.e., a call to set_array has been made), at draw time a
call to scalar mappable will be made to set the face colors.'

def __init__(self, patches, match_original=False, **kwargs):

    if match_original:
        def determine_facecolor(patch):
            if patch.get_fill():
                return patch.get_facecolor()
            return [0, 0, 0, 0]
        kwargs[u'facecolors'] = [determine_facecolor(p) for p in patches]
        kwargs[u'edgecolors'] = [p.get_edgecolor() for p in patches]
        kwargs[u'linewidths'] = [p.get_linewidth() for p in patches]
        kwargs[u'linestyles'] = [p.get_linestyle() for p in patches]
        kwargs[u'antialiaseds'] = [p.get_antialiased() for p in patches]
    Collection.__init__(self, **kwargs)
    self.set_paths(patches)
