def _create_subplots(self, ranges):
        subplots = OrderedDict()

        length = self.style_grouping
        ordering = util.layer_sort(self.hmap)
        keys, vmaps = self.hmap.split_overlays()
        group_fn = lambda x: (x.type.__name__, x.last.group, x.last.label)
        map_lengths = Counter()
        for m in vmaps:
            map_lengths[group_fn(m)[:length]] += 1

        zoffset = 0
        overlay_type = 1 if self.hmap.type == Overlay else 2
        group_counter = Counter()
        for (key, vmap) in zip(keys, vmaps):
            vtype = type(vmap.last)
            plottype = Store.registry[self.renderer.backend].get(vtype, None)
            if plottype is None:
                self.warning("No plotting class for %s type and %s backend "
                             "found. " % (vtype.__name__, self.renderer.backend))
                continue

            if self.hmap.type == Overlay:
                style_key = (vmap.type.__name__,) + key
            else:
                if not isinstance(key, tuple): key = (key,)
                style_key = group_fn(vmap) + key
            group_key = style_key[:length]
            zorder = ordering.index(style_key) + zoffset
            cyclic_index = group_counter[group_key]
            group_counter[group_key] += 1
            group_length = map_lengths[group_key]

            opts = {}
            if overlay_type == 2:
                opts['overlay_dims'] = OrderedDict(zip(self.hmap.last.kdims, key))
            if issubclass(plottype, GenericOverlayPlot):
                opts['show_legend'] = self.show_legend
            style = self.lookup_options(vmap.last, 'style').max_cycles(group_length)
            plotopts = dict(opts, keys=self.keys, style=style, cyclic_index=cyclic_index,
                            zorder=self.zorder+zorder, ranges=ranges, overlaid=overlay_type,
                            layout_dimensions=self.layout_dimensions,
                            show_title=self.show_title, dimensions=self.dimensions,
                            uniform=self.uniform,
                            **{k: v for k, v in self.handles.items() if k in self._passed_handles})

            if not isinstance(key, tuple): key = (key,)
            subplots[key] = plottype(vmap, **plotopts)
            if not isinstance(plottype, PlotSelector) and issubclass(plottype, GenericOverlayPlot):
                zoffset += 1 - len(set([k for o in vmap for k in o.keys()]))
        if not subplots:
            raise BackendError(self.renderer.backend)

        return subplots
dataset/ETHPy150Open ioam/holoviews/holoviews/plotting/plot.py/GenericOverlayPlot._create_subplots/swapped operands of `-`