er of data units per arrow length unit, e.g., m/s per plot width; a smaller scale parameter makes the arrow longer. Default is *None*. If *None*, a simple autoscaling algorithm is used, based on the average vector length and the number of vectors. The arrow length unit is given by the *scale_units* parameter. scale_units : {'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'}, optional If the *scale* kwarg is *None*, the arrow length unit. Default is *None*. e.g. *scale_units* is 'inches', *scale* is 2.0, and ``(u, v) = (1, 0)``, then the vector will be 0.5 inches long. If *scale_units* is 'width' or 'height', then the vector will be half the width/height of the axes. If *scale_units* is 'x' then the vector will be 0.5 x-axis units. To plot vectors in the x-y plane, with u and v having the same units as x and y, use ``angles='xy', scale_units='xy', scale=1``. units : {'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'}, default: 'width' Affects the arrow size (except for the length). In particular, the shaft *width* is measured in multiples of this unit. Supported values are: - 'width', 'height': The width or height of the Axes. - 'dots', 'inches': Pixels or inches based on the figure dpi. - 'x', 'y', 'xy': *X*, *Y* or :math:`\sqrt{X^2 + Y^2}` in data units. The following table summarizes how these values affect the visible arrow size under zooming and figure size changes: ================= ================= ================== units zoom figure size change ================= ================= ================== 'x', 'y', 'xy' arrow size scales — 'width', 'height' — arrow size scales 'dots', 'inches' — — ================= ================= ================== width : float, optional Shaft width in arrow units. All head parameters are relative to *width*. The default depends on choice of *units* above, and number of vectors; a typical starting value is about 0.005 times the width of the plot. headwidth : float, default: 3 Head width as multiple of shaft *width*. See the notes below. headlength : float, default: 5 Head length as multiple of shaft *width*. See the notes below. headaxislength : float, default: 4.5 Head length at shaft intersection as multiple of shaft *width*. See the notes below. minshaft : float, default: 1 Length below which arrow scales, in units of head length. Do not set this to less than 1, or small arrows will look terrible! minlength : float, default: 1 Minimum length as a multiple of shaft width; if an arrow length is less than this, plot a dot (hexagon) of this diameter instead. color : color or color sequence, optional Explicit color(s) for the arrows. If *C* has been set, *color* has no effect. This is a synonym for the `.PolyCollection` *facecolor* parameter. Other Parameters ---------------- data : indexable object, optional DATA_PARAMETER_PLACEHOLDER **kwargs : `~matplotlib.collections.PolyCollection` properties, optional All other keyword arguments are passed on to `.PolyCollection`: %(PolyCollection:kwdoc)s Returns ------- `~matplotlib.quiver.Quiver` See Also -------- .Axes.quiverkey : Add a key to a quiver plot. Notes ----- **Arrow shape** The arrow is drawn as a polygon using the nodes as shown below. The values *headwidth*, *headlength*, and *headaxislength* are in units of *width*. .. image:: /_static/quiver_sizes.svg :width: 500px The defaults give a slightly swept-back arrow. Here are some guidelines how to get other head shapes: - To make the head a triangle, make *headaxislength* the same as *headlength*. - To make the arrow more pointed, reduce *headwidth* or increase *headlength* and *headaxislength*. - To make the head smaller relative to the shaft, scale down all the head parameters proportionally. - To remove the head completely, set all *head* parameters to 0. - To get a diamond-shaped head, make *headaxislength* larger than *headlength*. - Warning: For *headaxislength* < (*headlength* / *headwidth*), the "headaxis" nodes (i.e. the ones connecting the head with the shaft) will protrude out of the head in forward direction so that the arrow head looks broken. )