matplotlib.quiver.Quiver#

class matplotlib.quiver.Quiver(ax, *args, scale=None, headwidth=3, headlength=5, headaxislength=4.5, minshaft=1, minlength=1, units='width', scale_units=None, angles='uv', width=None, color='k', pivot='tail', **kwargs)[源代码][源代码]#

基类:PolyCollection

用于箭头的专用 PolyCollection。

唯一的API方法是set_UVC(),它可以用来改变箭头的大小、方向和颜色;它们的定位在类实例化时是固定的。可能这个方法在动画中会很有用。

这个类中的大部分工作都在 draw() 方法中完成,以便尽可能多地获取关于图的信息。在后续的 draw() 调用中,重新计算仅限于可能发生变化的内容,因此将计算放在 draw() 方法中不会带来性能上的损失。

构造函数接受一个必需的参数,一个 Axes 实例,随后是以下 pyplot 接口文档中描述的 args 和 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 是一维的,但 UV 是二维的,XY 将使用 X, Y = np.meshgrid(X, Y) 扩展为二维。在这种情况下,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

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

headlength浮点数,默认值:5

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

headaxislengthfloat, 默认值: 4.5

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

minshaftfloat, 默认值: 1

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

最小长度float, 默认值: 1

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

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

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

这是 PolyCollection facecolor 参数的同义词。

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

DATA_PARAMETER_PLACEHOLDER

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

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

属性

描述

agg_filter

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

alpha

类似数组或标量或无

animated

布尔

抗锯齿 或 aa 或 antialiaseds

布尔值或布尔值列表

数组

类数组或无

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 列表

路径

数组类列表

选择器

None 或 bool 或 float 或 callable

pickradius

float

光栅化

布尔

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

float

参见

Axes.quiverkey

向箭袋图添加一个键。

注释

箭头形状

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

../../_images/quiver_sizes.svg

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

  • 要将箭头变为三角形,请使 headaxislengthheadlength 相同。

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

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

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

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

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

draw(renderer)[源代码][源代码]#

使用给定的渲染器绘制艺术家(及其子项)。

如果艺术家不可见(Artist.get_visible 返回 False),则此操作无效。

参数:
渲染器 : RendererBase 子类。RendererBase 子类。

注释

此方法在 Artist 子类中被重写。

get_datalim(transData)[源代码][源代码]#
set(*, UVC=<UNSET>, agg_filter=<UNSET>, alpha=<UNSET>, animated=<UNSET>, antialiased=<UNSET>, array=<UNSET>, capstyle=<UNSET>, clim=<UNSET>, clip_box=<UNSET>, clip_on=<UNSET>, clip_path=<UNSET>, cmap=<UNSET>, color=<UNSET>, edgecolor=<UNSET>, facecolor=<UNSET>, gid=<UNSET>, hatch=<UNSET>, in_layout=<UNSET>, joinstyle=<UNSET>, label=<UNSET>, linestyle=<UNSET>, linewidth=<UNSET>, mouseover=<UNSET>, norm=<UNSET>, offset_transform=<UNSET>, offsets=<UNSET>, path_effects=<UNSET>, paths=<UNSET>, picker=<UNSET>, pickradius=<UNSET>, rasterized=<UNSET>, sizes=<UNSET>, sketch_params=<UNSET>, snap=<UNSET>, transform=<UNSET>, url=<UNSET>, urls=<UNSET>, verts=<UNSET>, verts_and_codes=<UNSET>, visible=<UNSET>, zorder=<UNSET>)[源代码]#

一次性设置多个属性。

支持的属性有

属性

描述

UVC

未知

agg_filter

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

alpha

类似数组或标量或无

animated

布尔

抗锯齿 或 aa 或 antialiaseds

布尔值或布尔值列表

数组

类数组或无

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 列表

路径

数组类列表

选择器

None 或 bool 或 float 或 callable

pickradius

float

光栅化

布尔

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

float

set_UVC(U, V, C=None)[源代码][源代码]#

使用 matplotlib.quiver.Quiver 的示例#

高级箭袋和箭袋键功能

Advanced quiver and quiverkey functions

Quiver 简单演示

Quiver Simple Demo