matplotlib.pyplot.quiver
- matplotlib.pyplot.quiver(*args, data=None, **kwargs)[source]
-
Построение 2D поля стрелок.
Вызов:
quiver([X, Y], U, V, [C], **kwargs)
X, Y определяют расположение стрелок, U, V — направления стрелок, а C (необязательно) — цвет.
Длина стрелки
По умолчанию длина стрелок масштабируется автоматически для удобного отображения. Чтобы изменить это поведение, см. параметры scale и scale_units.
Форма стрелки
Форма стрелки определяется параметрами width, headwidth, headlength и headaxislength. См. примечания ниже.
Стиль стрелки
Каждая стрелка внутренне представлена заполненным многоугольником с линией обводки по умолчанию 0. В результате стрелка — это заполненная область, а не линия с головкой, и свойства
PolyCollection, такие как linewidth, edgecolor, facecolor и т. д., действуют соответствующим образом.- Параметры:
-
- X, Y1D или 2D массив-подобный объект, необязательно
-
Координаты x и y расположения стрелок.
Если не указаны, они будут сгенерированы как равномерная сетка целочисленных значений на основе размеров U и V.
Если X и Y одномерны, а U, V — двумерны, X и Y расширяются до двумерных с помощью
X, Y = np.meshgrid(X, Y). В этом случаеlen(X)иlen(Y)должны соответствовать размерностям столбцов и строк U и V. - U, V1D или 2D массив-подобный объект
-
Компоненты x и y векторов направления стрелок. Интерпретация этих компонент (в пространстве данных или в пространстве экрана) зависит от параметра angles.
U и V должны иметь одинаковое количество элементов, соответствующее количеству расположений стрелок в X, Y. U и V могут быть замаскированы. Расположения, замаскированные в любом из U, V и C, не будут нарисованы.
- C1D или 2D массив-подобный объект, необязательно
-
Числовые данные, определяющие цвета стрелок с помощью цветовой карты norm и cmap.
Не поддерживает явное указание цветов. Если вы хотите задать цвета непосредственно, используйте color вместо этого. Размер C должен соответствовать количеству расположений стрелок.
- angles{'uv', 'xy'} или массив-подобный объект, по умолчанию: 'uv'
-
Способ определения угла стрелок.
-
'uv': Направление стрелки в координатах экрана. Используйте это, если стрелки обозначают величину, не основанную на координатах данных X, Y.
Если U == V, ориентация стрелки на графике составляет 45 градусов против часовой стрелки от горизонтальной оси (положительное направление вправо).
- 'xy': Направление стрелки в координатах данных, т. е. стрелка направлена от (x, y) к (x+u, y+v). Используйте это, например, для построения поля градиента.
-
Произвольные углы могут быть явно заданы как массив значений в градусах против часовой стрелки от горизонтальной оси.
В этом случае U, V используются только для определения длины стрелок.
Примечание: инвертирование оси данных будет соответственно инвертировать стрелки только с
angles='xy'. -
- pivot{'tail', 'mid', 'middle', 'tip'}, по умолчанию: 'tail'
-
Часть стрелки, прикрепленная к сетке X, Y. Стрелка вращается вокруг этой точки.
'mid' — синоним для 'middle'.
- scaleчисло, необязательно
-
Масштабирует длину стрелки обратно пропорционально.
Количество единиц данных на единицу длины стрелки, например, м/с на ширину графика; меньший параметр масштаба делает стрелку длиннее. По умолчанию — 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. - units{'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'}, по умолчанию: 'width'
-
Влияет на размер стрелки (кроме длины). В частности, ширина стрелы измеряется в кратных единицах.
Поддерживаемые значения:
- 'width', 'height': Ширина или высота осей.
- 'dots', 'inches': Пиксели или дюймы, основанные на dpi фигуры.
- 'x', 'y', 'xy': X, Y или \(\sqrt{X^2 + Y^2}\) в единицах данных.
В следующей таблице подытожено, как эти значения влияют на видимый размер стрелки при масштабировании и изменении размера фигуры:
units
масштабирование
изменение размера фигуры
'x', 'y', 'xy'
размер стрелки масштабируется
—
'width', 'height'
—
размер стрелки масштабируется
'dots', 'inches'
—
—
- widthчисло, необязательно
-
Ширина ствола стрелки в единицах стрелки. Все параметры головки относятся к width.
Значение по умолчанию зависит от выбора units выше и количества векторов; типичное начальное значение составляет примерно 0,005 от ширины графика.
- headwidthчисло, по умолчанию: 3
-
Ширина головки в кратных значениях ширины ствола. См. примечания ниже.
- headlengthчисло, по умолчанию: 5
-
Длина головки в кратных значениях ширины ствола. См. примечания ниже.
- headaxislengthчисло, по умолчанию: 4.5
-
Длина головки на пересечении со стволом в кратных значениях ширины ствола. См. примечания ниже.
- minshaftчисло, по умолчанию: 1
-
Длина, ниже которой стрелка масштабируется, в единицах длины головки. Не устанавливайте это значение меньше 1, иначе маленькие стрелки будут выглядеть ужасно!
- minlengthчисло, по умолчанию: 1
-
Минимальная длина как кратное ширины ствола; если длина стрелки меньше этого значения, вместо неё будет нарисован кружок (шестиугольник) этого диаметра.
- colorцвет или последовательность цветов, необязательно
-
Явные цвета для стрелок. Если C задан, color не влияет.
Это синоним параметра
PolyCollectionfacecolor.
- Возвращаемые значения:
-
Quiver
- Другие параметры:
-
- dataиндексируемый объект, необязательно
-
Если задан, все параметры также принимают строку
s, которая интерпретируется какdata[s](если это не вызывает исключения). -
**kwargs
PolyCollectionсвойства, необязательно -
Все остальные ключевые параметры передаются в
PolyCollection:
Свойство
Описание
функция фильтра, которая принимает массив чисел с плавающей точкой (m, n, 3) и значение dpi, и возвращает массив (m, n, 3) и два смещения от нижнего левого угла изображения
массивоподобный объект, скаляр или None
bool
antialiasedили aa или antialiasedsbool или список bool
массивоподобный объект или None
CapStyleили {'butt', 'projecting', 'round'}(vmin: float, vmax: float)
BboxBaseили Nonebool
Объект Patch или (Path, Transform) или None
Colormapили строка или Noneцвет или список кортежей RGBA
edgecolorили ec или edgecolorsцвет или список цветов или 'face'
facecolorили facecolors или fcцвет или список цветов
строка
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
bool
JoinStyleили {'miter', 'round', 'bevel'}объект
linestyleили dashes или linestyles или lsстрока или кортеж или список
linewidthили linewidths или lwчисло с плавающей точкой или список чисел с плавающей точкой
bool
Normalizeили строка или Noneoffset_transformили transOffset(N, 2) или (2,) массивоподобный объект
список
AbstractPathEffectсписок массивоподобных объектов
None или bool или число с плавающей точкой или вызываемая функция
число с плавающей точкой
bool
sizesnumpy.ndarrayили None(scale: float, length: float, randomness: float)
bool или None
строка
список строк или None
список массивоподобных объектов
неизвестно
bool
float
См. также
Axes.quiverkey-
Добавление ключа к диаграмме стрелок.
Примечания
Форма стрелки
Стрелка рисуется как многоугольник, используя узлы, как показано ниже. Значения headwidth, headlength и headaxislength задаются в единицах width.
По умолчанию стрелка имеет слегка скошенную форму. Ниже приведены рекомендации по созданию других форм:
- Чтобы сделать головку треугольной, установите headaxislength равным headlength.
- Чтобы сделать стрелку более заострённой, уменьшите headwidth или увеличьте headlength и headaxislength.
- Чтобы сделать головку меньше по отношению к стволу, пропорционально уменьшите все параметры головки.
- Чтобы полностью удалить головку, установите все параметры head в 0.
- Чтобы получить ромбовидную головку, сделайте headaxislength больше, чем headlength.
- Предупреждение: если headaxislength < (headlength / headwidth), узлы "headaxis" (т. е. узлы, соединяющие головку со стволом) будут выступать за пределы головки в переднем направлении, что сделает головку стрелки неровной.
Примеры использования matplotlib.pyplot.quiver
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.8.4/api/_as_gen/matplotlib.pyplot.quiver.html