def METHOD_NAME(self, split_gen, scales, orient):
    patches = defaultdict(list)
    for keys, data, ax in split_gen():
        kws = {}
        data = self._standardize_coordinate_parameters(data, orient)
        resolved = resolve_properties(self, keys, scales)
        verts = self._get_verts(data, orient)
        ax.update_datalim(verts)
        # TODO should really move this logic into resolve_color
        fc = resolve_color(self, keys, "", scales)
        if not resolved["fill"]:
            fc = mpl.colors.to_rgba(fc, 0)
        kws["facecolor"] = fc
        kws["edgecolor"] = resolve_color(self, keys, "edge", scales)
        kws["linewidth"] = resolved["edgewidth"]
        kws["linestyle"] = resolved["edgestyle"]
        patches[ax].append(mpl.patches.Polygon(verts, **kws))
    for ax, ax_patches in patches.items():
        for patch in ax_patches:
            self._postprocess_artist(patch, ax, orient)
            ax.add_patch(patch)