docstr: Draw a collection of paths. The paths, offsets, and styles are all
  iterables, and the number of paths is max(len(paths), len(offsets)).
  
  By default, this is implemented via multiple calls to the draw_path()
  function. For efficiency, Renderers may choose to customize this
  implementation.
  
  Examples of path collections created by matplotlib are scatter plots,
  histograms, contour plots, and many others.
  
  Parameters
  ----------
  paths : list
      list of tuples, where each tuple has two elements:
      (data, pathcodes).  See draw_path() for a description of these.
  path_coordinates: string
      the coordinates code for the paths, which should be either
      'data' for data coordinates, or 'figure' for figure (pixel)
      coordinates.
  path_transforms: array_like
      an array of shape (*, 3, 3), giving a series of 2D Affine
      transforms for the paths. These encode translations, rotations,
      and scalings in the standard way.
  offsets: array_like
      An array of offsets of shape (N, 2)
  offset_coordinates : string
      the coordinates code for the offsets, which should be either
      'data' for data coordinates, or 'figure' for figure (pixel)
      coordinates.
  offset_order : string
      either "before" or "after". This specifies whether the offset
      is applied before the path transform, or after.  The matplotlib
      backend equivalent is "before"->"data", "after"->"screen".
  styles: dictionary
      A dictionary in which each value is a list of length N, containing
      the style(s) for the paths.
  mplobj : matplotlib object
      the matplotlib plot element which generated this collection
docstr_tok: ["Draw","a","collection","of","paths",".","The","paths",",","offsets",",","and","styles","are","all","iterables",",","and","the","number","of","paths","is","max","(","len","(","paths",")",",","len","(","offsets",")",")",".","By","default",",","this","is","implemented","via","multiple","calls","to","the","draw_path","(",")","function",".","For","efficiency",",","Renderers","may","choose","to","customize","this","implementation",".","Examples","of","path","collections","created","by","matplotlib","are","scatter","plots",",","histograms",",","contour","plots",",","and","many","others",".","Parameters","--","--","--","--","--","paths",":","list","list","of","tuples",",","where","each","tuple","has","two","elements",":","(","data",",","pathcodes",")",".","See","draw_path","(",")","for","a","description","of","these",".","path_coordinates",":","string","the","coordinates","code","for","the","paths",",","which","should","be","either","'data","'","for","data","coordinates",",","or","'figure","'","for","figure","(","pixel",")","coordinates",".","path_transforms",":","array_like","an","array","of","shape","(","*",",","3",",","3",")",",","giving","a","series","of","2D","Affine","transforms","for","the","paths",".","These","encode","translations",",","rotations",",","and","scalings","in","the","standard","way",".","offsets",":","array_like","An","array","of","offsets","of","shape","(","N",",","2",")","offset_coordinates",":","string","the","coordinates","code","for","the","offsets",",","which","should","be","either","'data","'","for","data","coordinates",",","or","'figure","'","for","figure","(","pixel",")","coordinates",".","offset_order",":","string","either","``","before","''","or","``","after","''",".","This","specifies","whether","the","offset","is","applied","before","the","path","transform",",","or","after",".","The","matplotlib","backend","equivalent","is","``","before","''","-",">","''","data","''",",","``","after","''","-",">","''","screen","''",".","styles",":","dictionary","A","dictionary","in","which","each","value","is","a","list","of","length","N",",","containing","the","style","(","s",")","for","the","paths",".","mplobj",":","matplotlib","object","the","matplotlib","plot","element","which","generated","this","collection"]
code: def draw_path_collection(
      self,
      paths,
      path_coordinates,
      path_transforms,
      offsets,
      offset_coordinates,
      offset_order,
      styles,
      mplobj=None,
  ):
      """
      Draw a collection of paths. The paths, offsets, and styles are all
      iterables, and the number of paths is max(len(paths), len(offsets)).
  
      By default, this is implemented via multiple calls to the draw_path()
      function. For efficiency, Renderers may choose to customize this
      implementation.
  
      Examples of path collections created by matplotlib are scatter plots,
      histograms, contour plots, and many others.
  
      Parameters
      ----------
      paths : list
          list of tuples, where each tuple has two elements:
          (data, pathcodes).  See draw_path() for a description of these.
      path_coordinates: string
          the coordinates code for the paths, which should be either
          'data' for data coordinates, or 'figure' for figure (pixel)
          coordinates.
      path_transforms: array_like
          an array of shape (*, 3, 3), giving a series of 2D Affine
          transforms for the paths. These encode translations, rotations,
          and scalings in the standard way.
      offsets: array_like
          An array of offsets of shape (N, 2)
      offset_coordinates : string
          the coordinates code for the offsets, which should be either
          'data' for data coordinates, or 'figure' for figure (pixel)
          coordinates.
      offset_order : string
          either "before" or "after". This specifies whether the offset
          is applied before the path transform, or after.  The matplotlib
          backend equivalent is "before"->"data", "after"->"screen".
      styles: dictionary
          A dictionary in which each value is a list of length N, containing
          the style(s) for the paths.
      mplobj : matplotlib object
          the matplotlib plot element which generated this collection
      """
      if offset_order == "before":
          raise NotImplementedError("offset before transform")
  
      for tup in self._iter_path_collection(
          paths, path_transforms, offsets, styles
      ):
          (path, path_transform, offset, ec, lw, fc) = tup
          vertices, pathcodes = path
          path_transform = transforms.Affine2D(path_transform)
          vertices = path_transform.transform(vertices)
          # This is a hack:
          if path_coordinates == "figure":
              path_coordinates = "points"
          style = {
              "edgecolor": utils.export_color(ec),
              "facecolor": utils.export_color(fc),
              "edgewidth": lw,
              "dasharray": "10,0",
              "alpha": styles["alpha"],
              "zorder": styles["zorder"],
          }
          self.draw_path(
              data=vertices,
              coordinates=path_coordinates,
              pathcodes=pathcodes,
              style=style,
              offset=offset,
              offset_coordinates=offset_coordinates,
              mplobj=mplobj,
          )
  
imports: import warnings
  import itertools
  from contextlib import contextmanager
  from packaging.version import Version
  import numpy
  import matplotlib
  from matplotlib import transforms
  from ..None import utils
label_desc: Use image node_id 19 for calling the Renderer obj's underlying member method code with example usage: obj.draw_path_collection(paths, path_coordinates, path_transforms, offsets, offset_coordinates, offset_order, styles, mplobj) without return types