天下学问,惟夜航船中最难对付。

matplotlib中矢量场quiver详解

以下内容参考自官方文档

介绍

matplotlib.pyplot.quiver([X, Y], U, V, [C], **kw)
是一个用于绘制矢量场的函数,场内矢量使用箭头表示,箭头属性通过参数改变。

箭头参数图示

函数参数

X,Y

1D或2D array,箭头的位置坐标。

U,V

1D或2D array,箭头的大小分别在x,y方向的分量。

C

1D或2D array,可以使箭头按照此数组中对应的值填色。

units

{'width', 'height', 'dots', 'inches', 'x', 'y' 'xy'}, default: 'width'

设置衡量箭头大小的单位,箭头的大小将乘上这些单位:

  • 'width','height':axis的宽度和高度
  • 'dots','inches':基于figure dpi的像素或英寸
  • 'x','y','xy':数据的 X,Y或 $\sqrt{X^2+Y^2}$ 单位

箭头的大小基于单位(units),例如使用 'x' 或 'y' ,则当放大时,箭头也会放大;而使用 'width '或 'height' 则不会。

angles

{'uv', 'xy'} or array-like, default: 'uv'

箭头指向角度计算方法:

  • 'uv',以U,V来确定箭头指向,U和V分别为x,y方向上箭头大小的分量
  • 'x,y',从 (x,y) 指向 (x+u,y+v)

scale

float

每个箭头长度的数据单位倍数。例如 x m/s每单位宽度,数值越小,箭头越长。

scale_units

float

{'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'}, optional

scale的单位,假定scale=2,(u, v) = (1, 0),有:

  • 使用 'inches',箭头长 0.5 inches
  • 使用 'width' 或 'height',箭头长度为axes的宽/高的一半
  • 使用 'x' ,则箭头长 0.5 坐标单位

在 x-y 平面中,若u、v单位与x、y相同,可使用 angles='xy',scale=1,scale_units='xy' ,绘制正型箭头。

width

float

箭头单位的箭杆宽度,依靠units,例如 units='width',width = 0.005 则箭头宽度为plot宽度的0.005倍。

headwidth

float,默认为3

箭头头部宽度:箭杆宽度的倍数。

headlength

float,默认为5

箭头头部长度:箭杆宽度的倍数(箭头顶部到回折处长度)。

headaxislength

float,默认为4.5

箭头顶部到箭头与箭杆相接处长度:箭杆宽度的倍数。

minshaft

float,默认为1

箭头头部以下的箭杆长度,是箭头长度 (headlength) 的倍数。(小于1会很奇怪)

minlength

float,默认为1

以箭杆宽度倍数为基准的最小长度,若箭头长度小于此长度,则显示为点。

pivot

{'tail', 'mid', 'middle', 'tip'}, default: 'tail'

箭头的中心点位置。

添加新评论