class_docstr: A renderer class inheriting from base for rendering mpl plots in plotly.
  
  A renderer class to be used with an exporter for rendering matplotlib
  plots in Plotly. This module defines the PlotlyRenderer class which handles
  the creation of the JSON structures that get sent to plotly.
  
  All class attributes available are defined in __init__().
  
  Basic Usage:
  
  # (mpl code) #
  fig = gcf()
  renderer = PlotlyRenderer(fig)
  exporter = Exporter(renderer)
  exporter.run(fig)  # ... et voila
docstr: Add a path collection to data list as a scatter plot.
  
  Current implementation defaults such collections as scatter plots.
  Matplotlib supports collections that have many of the same parameters
  in common like color, size, path, etc. However, they needn't all be
  the same. Plotly does not currently support such functionality and
  therefore, the style for the first object is taken and used to define
  the remaining paths in the collection.
  
  props.keys() -- [
  'paths',                (structure: [vertices, path_code])
  'path_coordinates',     ('data', 'axes', 'figure', or 'display')
  'path_transforms',      (mpl transform, including Affine2D matrix)
  'offsets',              (offset from axes, helpful if in 'data')
  'offset_coordinates',   ('data', 'axes', 'figure', or 'display')
  'offset_order',
  'styles',               (style dict, see below)
  'mplobj'                (the collection obj being drawn)
  ]
  
  props['styles'].keys() -- [
  'linewidth',            (one or more linewidths)
  'facecolor',            (one or more facecolors for path)
  'edgecolor',            (one or more edgecolors for path)
  'alpha',                (one or more opacites for path)
  'zorder',               (precedence when stacked)
  ]
docstr_tok: ["Add","a","path","collection","to","data","list","as","a","scatter","plot",".","Current","implementation","defaults","such","collections","as","scatter","plots",".","Matplotlib","supports","collections","that","have","many","of","the","same","parameters","in","common","like","color",",","size",",","path",",","etc",".","However",",","they","need","n't","all","be","the","same",".","Plotly","does","not","currently","support","such","functionality","and","therefore",",","the","style","for","the","first","object","is","taken","and","used","to","define","the","remaining","paths","in","the","collection",".","props.keys","(",")","--","[","'paths","'",",","(","structure",":","[","vertices",",","path_code","]",")","'path_coordinates","'",",","(","'data","'",",","'axes","'",",","'figure","'",",","or","'display","'",")","'path_transforms","'",",","(","mpl","transform",",","including","Affine2D","matrix",")","'offsets","'",",","(","offset","from","axes",",","helpful","if","in","'data","'",")","'offset_coordinates","'",",","(","'data","'",",","'axes","'",",","'figure","'",",","or","'display","'",")","'offset_order","'",",","'styles","'",",","(","style","dict",",","see","below",")","'mplobj","'","(","the","collection","obj","being","drawn",")","]","props","[","'styles","'","]",".keys","(",")","--","[","'linewidth","'",",","(","one","or","more","linewidths",")","'facecolor","'",",","(","one","or","more","facecolors","for","path",")","'edgecolor","'",",","(","one","or","more","edgecolors","for","path",")","'alpha","'",",","(","one","or","more","opacites","for","path",")","'zorder","'",",","(","precedence","when","stacked",")","]"]
code: def draw_path_collection(self, ax, **props):
      """Add a path collection to data list as a scatter plot.
  
      Current implementation defaults such collections as scatter plots.
      Matplotlib supports collections that have many of the same parameters
      in common like color, size, path, etc. However, they needn't all be
      the same. Plotly does not currently support such functionality and
      therefore, the style for the first object is taken and used to define
      the remaining paths in the collection.
  
      props.keys() -- [
      'paths',                (structure: [vertices, path_code])
      'path_coordinates',     ('data', 'axes', 'figure', or 'display')
      'path_transforms',      (mpl transform, including Affine2D matrix)
      'offsets',              (offset from axes, helpful if in 'data')
      'offset_coordinates',   ('data', 'axes', 'figure', or 'display')
      'offset_order',
      'styles',               (style dict, see below)
      'mplobj'                (the collection obj being drawn)
      ]
  
      props['styles'].keys() -- [
      'linewidth',            (one or more linewidths)
      'facecolor',            (one or more facecolors for path)
      'edgecolor',            (one or more edgecolors for path)
      'alpha',                (one or more opacites for path)
      'zorder',               (precedence when stacked)
      ]
  
      """
      self.msg += "    Attempting to draw a path collection\n"
      if props["offset_coordinates"] == "data":
          markerstyle = mpltools.get_markerstyle_from_collection(props)
          scatter_props = {
              "coordinates": "data",
              "data": props["offsets"],
              "label": None,
              "markerstyle": markerstyle,
              "linestyle": None,
              "type": "collection",
              "is_3d": "3d" in str(type(ax)).split(".")[-1].lower(),
          }
          self.msg += "    Drawing path collection as markers\n"
          self.draw_marked_line(**scatter_props)
      else:
          self.msg += (
              "    Path collection not linked to 'data', "
              "not drawing\n"
          )
          warnings.warn(
              "Dang! That path collection is out of this "
              "world. I totally don't know what to do with "
              "it yet! Plotly can only import path "
              "collections linked to 'data' coordinates"
          )
  
imports: from __future__ import absolute_import
  import six
  import warnings
  from .mplexporter import Renderer
  from .None import mpltools
label_desc: Use image node_id 10 for calling the PlotlyRenderer obj's underlying member method code with example usage: obj.draw_path_collection(ax) without return types