class_docstr: Specialized PolyCollection for barbs.
  
  The only API method is :meth:`set_UVC`, which can be used to
  change the size, orientation, and color of the arrows.  Locations
  are changed using the :meth:`set_offsets` collection method.
  Possibly this method will be useful in animations.
  
  There is one internal function :meth:`_find_tails` which finds
  exactly what should be put on the barb given the vector magnitude.
  From there :meth:`_make_barbs` is used to find the vertices of the
  polygon to represent the barb based on this information.
class_docstr_tok: ["Specialized","PolyCollection","for","barbs",".","The","only","API","method","is",":","meth",":","`","set_UVC","`",",","which","can","be","used","to","change","the","size",",","orientation",",","and","color","of","the","arrows",".","Locations","are","changed","using","the",":","meth",":","`","set_offsets","`","collection","method",".","Possibly","this","method","will","be","useful","in","animations",".","There","is","one","internal","function",":","meth",":","`","_find_tails","`","which","finds","exactly","what","should","be","put","on","the","barb","given","the","vector","magnitude",".","From","there",":","meth",":","`","_make_barbs","`","is","used","to","find","the","vertices","of","the","polygon","to","represent","the","barb","based","on","this","information","."]
docstr: The constructor takes one required argument, an Axes
  instance, followed by the args and kwargs described
  by the following pylab interface documentation:
  %(barbs_doc)s
docstr_tok: ["The","constructor","takes","one","required","argument",",","an","Axes","instance",",","followed","by","the","args","and","kwargs","described","by","the","following","pylab","interface","documentation",":","%","(","barbs_doc",")","s"]
code: def __init__(self, ax, *args, **kw):
      """
      The constructor takes one required argument, an Axes
      instance, followed by the args and kwargs described
      by the following pylab interface documentation:
      %(barbs_doc)s
      """
      self._pivot = kw.pop("pivot", "tip")
      self._length = kw.pop("length", 7)
      barbcolor = kw.pop("barbcolor", None)
      flagcolor = kw.pop("flagcolor", None)
      self.sizes = kw.pop("sizes", dict())
      self.fill_empty = kw.pop("fill_empty", False)
      self.barb_increments = kw.pop("barb_increments", dict())
      self.rounding = kw.pop("rounding", True)
      self.flip = kw.pop("flip_barb", False)
      transform = kw.pop("transform", ax.transData)
  
      # Flagcolor and barbcolor provide convenience parameters for
      # setting the facecolor and edgecolor, respectively, of the barb
      # polygon.  We also work here to make the flag the same color as the
      # rest of the barb by default
  
      if None in (barbcolor, flagcolor):
          kw["edgecolors"] = "face"
          if flagcolor:
              kw["facecolors"] = flagcolor
          elif barbcolor:
              kw["facecolors"] = barbcolor
          else:
              # Set to facecolor passed in or default to black
              kw.setdefault("facecolors", "k")
      else:
          kw["edgecolors"] = barbcolor
          kw["facecolors"] = flagcolor
  
      # Explicitly set a line width if we're not given one, otherwise
      # polygons are not outlined and we get no barbs
      if "linewidth" not in kw and "lw" not in kw:
          kw["linewidth"] = 1
  
      # Parse out the data arrays from the various configurations supported
      x, y, u, v, c = _parse_args(*args)
      self.x = x
      self.y = y
      xy = np.hstack((x[:, np.newaxis], y[:, np.newaxis]))
  
      # Make a collection
      barb_size = self._length**2 / 4  # Empirically determined
      mcollections.PolyCollection.__init__(
          self,
          [],
          (barb_size,),
          offsets=xy,
          transOffset=transform,
          **kw,
      )
      self.set_transform(transforms.IdentityTransform())
  
      self.set_UVC(u, v, c)
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import six
  import math
  import weakref
  import numpy
  from numpy import ma
  import matplotlib.collections
  import matplotlib.transforms
  import matplotlib.text
  import matplotlib.artist
  from matplotlib.artist import allow_rasterization
  from matplotlib import docstring
  import matplotlib.font_manager
  from matplotlib.cbook import delete_masked_points
  from matplotlib.patches import CirclePolygon
label_desc: Use image node_id 1 to create a new Barbs object from inherited base classes: mcollections with example: obj = Barbs(ax)