code: def draw_panel(self, data, panel_params, coord, ax, **params):
          
          for _, gdata in data.groupby('group'):
              gdata.reset_index(inplace=True, drop=True)
              self.draw_group(gdata, panel_params, coord, ax, **params)
docs: Plot all groups
  
          For effeciency, geoms that do not need to partition
          different groups before plotting should override this
          method and avoid the groupby.
  
          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
  
          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'.