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 являются 1D, а U, V — 2D, X и Y расширяются до 2D с помощью
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'.
- scalefloat, необязательно
-
Масштабирует длину стрелки обратно.
Количество единиц данных на единицу длины стрелки, например, м/с на ширину графика; меньшее значение масштаба делает стрелку длиннее. По умолчанию — 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'
—
—
- widthfloat, необязательно
-
Ширина ствола стрелки в единицах стрелки. Все параметры головки относятся к width.
Значение по умолчанию зависит от выбора units выше и количества векторов; типичное начальное значение составляет примерно 0,005 ширины графика.
- headwidthfloat, по умолчанию: 3
-
Ширина головки в кратных значениях width. См. примечания ниже.
- headlengthfloat, по умолчанию: 5
-
Длина головки в кратных значениях width. См. примечания ниже.
- headaxislengthfloat, по умолчанию: 4.5
-
Длина головки на пересечении со стволом в кратных значениях width. См. примечания ниже.
- minshaftfloat, по умолчанию: 1
-
Длина, ниже которой стрелка масштабируется, в единицах длины головки. Не устанавливайте это значение меньше 1, иначе маленькие стрелки будут выглядеть ужасно!
- minlengthfloat, по умолчанию: 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 или edgecolorsfacecolorили facecolors или fcстрока
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
bool
JoinStyleили {'miter', 'round', 'bevel'}объект
linestyleили штрихи или linestyles или lsстрока или кортеж или список
linewidthили linewidths или lwвещественное число или список вещественных чисел
bool
Normalizeили строка или Noneoffset_transformили transOffset(N, 2) или (2,) массивоподобный объект
список
AbstractPathEffectсписок массивоподобных объектов
None или bool или float или вызываемая функция
вещественное число
bool
sizesnumpy.ndarrayили None(scale: float, length: float, randomness: float)
bool или None
строка
список строк или None
список массивоподобных объектов
неизвестно
булево значение
число с плавающей точкой
См. также
Axes.quiverkey-
Добавление ключа к диаграмме векторов.
Примечания
Форма стрелки
Стрелка рисуется как многоугольник с использованием узлов, как показано ниже. Значения headwidth, headlength и headaxislength выражены в единицах width.
По умолчанию получается слегка скошенная стрелка. Вот некоторые рекомендации по получению других форм:
- Чтобы сделать головку треугольной, установите headaxislength равным headlength.
- Чтобы сделать стрелку более острой, уменьшите headwidth или увеличьте headlength и headaxislength.
- Чтобы сделать головку меньше относительно хвоста, пропорционально уменьшите все параметры головки.
- Чтобы полностью удалить головку, установите все параметры головки в 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/stable/api/_as_gen/matplotlib.axes.Axes.quiver.html