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 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'.
- 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': Пиксели или дюймы, основанные на 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:
Свойство
Описание
функция фильтра, которая принимает массив 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 или edgecolorsfacecolorили 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-
Добавить ключ к диаграмме векторов.
Примечания
Примечание
Это обёртка pyplot для
axes.Axes.quiver.Форма стрелки
Стрелка рисуется как многоугольник, используя узлы, как показано ниже. Значения 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/stable/api/_as_gen/matplotlib.pyplot.quiver.html