matplotlib.axes.Axes.quiver#

Axes.quiver(*args, data=None, **kwargs)[源代码][源代码]#

绘制一个二维箭头场。

调用签名:

quiver([X, Y], U, V, [C], /, **kwargs)

X, Y 定义箭头的位置,U, V 定义箭头的方向,C 可选地设置颜色。参数 X, Y, U, V, C 是仅位置的。

箭头长度

默认设置会自动将箭头的长度缩放到一个合理的尺寸。要改变这种行为,请参见 scalescale_units 参数。

箭头形状

箭头的形状由 widthheadwidthheadlengthheadaxislength 决定。请参见下面的注释。

箭头样式

每个箭头在内部由一个填充的多边形表示,默认的边缘线宽度为0。因此,箭头更像是一个填充区域,而不是带有箭头的线条,并且像 linewidthedgecolorfacecolorPolyCollection 属性会相应地起作用。

参数:
X, Y1D 或 2D 数组类,可选

箭头位置的 x 和 y 坐标。

如果没有给出,它们将根据 UV 的维度生成一个均匀的整数网格。

如果 XY 是 1D 但 UV 是 2D,XY 将使用 X, Y = np.meshgrid(X, Y) 扩展为 2D。在这种情况下,len(X)len(Y) 必须与 UV 的列和行维度匹配。

U, V1D 或 2D 数组类

箭头矢量的x和y方向分量。这些分量的解释(在数据空间或屏幕空间中)取决于 angles

UV 必须具有相同数量的元素,与 XY 中的箭头位置数量相匹配。UV 可以被掩码。在 UVC 中被掩码的位置将不会被绘制。

C1D 或 2D 数组类,可选

通过 normcmap 进行颜色映射定义箭头颜色的数值数据。

这不支持显式颜色。如果你想直接设置颜色,请使用 color 代替。C 的大小必须与箭头位置的数量匹配。

角度{'uv', 'xy'} 或类似数组,默认值:'uv'

确定箭头角度的方法。

  • 'uv': 屏幕坐标中的箭头方向。如果箭头象征的数量不是基于 X, Y 数据坐标,请使用此选项。

    如果 U == V ,图表上箭头的方向是相对于水平轴逆时针45度(向右为正)。

  • 'xy': 数据坐标中的箭头方向,即箭头从 (x, y) 指向 (x+u, y+v)。例如,用于绘制梯度场。

  • 任意角度可以明确指定为一个以度为单位的数组值,逆时针从水平轴开始。

    在这种情况下,UV 仅用于确定箭头的长度。

注意:只有当 angles='xy' 时,反转数据轴才会相应地反转箭头。

枢轴{'tail', 'mid', 'middle', 'tip'}, 默认: 'tail'

箭头固定在 X, Y 网格上的部分。箭头围绕这个点旋转。

'mid' 是 'middle' 的同义词。

比例浮点数, 可选

按相反比例缩放箭头的长度。

每个箭头长度单位的数据单位数量,例如,每绘图宽度的 m/s;较小的比例参数会使箭头更长。默认值为 None

如果为 None ,则使用基于平均向量长度和向量数量的简单自动缩放算法。箭头长度单位由 scale_units 参数给出。

scale_units{'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'}, 可选

如果 scale 关键字参数为 None,则箭头长度单位。默认为 None

例如,scale_units 是 'inches',scale 是 2.0,并且 (u, v) = (1, 0),那么向量的长度将是 0.5 英寸。

如果 scale_units 是 'width' 或 'height',那么向量将是坐标轴宽度/高度的一半。

如果 scale_units 是 'x',那么向量将是 0.5 个 x 轴单位。要在 x-y 平面上绘制向量,且 u 和 v 与 x 和 y 具有相同的单位,请使用 angles='xy', scale_units='xy', scale=1

单位{'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'}, 默认: 'width'

影响箭头大小(长度除外)。特别是,箭杆的 宽度 是以此单位的倍数来测量的。

支持的值为:

  • 'width', 'height': Axes 的宽度或高度。

  • 'dots', 'inches': 基于图形dpi的像素或英寸。

  • 'x', 'y', 'xy': X, Y\(\sqrt{X^2 + Y^2}\) 在数据单位中。

下表总结了这些值在缩放和图形尺寸变化时如何影响可见箭头的大小:

单位

缩放

figure size change

'x', 'y', 'xy'

箭头大小缩放

'宽度', '高度'

箭头大小缩放

'点', '英寸'

宽度浮点数, 可选

箭头单位中的轴宽度。所有头部参数相对于 宽度

默认值取决于上述 单位 的选择和向量的数量;一个典型的起始值大约是绘图宽度的0.005倍。

headwidthfloat, 默认值: 3

头部宽度为轴 宽度 的倍数。请参阅下面的注释。

headlengthfloat, 默认值: 5

头部长度为轴 宽度 的倍数。请参阅下面的注释。

headaxislengthfloat, 默认值: 4.5

轴交点处的头部长度为轴 宽度 的倍数。请参阅下面的注释。

minshaftfloat, 默认值: 1

箭头缩放的长度阈值,以箭头长度为单位。不要将此值设置为小于1,否则小箭头会看起来很糟糕!

最小长度float, 默认值: 1

最小长度为轴宽的倍数;如果箭头长度小于此值,则绘制一个此直径的点(六边形)。

颜色 : color 或列表 color, 可选颜色或列表颜色,可选

箭头的显式颜色。如果已设置 C,则 color 无效。

这是 PolyCollection facecolor 参数的同义词。

返回:
Quiver
其他参数:
数据可索引对象,可选

如果给出,所有参数也接受一个字符串 s,如果 sdata 中的一个键,则解释为 data[s]

**kwargs : PolyCollection 属性,可选PolyCollection 属性,可选

所有其他关键字参数都会传递给 PolyCollection

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 的浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组和两个从图像左下角开始的偏移量

alpha

类数组或标量或无

animated

布尔值

抗锯齿 或 aa 或 antialiaseds

布尔值或布尔值列表

数组

类数组或无

capstyle

CapStyle 或 {'butt', 'projecting', 'round'}

clim

(vmin: 浮点数, vmax: 浮点数)

clip_box

BboxBase 或 None

clip_on

布尔值

clip_path

补丁或(路径,变换)或无

cmap

Colormap 或 str 或 None

颜色

color 或 RGBA 元组列表

edgecolor 或 ec 或 edgecolors

colorcolor 列表 或 'face'

facecolor 或 facecolors 或 fc

colorcolor 列表

figure

FigureSubFigure

gid

str

hatch

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

in_layout

布尔值

joinstyle

JoinStyle 或 {'miter', 'round', 'bevel'}

标签

对象

linestyle 或虚线或线型或 ls

str 或 tuple 或其列表

linewidth 或 linewidths 或 lw

浮点数或浮点数列表

鼠标悬停

布尔值

norm

Normalize 或 str 或 None

offset_transform 或 transOffset

Transform

偏移量

(N, 2) 或 (2,) 数组类

path_effects

AbstractPathEffect 列表

路径

类数组列表

picker

None 或 bool 或 float 或 callable

pickradius

浮动

光栅化

布尔值

sizes

numpy.ndarray 或 None

sketch_params

(scale: float, length: float, randomness: float)

snap

布尔值或无

transform

Transform

url

str

urls

list of str or None

verts

类数组列表

verts_and_codes

未知

可见

布尔值

zorder

浮动

参见

Axes.quiverkey

向箭袋图添加一个键。

注释

箭头形状

箭头是使用如下所示的节点绘制的多边形。值 headwidthheadlengthheadaxislengthwidth 为单位。

../../_images/quiver_sizes.svg

默认设置提供了一个稍微向后倾斜的箭头。以下是一些如何获得其他箭头形状的指南:

  • 要使箭头头部呈三角形,请将 headaxislength 设置为与 headlength 相同。

  • 要使箭头更尖锐,可以减少 headwidth 或增加 headlengthheadaxislength

  • 要使头部相对于轴部变小,按比例缩小所有头部参数。

  • 要完全移除头部,请将所有 head 参数设置为 0。

  • 要获得菱形头部,请使 headaxislength 大于 headlength

  • 警告:对于 headaxislength < (headlength / headwidth),“headaxis”节点(即连接头部和箭杆的节点)将向前突出头部,使得箭头头部看起来像是断裂的。

使用 matplotlib.axes.Axes.quiver 的示例#

高级箭袋和箭袋键功能

Advanced quiver and quiverkey functions

Quiver 简单演示

Quiver Simple Demo

Trigradient 演示

Trigradient Demo

3D 箭袋图

3D quiver plot

quiver(X, Y, U, V)

quiver(X, Y, U, V)

quiver(X, Y, Z, U, V, W)

quiver(X, Y, Z, U, V, W)