matplotlib.quiver.Quiver
- classmatplotlib.quiver.Quiver(ax, *args, scale=None, headwidth=3, headlength=5, headaxislength=4.5, minshaft=1, minlength=1, units='width', scale_units=None, angles='uv', width=None, color='k', pivot='tail', **kw)[source]
-
Bases:
matplotlib.collections.PolyCollectionСпециализированное PolyCollection для стрелок.
Единственный API-метод — set_UVC(), который можно использовать для изменения размера, ориентации и цвета стрелок; их расположение фиксируется при создании класса. Возможно, этот метод будет полезен при анимации.
Большая часть работы в этом классе выполняется в методе draw(), чтобы как можно больше информации было доступно о графике. В последующих вызовах draw() перерасчёт ограничивается тем, что могло измениться, поэтому никаких потерь производительности при размещении вычислений в методе draw() не должно быть.
Конструктор принимает один обязательный аргумент, экземпляр Axes, за которым следуют args и kwargs, описанные в документации интерфейса pyplot:
Постройте 2D поле стрелок.
Вызов:
quiver([X, Y], U, V, [C], **kw)
X, Y определяют расположение стрелок, U, V определяют направления стрелок, а C (необязательно) задаёт цвет.
Каждая стрелка внутренне представлена заполненным полигоном с шириной линии обводки по умолчанию 0. В результате стрелка представляет собой заполненную область, а не линию со стрелкой, и свойства
PolyCollection, такие как linewidth, linestyle, facecolor и т.д., действуют соответственно.Размер стрелки
По умолчанию длина стрелок автоматически масштабируется до разумного размера. Чтобы изменить это поведение, см. параметры scale и scale_units.
Форма стрелки
Значения по умолчанию дают слегка загнутую стрелку; чтобы сделать головку треугольной, сделайте headaxislength равным headlength. Чтобы сделать стрелку более острой, уменьшите headwidth или увеличьте headlength и headaxislength. Чтобы сделать головку меньше относительно хвоста, уменьшите все параметры головки. Вероятно, лучше оставить minshaft без изменений.
Обводка стрелки
linewidths и edgecolors можно использовать для настройки обводки стрелок.
- Параметры
-
- 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 направлений векторов стрелок.
Они должны иметь одинаковое количество элементов, соответствующее количеству расположений стрелок. U и V могут быть замаскированы. Будут нарисованы только те расположения, которые не замаскированы в U, V и C.
- CОдномерный или двумерный массив-подобный объект, необязательно
-
Числовые данные, определяющие цвета стрелок с помощью цветовой карты norm и cmap.
Не поддерживает явные цвета. Если вы хотите установить цвета напрямую, используйте color вместо этого. Размер C должен соответствовать количеству расположений стрелок.
- units{'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'}, по умолчанию: 'width'
-
Размеры стрелок (кроме length) измеряются в кратных единицах этого типа.
Поддерживаются следующие значения:
- 'width', 'height': Ширина или высота оси.
- 'dots', 'inches': Пиксели или дюймы, основанные на dpi фигуры.
- 'x', 'y', 'xy': X, Y или \(\sqrt{X^2 + Y^2}\) в единицах данных.
Стрелки масштабируются по-разному в зависимости от единиц. Для 'x' или 'y' стрелки увеличиваются при приближении; для других единиц размер стрелки не зависит от масштаба. Для 'width or 'height' размер стрелки увеличивается вместе с шириной и высотой осей соответственно при изменении размеров окна; для 'dots' или 'inches' изменение размеров не влияет на стрелки.
- angles{'uv', 'xy'} или массив-подобный объект, по умолчанию: 'uv'
- Способ определения угла стрелок.
- 'uv': Соотношение сторон оси стрелки равно 1, так что если U == V, ориентация стрелки на графике составляет 45 градусов против часовой стрелки от горизонтальной оси (положительное направление вправо). Используйте это, если стрелки обозначают величину, которая не основана на координатах данных X, Y.
- 'xy': Стрелки указывают от (x, y) до (x+u, y+v). Используйте это для построения поля градиента, например.
- В качестве альтернативы произвольные углы могут быть указаны явно как массив значений в градусах, против часовой стрелки от горизонтальной оси. В этом случае U, V используется только для определения длины стрелок.
angles='xy'. - 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. - widthчисло с плавающей точкой, необязательно
- Ширина вала стрелки в единицах стрелки; по умолчанию зависит от выбранных единиц, описанных выше, и количества векторов; типичное начальное значение составляет примерно 0,005 от ширины графика.
- headwidthчисло с плавающей точкой, по умолчанию: 3
- Ширина головки в кратных ширине вала.
- headlengthчисло с плавающей точкой, по умолчанию: 5
- Длина головки в кратных ширине вала.
- headaxislengthчисло с плавающей точкой, по умолчанию: 4.5
- Длина головки на пересечении с валом.
- minshaftчисло с плавающей точкой, по умолчанию: 1
- Длина ниже которой стрелка масштабируется, в единицах длины головки. Не устанавливайте это значение меньше 1, иначе маленькие стрелки будут выглядеть ужасно!
- minlengthчисло с плавающей точкой, по умолчанию: 1
- Минимальная длина в кратных ширине вала; если длина стрелки меньше этого значения, нарисуйте точку (шестиугольник) такого же диаметра вместо этого.
- pivot{'tail', 'mid', 'middle', 'tip'}, по умолчанию: 'tail'
- Часть стрелки, которая прикреплена к сетке X, Y. Стрелка вращается вокруг этой точки. 'mid' — синоним 'middle'.
- colorцвет или последовательность цветов, необязательно
- Явные цвета стрелок. Если C задан, color не имеет эффекта.
Это синоним параметра
PolyCollectionfacecolor.
- Возвращает
-
Quiver
- Другие параметры
-
- dataиндексируемый объект, необязательно
-
DATA_PARAMETER_PLACEHOLDER
-
**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или str или Noneцвет или список кортежей rgba
edgecolorили ec или edgecolorsцвет или список цветов или 'face'
facecolorили facecolors или fcцвет или список цветов
строка
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
bool
JoinStyleили {'miter', 'round', 'bevel'}объект
linestyleили dashes или linestyles или lsстрока или кортеж или список
linewidthили linewidths или lwчисло с плавающей точкой или список чисел с плавающей точкой
Normalizeили None(N, 2) или (2,) массив-подобный объект
список массивов-подобных объектов
None или bool или число с плавающей точкой или вызываемая функция
число с плавающей точкой
bool
sizesмассив NumPy или None
(scale: float, length: float, randomness: float)
bool или None
строка
список строк или None
список массивов-подобных объектов
неизвестно
bool
число с плавающей точкой
-
См. также
Axes.quiverkey-
Добавить ключ к графику стрелок.
- draw(renderer)[source]
-
Отобразить элемент (и его дочерние элементы) с помощью заданного рендерера.
Это не повлияет, если элемент не отображается (
Artist.get_visibleвозвращает False).- Параметры
-
-
renderer
RendererBaseподкласс.
-
renderer
Примечания
Этот метод переопределён в подклассах элемента.
- get_datalim(transData)[source]
- quiver_doc="\nОтображение 2D поля стрелок.\n\nВызов синтаксиса::\n\n quiver([X, Y], U, V, [C], **kw)\n\n*X*, *Y* определяют местоположение стрелок, *U*, *V* определяют направления стрелок, и\n*C* необязательно задает цвет.\n\nКаждая стрелка внутри представлена заполненным многоугольником с по умолчанию шириной линии 0.\nВ результате, стрелка представляет собой скорее заполненную область, а не линию с\nголовкой, и свойства `.PolyCollection`, такие как *linewidth*, *linestyle*,\n*facecolor*, и т.д. действуют соответствующим образом.\n\n**Размер стрелок**\n\nПо умолчанию длина стрелок автоматически масштабируется до разумного размера.\nЧтобы изменить это поведение, см. параметры *scale* и *scale_units*.\n\n**Форма стрелок**\n\nПо умолчанию задается немного загнутая стрелка; чтобы сделать голову треугольником,\nустановите *headaxislength* равным *headlength*. Чтобы сделать\nстрелку более острой, уменьшите *headwidth* или увеличьте *headlength* и\n*headaxislength*. Чтобы сделать голову меньше по отношению к стволу,\nуменьшите все параметры головы. Вероятно, лучше оставить\nminshaft неизменным.\n\n**Контур стрелки**\n\n*linewidths* и *edgecolors* могут использоваться для настройки контуров стрелок.\n\nПараметры\n----------\nX, Y : одномерный или двумерный массив-подобный объект, необязательно\n Координаты x и y местоположения стрелок.\n\n Если не заданы, они будут сгенерированы в виде равномерной сетки meshgrid на основе\n размеров *U* и *V*.\n\n Если *X* и *Y* одномерные, но *U*, *V* двумерные, *X*, *Y* расширяются до 2D\n с использованием ``X, Y = np.meshgrid(X, Y)``. В этом случае ``len(X)`` и ``len(Y)``\n должны соответствовать размерам столбцов и строк *U* и *V*.\n\nU, V : одномерный или двумерный массив-подобный объект\n Компоненты x и y направлений векторов стрелок.\n\n Они должны иметь одинаковое количество элементов, соответствующее количеству местоположений стрелок.\n *U* и *V* могут быть замаскированы. Будут нарисованы только те местоположения, которые не замаскированы в\n *U*, *V* и *C*.\n\nC : одномерный или двумерный массив-подобный объект, необязательно\n Численные данные, определяющие цвета стрелок с помощью *norm* и\n *cmap*.\n\n Это не поддерживает явные цвета. Если вы хотите задать цвета непосредственно,\n используйте *color* вместо этого. Размер *C* должен соответствовать количеству местоположений стрелок.\n\nunits : {'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'}, по умолчанию: 'width'\n Размеры стрелок (за исключением *length*) измеряются в кратных\n этому элементу.\n\n Поддерживаются следующие значения:\n\n - 'width', 'height': Ширина или высота оси.\n - 'dots', 'inches': Пиксели или дюймы, основанные на разрешении фигуры.\n - 'x', 'y', 'xy': *X*, *Y* или :math:`\\sqrt{X^2 + Y^2}` в единицах данных.\n\n Стрелки масштабируются по-разному в зависимости от единиц. Для\n 'x' или 'y' стрелки увеличиваются при приближении; для других\n единиц, размер стрелки не зависит от состояния масштабирования. Для\n 'width' или 'height' размер стрелки увеличивается с шириной и\n высотой осей соответственно, при изменении размера окна;\n для 'dots' или 'inches', изменение размера не изменяет стрелки.\n\nangles : {'uv', 'xy'} или массив-подобный объект, по умолчанию: 'uv'\n Метод определения угла стрелок.\n\n - 'uv': Соотношение сторон осей стрелки равно 1, так что\n если *U* == *V*, ориентация стрелки на графике составляет 45 градусов\n против часовой стрелки от горизонтальной оси (положительное значение вправо).\n\n Используйте это, если стрелки обозначают величину, которая не основана на\n координатах данных *X*, *Y*.\n\n - 'xy': Стрелки направлены от (x, y) к (x+u, y+v).\n Используйте это для построения поля градиента, например.\n\n - В качестве альтернативы, произвольные углы могут быть явно указаны как массив\n значений в градусах, против часовой стрелки от горизонтальной оси.\n\n В этом случае *U*, *V* используются только для определения длины\n стрелок.\n\n Примечание: инвертирование оси данных будет соответственно инвертировать стрелки только с ``angles='xy'``.\n\nscale : float, необязательно\n Количество единиц данных на единицу длины стрелки, например, м/с на единицу ширины графика; меньший параметр scale делает стрелку длиннее. По умолчанию *None*.\n\n Если *None*, используется простой алгоритм автоматического масштабирования, основанный на средней длине вектора и количестве векторов. Единица длины стрелки задается параметром *scale_units*.\n\nscale_units : {'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'}, необязательно\n Если *scale* имеет значение *None*, единица длины стрелки. По умолчанию *None*.\n\n Например, *scale_units* равно 'inches', *scale* равно 2.0, и ``(u, v) = (1, 0)``,\n тогда вектор будет длиной 0,5 дюйма.\n\n Если *scale_units* равно 'width' или 'height', тогда вектор будет равен половине\n ширины/высоты осей.\n\n Если *scale_units* равно 'x', тогда вектор будет равен 0,5 единиц оси x.\n Чтобы построить векторы в x-y плоскости, с u и v, имеющими\n такие же единицы, как x и y, используйте\n ``angles='xy', scale_units='xy', scale=1``.\n\nwidth : float, необязательно\n Ширина ствола стрелки в единицах стрелки; по умолчанию зависит от выбора единиц,\n выше, и количества векторов; типичное начальное значение составляет около\n 0,005 ширины графика.\n\nheadwidth : float, по умолчанию: 3\n Ширина головы как кратная ширине ствола.\n\nheadlength : float, по умолчанию: 5\n Длина головы как кратная ширине ствола.\n\nheadaxislength : float, по умолчанию: 4.5\n Длина головы на пересечении ствола.\n\nminshaft : float, по умолчанию: 1\n Длина, ниже которой стрелка масштабируется, в единицах длины головы. Не\n устанавливайте это значение меньше 1, иначе маленькие стрелки будут выглядеть ужасно!\n\nminlength : float, по умолчанию: 1\n Минимальная длина как кратная ширине ствола; если длина стрелки\n меньше этого значения, вместо этого рисуется точка (шестиугольник) этого диаметра.\n\npivot : {'tail', 'mid', 'middle', 'tip'}, по умолчанию: 'tail'\n Часть стрелки, которая закреплена к сетке *X*, *Y*. Стрелка\n вращается вокруг этой точки.\n\n 'mid' - синоним для 'middle'.\n\ncolor : цвет или последовательность цветов, необязательно\n Явный(ые) цвет(а) для стрелок. Если *C* был задан, *color* не\n влияет.\n\n Это синоним параметра `.PolyCollection` *facecolor*.\n\nДругие параметры\n----------------\ndata : индексируемый объект, необязательно\n ЗАМЕЩАЮЩИЙ ПАРАМЕТР DATA\n\n**kwargs : свойства `~matplotlib.collections.PolyCollection`, необязательно\n Все остальные ключевые параметры передаются в `.PolyCollection`:\n\n \n .. table::\n :class: property-table\n\n ================================================================================================= =====================================================================================================\n Свойство Описание \n ================================================================================================= =====================================================================================================\n :meth:`agg_filter <matplotlib.artist.Artist.set_agg_filter>` функция фильтра, которая принимает массив float (m, n, 3) и значение dpi, и возвращает массив (m, n, 3)\n :meth:`alpha <matplotlib.collections.Collection.set_alpha>` массив-подобный объект или скаляр или None \n :meth:`animated <matplotlib.artist.Artist.set_animated>` bool \n :meth:`antialiased <matplotlib.collections.Collection.set_antialiased>` или aa или antialiaseds bool или список bool \n :meth:`array <matplotlib.cm.ScalarMappable.set_array>` массив-подобный объект или None \n :meth:`capstyle <matplotlib.collections.Collection.set_capstyle>` `.CapStyle` или {'butt', 'projecting', 'round'} \n :meth:`clim <matplotlib.cm.ScalarMappable.set_clim>` (vmin: float, vmax: float) \n :meth:`clip_box <matplotlib.artist.Artist.set_clip_box>` `.Bbox` \n :meth:`clip_on <matplotlib.artist.Artist.set_clip_on>` bool \n :meth:`clip_path <matplotlib.artist.Artist.set_clip_path>` Patch или (Path, Transform) или None \n :meth:`cmap <matplotlib.cm.ScalarMappable.set_cmap>` `.Colormap` или str или None \n :meth:`color <matplotlib.collections.Collection.set_color>` цвет или список кортежей rgba \n :meth:`edgecolor <matplotlib.collections.Collection.set_edgecolor>` или ec или edgecolors цвет или список цветов или 'face' \n :meth:`facecolor <matplotlib.collections.Collection.set_facecolor>` или facecolors или fc цвет или список цветов \n :meth:`figure <matplotlib.artist.Artist.set_figure>` `.Figure` \n :meth:`gid <matplotlib.artist.Artist.set_gid>` str \n :meth:`hatch <matplotlib.collections.Collection.set_hatch>` {'/', '\\\\', '|', '-', '+', 'x', 'o', 'O', '.', '*'} \n :meth:`in_layout <matplotlib.artist.Artist.set_in_layout>` bool \n :meth:`joinstyle <matplotlib.collections.Collection.set_joinstyle>` `.JoinStyle` или {'miter', 'round', 'bevel'} \n :meth:`label <matplotlib.artist.Artist.set_label>` объект \n :meth:`linestyle <matplotlib.collections.Collection.set_linestyle>` или dashes или linestyles или ls str или кортеж или список \n :meth:`linewidth <matplotlib.collections.Collection.set_linewidth>` или linewidths или lw float или список floats \n :meth:`norm <matplotlib.cm.ScalarMappable.set_norm>` `.Normalize` или None \n :meth:`offset_transform <matplotlib.collections.Collection.set_offset_transform>` `.Transform` \n :meth:`offsets <matplotlib.collections.Collection.set_offsets>` (N, 2) или (2,) массив-подобный объект \n :meth:`path_effects <matplotlib.artist.Artist.set_path_effects>` `.AbstractPathEffect` \n :meth:`paths <matplotlib.collections.PolyCollection.set_verts>` список array-like \n :meth:`picker <matplotlib.artist.Artist.set_picker>` None или bool или float или callable \n :meth:`pickradius <matplotlib.collections.Collection.set_pickradius>` float \n :meth:`rasterized <matplotlib.artist.Artist.set_rasterized>` bool \n :meth:`sizes <matplotlib.collections._CollectionWithSizes.set_sizes>` ndarray или None \n :meth:`sketch_params <matplotlib.artist.Artist.set_sketch_params>` (scale: float, length: float, randomness: float) \n :meth:`snap <matplotlib.artist.Artist.set_snap>` bool или None \n :meth:`transform <matplotlib.artist.Artist.set_transform>` `.Transform` \n :meth:`url <matplotlib.artist.Artist.set_url>` str \n :meth:`urls <matplotlib.collections.Collection.set_urls>` список str или None \n :meth:`verts <matplotlib.collections.PolyCollection.set_verts>` список array-like \n :meth:`verts_and_codes <matplotlib.collections.PolyCollection.set_verts_and_codes>` неизвестно \n :meth:`visible <matplotlib.artist.Artist.set_visible>` bool \n :meth:`zorder <matplotlib.artist.Artist.set_zorder>` float \n ================================================================================================= =====================================================================================================\n\n\nВозвращает\n-------\n`~matplotlib.quiver.Quiver`\n\nСм. также\n--------\n.Axes.quiverkey : Добавить ключ к графику quiver.\n"
- remove()[source]
-
Удалить элемент из фигуры, если это возможно.
Эффект не будет виден до перерисовки фигуры, например, с помощью
FigureCanvasBase.draw_idle. Для обновления пределов осей используйтеrelim.Примечание:
relimне увидит коллекции, даже если коллекция была добавлена на ось с autolim = True.Примечание: нет поддержки удаления записи легенды элемента.
- set(*, UVC=<UNSET>, agg_filter=<UNSET>, alpha=<UNSET>, animated=<UNSET>, antialiased=<UNSET>, array=<UNSET>, capstyle=<UNSET>, clim=<UNSET>, clip_box=<UNSET>, clip_on=<UNSET>, clip_path=<UNSET>, cmap=<UNSET>, color=<UNSET>, edgecolor=<UNSET>, facecolor=<UNSET>, gid=<UNSET>, hatch=<UNSET>, in_layout=<UNSET>, joinstyle=<UNSET>, label=<UNSET>, linestyle=<UNSET>, linewidth=<UNSET>, norm=<UNSET>, offset_transform=<UNSET>, offsets=<UNSET>, path_effects=<UNSET>, paths=<UNSET>, picker=<UNSET>, pickradius=<UNSET>, rasterized=<UNSET>, sizes=<UNSET>, sketch_params=<UNSET>, snap=<UNSET>, transform=<UNSET>, url=<UNSET>, urls=<UNSET>, verts=<UNSET>, verts_and_codes=<UNSET>, visible=<UNSET>, zorder=<UNSET>)[source]
-
Установить несколько свойств одновременно.
Поддерживаемые свойства:
Свойство
Описание
неизвестно
функция фильтра, которая принимает массив float (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число с плавающей точкой или список чисел с плавающей точкой
Normalizeили None(N, 2) или (2,) массив-подобный объект
список массивов-подобных объектов
None или bool или число с плавающей точкой или вызываемая функция
число с плавающей точкой
bool
sizesмассив NumPy или None
(scale: float, length: float, randomness: float)
bool или None
строка
список строк или None
список массивов-подобных объектов
неизвестно
bool
число с плавающей точкой
-
- set_UVC(U, V, C=None)[source]
Примеры использования matplotlib.quiver.Quiver
© 2012–2021 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.5.1/api/_as_gen/matplotlib.quiver.Quiver.html