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","."]
code: def set_UVC(self, U, V, C=None):
      self.u = ma.masked_invalid(U, copy=False).ravel()
      self.v = ma.masked_invalid(V, copy=False).ravel()
      if C is not None:
          c = ma.masked_invalid(C, copy=False).ravel()
          x, y, u, v, c = delete_masked_points(
              self.x.ravel(), self.y.ravel(), self.u, self.v, c
          )
          _check_consistent_shapes(x, y, u, v, c)
      else:
          x, y, u, v = delete_masked_points(
              self.x.ravel(), self.y.ravel(), self.u, self.v
          )
          _check_consistent_shapes(x, y, u, v)
  
      magnitude = np.hypot(u, v)
      flags, barbs, halves, empty = self._find_tails(
          magnitude, self.rounding, **self.barb_increments
      )
  
      # Get the vertices for each of the barbs
  
      plot_barbs = self._make_barbs(
          u,
          v,
          flags,
          barbs,
          halves,
          empty,
          self._length,
          self._pivot,
          self.sizes,
          self.fill_empty,
          self.flip,
      )
      self.set_verts(plot_barbs)
  
      # Set the color array
      if C is not None:
          self.set_array(c)
  
      # Update the offsets in case the masked data changed
      xy = np.hstack((x[:, np.newaxis], y[:, np.newaxis]))
      self._offsets = xy
      self.stale = True
  
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 4 for calling the Barbs obj's underlying member method code with example usage: obj.set_UVC(U, V, C) without return types