@@ -1822,10 +1822,13 @@ def __init__(self, patches, *, match_original=False, **kwargs):
18221822 a heterogeneous assortment of different patch types.
18231823
18241824 match_original : bool, default: False
1825- If True, use the colors and linewidths of the original
1826- patches. If False, new colors may be assigned by
1825+ If True, use the colors, linewidths, linestyles
1826+ and the hatch of the original patches.
1827+ If False, new colors may be assigned by
18271828 providing the standard collection arguments, facecolor,
18281829 edgecolor, linewidths, norm or cmap.
1830+ Also, all hatches will be set to the first patch's hatch,
1831+ regardless of the hatch set in the original patches.
18291832
18301833 **kwargs
18311834 All other parameters are forwarded to `.Collection`.
@@ -1843,17 +1846,19 @@ def __init__(self, patches, *, match_original=False, **kwargs):
18431846 """
18441847
18451848if match_original :
1846- def determine_facecolor (patch ):
1847- if patch .get_fill ():
1848- return patch .get_facecolor ()
1849- return [0 ,0 ,0 ,0 ]
1850-
1851- kwargs ['facecolors' ]= [determine_facecolor (p )for p in patches ]
1852- kwargs ['edgecolors' ]= [p .get_edgecolor ()for p in patches ]
1849+ kwargs ['facecolors' ]= [p .get_facecolor ()for p in patches ]
18531850kwargs ['linewidths' ]= [p .get_linewidth ()for p in patches ]
18541851kwargs ['linestyles' ]= [p .get_linestyle ()for p in patches ]
18551852kwargs ['antialiaseds' ]= [p .get_antialiased ()for p in patches ]
18561853
1854+ # Edgecolors are handled separately because are defaulted to None
1855+ # and the Hatch colors depend on them.
1856+ if any (p ._original_edgecolor is not None for p in patches ):
1857+ kwargs ["edgecolors" ]= [p .get_edgecolor ()for p in patches ]
1858+
1859+ # Using the hatch of only the first patch
1860+ kwargs ['hatch' ]= patches [0 ].get_hatch ()
1861+
18571862super ().__init__ (** kwargs )
18581863
18591864self .set_paths (patches )