matplotlib.axes.Axes.quiver
- Axes.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число, необязательно
-
Масштабирует длину стрелки обратно пропорционально.
Количество единиц данных на единицу длины стрелки, например, м/с на ширину графика; меньшее значение 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': Пиксели или дюймы на основе разрешения фигуры.
- '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:
Свойство
Описание
функция фильтра, которая принимает массив float (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: число с плавающей точкой, length: число с плавающей точкой, randomness: число с плавающей точкой)
bool или None
строка
список строк или None
список массивоподобных объектов
неизвестно
bool
вещественное число
См. также
Axes.quiverkey-
Добавить ключ к диаграмме векторов.
Примечания
Форма стрелки
Стрелка рисуется как многоугольник с использованием узлов, как показано ниже. Значения headwidth, headlength и headaxislength указаны в единицах width.
По умолчанию стрелка имеет слегка скошенную форму. Вот несколько рекомендаций, как получить другие формы головки:
- Чтобы сделать головку треугольной, установите headaxislength равным headlength.
- Чтобы сделать стрелку более острой, уменьшите headwidth или увеличьте headlength и headaxislength.
- Чтобы сделать головку меньше по отношению к хвосту, пропорционально уменьшите все параметры головки.
- Чтобы полностью удалить головку, установите все параметры head в 0.
- Чтобы получить ромбовидную головку, сделайте headaxislength больше, чем headlength.
- Предупреждение: При headaxislength < (headlength / headwidth) узлы "headaxis" (т.е. те, которые соединяют головку с хвостом) будут выступать за головку в направлении вперед, так что головка стрелки будет выглядеть прерванной.
Примеры использования matplotlib.axes.Axes.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.axes.Axes.quiver.html