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, 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': Направление стрелки в координатах экрана. Используйте это, если стрелки символизируют величину, не зависящую от координат данных 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число, необязательно
-
Масштабирует длину стрелки обратно пропорционально.
Количество единиц данных на единицу длины стрелки, например, м/с на ширину графика; меньший параметр 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 измеряется в кратных единицах.
Поддерживаемые значения:
- '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
-
Ширина головки как кратное ширине стержня width. Подробности см. в примечаниях ниже.
- headlengthчисло, по умолчанию: 5
-
Длина головки как кратное ширине стержня width. Подробности см. в примечаниях ниже.
- headaxislengthчисло, по умолчанию: 4.5
-
Длина головки на пересечении со стержнем как кратное ширине стержня width. Подробности см. в примечаниях ниже.
- 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)
bool
Объект 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,) массивоподобный объект
список массивоподобных объектов
None или bool или число с плавающей точкой или вызываемая функция
неизвестно
bool
sizesмассив NumPy или None
(scale: float, length: float, randomness: float)
bool или None
строка
список строк или None
список массивоподобных объектов
неизвестно
bool
число с плавающей точкой
-
См. также
Axes.quiverkey-
Добавить ключ к графику векторов.
Примечания
Форма стрелки
Стрелка рисуется как многоугольник с использованием узлов, как показано ниже. Значения headwidth, headlength и headaxislength указаны в единицах width.
По умолчанию стрелка немного наклонена назад. Ниже приведены рекомендации по созданию других форм головки:
- Чтобы сделать головку треугольной, сделайте headaxislength равным headlength.
- Чтобы сделать стрелку более заостренной, уменьшите headwidth или увеличьте headlength и headaxislength.
- Чтобы сделать головку меньше относительно хвоста, пропорционально уменьшите все параметры головки.
- Чтобы полностью удалить головку, установите все параметры head в 0.
- Чтобы получить ромбовидную головку, сделайте headaxislength больше, чем headlength.
- Предупреждение: для headaxislength < (headlength / headwidth) узлы «headaxis» (т. е. те, которые соединяют головку с хвостом) будут выступать за пределы головки в направлении вперед, так что головка стрелки будет выглядеть прерванной.
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.6.0/api/_as_gen/matplotlib.pyplot.quiver.html