class_docstr: Specialized PolyCollection for arrows.
  
  The only API method is set_UVC(), which can be used
  to change the size, orientation, and color of the
  arrows; their locations are fixed when the class is
  instantiated.  Possibly this method will be useful
  in animations.
  
  Much of the work in this class is done in the draw()
  method so that as much information as possible is available
  about the plot.  In subsequent draw() calls, recalculation
  is limited to things that might have changed, so there
  should be no performance penalty from putting the calculations
  in the draw() method.
class_docstr_tok: ["Specialized","PolyCollection","for","arrows",".","The","only","API","method","is","set_UVC","(",")",",","which","can","be","used","to","change","the","size",",","orientation",",","and","color","of","the","arrows",";","their","locations","are","fixed","when","the","class","is","instantiated",".","Possibly","this","method","will","be","useful","in","animations",".","Much","of","the","work","in","this","class","is","done","in","the","draw","(",")","method","so","that","as","much","information","as","possible","is","available","about","the","plot",".","In","subsequent","draw","(",")","calls",",","recalculation","is","limited","to","things","that","might","have","changed",",","so","there","should","be","no","performance","penalty","from","putting","the","calculations","in","the","draw","(",")","method","."]
docstr: The constructor takes one required argument, an Axes
  instance, followed by the args and kwargs described
  by the following pylab interface documentation:
  %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",":","%","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:
      %s
      """
      self.ax = ax
      X, Y, U, V, C = _parse_args(*args)
      self.X = X
      self.Y = Y
      self.XY = np.hstack((X[:, np.newaxis], Y[:, np.newaxis]))
      self.N = len(X)
      self.scale = kw.pop("scale", None)
      self.headwidth = kw.pop("headwidth", 3)
      self.headlength = float(kw.pop("headlength", 5))
      self.headaxislength = kw.pop("headaxislength", 4.5)
      self.minshaft = kw.pop("minshaft", 1)
      self.minlength = kw.pop("minlength", 1)
      self.units = kw.pop("units", "width")
      self.scale_units = kw.pop("scale_units", None)
      self.angles = kw.pop("angles", "uv")
      self.width = kw.pop("width", None)
      self.color = kw.pop("color", "k")
  
      pivot = kw.pop("pivot", "tail").lower()
      # validate pivot
      if pivot not in self._PIVOT_VALS:
          raise ValueError(
              "pivot must be one of {keys}, you passed {inp}".format(
                  keys=self._PIVOT_VALS, inp=pivot
              )
          )
      # normalize to 'middle'
      if pivot == "mid":
          pivot = "middle"
      self.pivot = pivot
  
      self.transform = kw.pop("transform", ax.transData)
      kw.setdefault("facecolors", self.color)
      kw.setdefault("linewidths", (0,))
      mcollections.PolyCollection.__init__(
          self,
          [],
          offsets=self.XY,
          transOffset=self.transform,
          closed=False,
          **kw,
      )
      self.polykw = kw
      self.set_UVC(U, V, C)
      self._initialized = False
  
      self.keyvec = None
      self.keytext = None
  
      # try to prevent closure over the real self
      weak_self = weakref.ref(self)
  
      def on_dpi_change(fig):
          self_weakref = weak_self()
          if self_weakref is not None:
              self_weakref._new_UV = (
                  True  # vertices depend on width, span
              )
              # which in turn depend on dpi
              self_weakref._initialized = (
                  False  # simple brute force update
              )
              # works because _init is
              # called at the start of
              # draw.
  
      self._cid = self.ax.figure.callbacks.connect(
          "dpi_changed", on_dpi_change
      )
  
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 Quiver object from inherited base classes: mcollections with example: obj = Quiver(ax)