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)[source]#
- 基类: - PolyCollection- 用于箭头的专用 PolyCollection。 - 唯一的 API 方法是 set_UVC(),可用于更改箭头的大小、方向和颜色;它们的位置在实例化类时已固定。此方法可能在动画中很有用。 - 该类的大部分工作在 draw() 方法中完成,以便尽可能多地获取有关绘图的信息。在后续的 draw() 调用中,重新计算仅限于可能已更改的部分,因此将计算放在 draw() 方法中不会带来性能损失。 - 构造函数接受一个必需参数(一个 Axes 实例),随后是以下 pyplot 接口文档中描述的 args 和 kwargs。 - 绘制 2D 箭头场。 - 调用签名 - quiver([X, Y], U, V, [C], /, **kwargs) - X, Y 定义箭头的起始位置,U, V 定义箭头的方向,C 可选地设置颜色。参数 X, Y, U, V, C 仅支持位置参数。 - 箭头长度 - 默认设置会自动将箭头的长度缩放到合理的大小。要更改此行为,请参阅 scale 和 scale_units 参数。 - 箭头形状 - 箭头的形状由 width, headwidth, headlength 和 headaxislength 决定。请参阅下面的注意事项。 - 箭头样式 - 每个箭头在内部都由一个填充多边形表示,默认边缘线宽为 0。因此,箭头更像是一个填充区域,而不是带箭头的线条,并且 - PolyCollection的属性如 linewidth、edgecolor、facecolor 等也会相应地起作用。- 参数:
- X, Y一维或二维类数组,可选
- 箭头位置的 x 和 y 坐标。 - 如果未给出,将根据 U 和 V 的维度生成一个均匀的整数网格。 - 如果 X 和 Y 是一维的,而 U、V 是二维的,则 X、Y 会使用 - X, Y = np.meshgrid(X, Y)扩展为二维。在这种情况下,- len(X)和- len(Y)必须与 U 和 V 的列和行维度匹配。
- U, V一维或二维类数组
- 箭头矢量的 x 和 y 方向分量。这些分量(在数据坐标系中或屏幕坐标系中)的解释取决于 angles。 - U 和 V 必须具有相同数量的元素,与 X, Y 中箭头位置的数量匹配。U 和 V 可以被掩码。在 U, V 和 C 中任何被掩码的位置都不会被绘制。 
- C一维或二维类数组,可选
- 通过 norm 和 cmap 进行颜色映射来定义箭头颜色的数值数据。 - 这不支持显式颜色。如果要直接设置颜色,请使用 color。C 的大小必须与箭头位置的数量匹配。 
- angles{'uv', 'xy'} 或 类数组,默认值: 'uv'
- 确定箭头角度的方法。 - 'uv':箭头方向基于显示坐标;即,45° 角将始终在屏幕上显示为对角线,无论图形或坐标轴的纵横比或坐标轴数据范围如何。当箭头表示其方向不与 x 和 y 数据坐标绑定的量时,此参数很有用。 - 如果 U == V,则图上箭头的方向为从水平轴(向右为正)逆时针旋转 45 度。 
- 'xy':数据坐标系中的箭头方向,即箭头从 (x, y) 指向 (x+u, y+v)。这对于矢量场或梯度图是理想的选择,其中箭头应直接表示 x 和 y 方向的运动或梯度。 
- 任意角度可以显式指定为度数值数组,从水平轴逆时针方向计算。 - 在这种情况下,U, V 仅用于确定箭头的长度。 - 例如, - angles=[30, 60, 90]将分别以 30、60 和 90 度角定向箭头,而与 U 和 V 分量无关。
 - 注意:反转数据轴只会在使用 - angles='xy'时相应地反转箭头。
- pivot{'tail', 'mid', 'middle', 'tip'},默认值: 'tail'
- 箭头的哪个部分锚定到 X, Y 网格。箭头围绕此点旋转。 - 'mid' 是 'middle' 的同义词。 
- scale浮点型,可选
- 反向缩放箭头长度。 - 绘图上每单位箭头长度所代表的数据值数量。例如,如果数据表示速度(米/秒),则 scale 参数决定了每秒多少米对应于相对于绘图宽度的每单位箭头长度。较小的 scale 参数使箭头更长。 - 默认情况下,使用自动缩放算法将箭头长度缩放到合理的大小,该算法基于平均矢量长度和矢量数量。 - 箭头长度单位由 scale_units 参数给出。 
- scale_units{'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'},默认值: 'width'
- 物理图像单位,用于渲染缩放后的箭头数据 U, V。 - 渲染后的箭头长度由以下公式给出: - x 方向长度 = $frac{u}{mathrm{scale}} mathrm{scale_unit}$ - y 方向长度 = $frac{v}{mathrm{scale}} mathrm{scale_unit}$ - 例如, - (u, v) = (0.5, 0)和- scale=10, scale_unit="width"将生成一个水平箭头,其长度为 0.5 / 10 * "width",即坐标轴宽度的 0.05 倍。- 支持的值有: - 'width' 或 'height':箭头长度相对于坐标轴的宽度或高度进行缩放。
- 例如, - scale_units='width', scale=1.0将导致箭头长度等于坐标轴的宽度。
 
- 'dots':箭头的长度以显示点(像素)为单位测量。 
- 'inches':箭头长度根据图形的 DPI(每英寸点数)进行缩放。
- 这确保了箭头在图中具有一致的物理尺寸(以英寸为单位),无论数据值或绘图缩放如何。例如, - (u, v) = (1, 0)和- scale_units='inches', scale=2将生成一个 0.5 英寸长的箭头。
 
- 'x' 或 'y':箭头长度相对于 x 或 y 轴单位进行缩放。
- 例如, - (u, v) = (0, 1)和- scale_units='x', scale=1将生成一个垂直箭头,其长度为 1 个 x 轴单位。
 
- 'xy':箭头长度将与 'x' 或 'y' 单位相同。
- 这对于在 x-y 平面中创建向量非常有用,其中 u 和 v 具有与 x 和 y 相同的单位。要在 x-y 平面中绘制 u 和 v 与 x 和 y 具有相同单位的向量,请使用 - angles='xy', scale_units='xy', scale=1。
 
 - 注意:在不设置 scale 的情况下设置 scale_units 没有效果,因为缩放单位仅相差一个常数因子,并且会通过自动缩放进行重新缩放。 
- units{'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'},默认值: 'width'
- 影响箭头大小(除了长度)。特别是,轴的 width 以该单位的倍数测量。 - 支持的值有: - 'width'、'height':坐标轴的宽度或高度。 
- 'dots'、'inches':基于图形 DPI 的像素或英寸。 
- 'x'、'y'、'xy':数据单位中的 X、Y 或 \(\sqrt{X^2 + Y^2}\)。 
 - 下表总结了这些值在缩放和图形大小更改时如何影响可见箭头的大小: - 单位 - 缩放 - 图形大小变化 - 'x', 'y', 'xy' - 箭头大小缩放 - — - 'width', 'height' - — - 箭头大小缩放 - 'dots', 'inches' - — - — 
- width浮点数,可选
- 箭头轴的宽度,以箭头单位表示。所有箭头头部参数都相对于 width。 - 默认值取决于上面 units 的选择和矢量数量;一个典型的起始值大约是绘图宽度的 0.005 倍。 
- headwidth浮点数,默认值: 3
- 头部宽度是轴 width 的倍数。请参阅下面的注意事项。 
- headlength浮点数,默认值: 5
- 头部长度是轴 width 的倍数。请参阅下面的注意事项。 
- headaxislength浮点数,默认值: 4.5
- 轴交点处的头部长度是轴 width 的倍数。请参阅下面的注意事项。 
- minshaft浮点数,默认值: 1
- 箭头缩放的最小长度,以头部长度为单位。不要将其设置为小于 1,否则小箭头会看起来很糟糕! 
- minlength浮点数,默认值: 1
- 最小长度是轴宽度的倍数;如果箭头长度小于此值,则改为绘制一个直径为该值的点(六边形)。 
- color颜色或颜色列表,可选
- 箭头的显式颜色。如果 C 已设置,则 color 无效。 - 这是 - PolyCollection的 facecolor 参数的同义词。
 
- 返回:
- 其他参数:
- data可索引对象,可选
- DATA_PARAMETER_PLACEHOLDER 
- **kwargsPolyCollection属性,可选
- 所有其他关键字参数都传递给 - PolyCollection- 属性 - 描述 - 一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量 - 类数组或浮点数或 None - 布尔值 - 布尔值或布尔值列表 - 类数组或 None - CapStyle或 {'butt', 'projecting', 'round'}- (vmin: 浮点数, vmax: 浮点数) - BboxBase或 None- 布尔值 - Patch 或 (Path, Transform) 或 None - Colormap或 字符串 或 None- 颜色 或 RGBA 元组列表 - edgecolor或- ec或- edgecolors- facecolor或- facecolors或- fc- str - {'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'} - 未知 - 布尔值 - JoinStyle或 {'miter', 'round', 'bevel'}- object - linestyle或- dashes或- linestyles或- ls- 字符串或元组或其列表 - linewidth或- linewidths或- lw- 浮点数或浮点数列表 - 布尔值 - Normalize或 字符串 或 None- (N, 2) 或 (2,) 类数组 - 类数组列表 - None 或 布尔值 或 浮点数 或 可调用对象 - 浮点数 - 布尔值 - sizes- numpy.ndarray或 None- (scale: 浮点数, length: 浮点数, randomness: 浮点数) - 布尔值或 None - str - urls - 类数组列表 - 未知 - 布尔值 - 浮点数 
 
 - 另请参阅 - Axes.quiverkey
- 为quiver图添加图例。 
 - 备注 - 箭头形状 - 箭头使用如下所示的节点绘制为多边形。headwidth、headlength 和 headaxislength 的值以 width 为单位。 - 默认值会生成一个稍微后掠的箭头。以下是一些获取其他头部形状的指导: - 要将头部制成三角形,请将 headaxislength 设置为与 headlength 相同。 
- 要使箭头更尖,请减小 headwidth 或增加 headlength 和 headaxislength。 
- 要使头部相对于轴更小,请按比例缩小所有头部参数。 
- 要完全移除头部,请将所有 head 参数设置为 0。 
- 要获得菱形头部,请将 headaxislength 设置为大于 headlength。 
- 警告:对于 headaxislength < (headlength / headwidth) 的情况,“headaxis”节点(即连接头部与轴的节点)将向前突出头部,从而使箭头头部看起来损坏。 
 - draw(renderer)[source]#
- 使用给定的渲染器绘制 Artist(及其子对象)。 - 如果 artist 不可见( - Artist.get_visible返回 False),此操作无效。- 参数:
- rendererRendererBase子类。
 
- renderer
 - 备注 - 此方法在 Artist 子类中被覆盖。 
 - 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>, hatch_linewidth=<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>)[source]#
- 一次性设置多个属性。 - 支持的属性包括: - 属性 - 描述 - 未知 - 一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量 - 类数组或浮点数或 None - 布尔值 - 布尔值或布尔值列表 - 类数组或 None - CapStyle或 {'butt', 'projecting', 'round'}- (vmin: 浮点数, vmax: 浮点数) - BboxBase或 None- 布尔值 - Patch 或 (Path, Transform) 或 None - Colormap或 字符串 或 None- 颜色 或 RGBA 元组列表 - edgecolor或- ec或- edgecolors- facecolor或- facecolors或- fc- str - {'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'} - 未知 - 布尔值 - JoinStyle或 {'miter', 'round', 'bevel'}- object - linestyle或- dashes或- linestyles或- ls- 字符串或元组或其列表 - linewidth或- linewidths或- lw- 浮点数或浮点数列表 - 布尔值 - Normalize或 字符串 或 None- (N, 2) 或 (2,) 类数组 - 类数组列表 - None 或 布尔值 或 浮点数 或 可调用对象 - 浮点数 - 布尔值 - sizes- numpy.ndarray或 None- (scale: 浮点数, length: 浮点数, randomness: 浮点数) - 布尔值或 None - str - urls - 类数组列表 - 未知 - 布尔值 - 浮点数 
 
 
