matplotlib.pyplot.quiver#

matplotlib.pyplot.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。因此,箭头更像是一个填充区域,而不是带有箭头的线条,并且 PolyCollection 属性如 linewidthedgecolorfacecolor 等会相应地起作用。

参数:
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}\) 在数据单位中。

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

单位

缩放

图尺寸调整

'x', 'y', 'xy'

箭头大小缩放

'宽度', '高度'

箭头大小缩放

'点', '英寸'

宽度浮点数,可选

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

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

headwidth浮点数,默认值: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

布尔值或布尔值列表

数组

类似数组或 None

capstyle

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

clim

(vmin: float, vmax: float)

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 或 None

verts

数组类列表

verts_and_codes

未知

可见

布尔

zorder

浮动

参见

Axes.quiverkey

向箭袋图添加一个键。

注释

备注

这是 axes.Axes.quiverpyplot 封装

箭头形状

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

../../_images/quiver_sizes.svg

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

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

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

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

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

  • 要获得钻石形状的头部,使 headaxislength 大于 headlength

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

使用 matplotlib.pyplot.quiver 的示例#

高级箭袋和箭袋键功能

Advanced quiver and quiverkey functions

Quiver 简单演示

Quiver Simple Demo

Trigradient 演示

Trigradient Demo