@staticmethod
def draw_unit(data, panel_params, coord, ax, **params):
    """
        Plot data belonging to a unit.

        A matplotlib plot function may require that an aethestic
        have a single unique value. e.g. linestyle='dashed' and
        not linestyle=['dashed', 'dotted', ...].
        A single call to such a function can only plot lines with
        the same linestyle. However, if the plot we want has more
        than one line with different linestyles, we need to group
        the lines with the same linestyle and plot them as one
        unit. In this case, draw_group calls this function to do
        the plotting. For an example see
        :class:`~plotnine.geoms.geom_point`.

        Parameters
        ----------
        data : dataframe
            Data to be plotted by this geom. This is the
            dataframe created in the plot_build pipeline.
        panel_params : dict
            The scale information as may be required by the
            axes. At this point, that information is about
            ranges, ticks and labels. Keys of interest to
            the geom are::

                'x_range'  # tuple
                'y_range'  # tuple

            In rare cases a geom may need access to the x or y scales.
            Those are available at::

                'scales'   # SimpleNamespace

        coord : coord
            Coordinate (e.g. coord_cartesian) system of the
            geom.
        ax : axes
            Axes on which to plot.
        params : dict
            Combined parameters for the geom and stat. Also
            includes the 'zorder'.
        """
    msg = 'The geom should implement this method.'
    raise NotImplementedError(msg)
