class_docstr: Funnel graph class
class_docstr_tok: ["Funnel","graph","class"]
docstr: Draw a funnel slice
docstr_tok: ["Draw","a","funnel","slice"]
code: def funnel(self, serie):
      """Draw a funnel slice"""
      serie_node = self.svg.serie(serie)
      fmt = lambda x: "%f %f" % x
      for i, poly in enumerate(serie.points):
          metadata = serie.metadata.get(i)
          val = self._format(serie, i)
  
          funnels = decorate(
              self.svg,
              self.svg.node(serie_node["plot"], class_="funnels"),
              metadata,
          )
  
          alter(
              self.svg.node(
                  funnels,
                  "polygon",
                  points=" ".join(map(fmt, map(self.view, poly))),
                  class_="funnel reactive tooltip-trigger",
              ),
              metadata,
          )
  
          # Poly center from label
          x, y = self.view(
              (
                  self._center(self._x_pos[serie.index]),
                  sum([point[1] for point in poly]) / len(poly),
              )
          )
          self._tooltip_data(
              funnels,
              val,
              x,
              y,
              "centered",
              self._get_x_label(serie.index),
          )
          self._static_value(serie_node, val, x, y, metadata)
  
file_path: pygal/pygal/graph/funnel.py
imports: from pygal.adapters import none_to_zero, positive
  from pygal.graph.graph import Graph
  from pygal.util import alter, cut, decorate
label_desc: Use image node_id 2 for calling the Funnel obj's underlying member method code with example usage: obj.funnel(serie) without return types