matplotlib.patches.FancyArrowPatch
- classmatplotlib.patches.FancyArrowPatch(posA=None, posB=None, *, path=None, arrowstyle='simple', connectionstyle='arc3', patchA=None, patchB=None, shrinkA=2, shrinkB=2, mutation_scale=1, mutation_aspect=1, **kwargs)[исходный код]
-
Bases:
PatchПатч в виде фигурной стрелки.
Стрелка рисуется с помощью
ArrowStyle. В основном он используется методомannotate. В большинстве случаев для рисования стрелок используйте метод annotate.Положения наконечника и хвоста фиксированы в заданных начальной и конечной точках стрелки, но размер и форма стрелки (в координатах отображения) не меняются при перемещении или масштабировании осей.
Определение положения и траектории стрелки
Положение и траекторию стрелки можно задать двумя способами:
-
Начало, конец и соединение: Обычно начальную и конечную точки стрелки задают с помощью posA и posB. Кривую между ними можно дополнительно настроить с помощью connectionstyle.
Если указаны patchA и patchB, кривая стрелки обрезается по их границам, что позволяет ей начинаться и заканчиваться на границе этих патчей. Кроме того, кривую стрелки можно укоротить с помощью shrinkA и shrinkB, чтобы создать отступ между началом/концом (после возможного обрезания) и нарисованной стрелкой.
- path: Если задан параметр path, стрелка рисуется вдоль этого Path. В этом случае параметры connectionstyle, patchA, patchB, shrinkA и shrinkB игнорируются.
Стилизация
Параметр arrowstyle задаёт стиль наконечника, хвоста и стержня стрелки. Полученные стрелки можно дополнительно стилизовать, задавая свойства
Patch, например linewidth, color, facecolor, edgecolor и т. д., с помощью именованных аргументов. -
- Параметры:
-
- posA, posB(float, float), необязательно
-
Координаты (x, y) начальной и конечной точек стрелки. Фактически нарисованные начальная и конечная позиции могут быть изменены с помощью patchA, patchB, shrinkA и shrinkB.
posA и posB нельзя использовать одновременно с path.
-
path
Path, необязательно -
Если указан, стрелка рисуется вдоль этого пути, а параметры patchA, patchB, shrinkA и shrinkB игнорируются.
path нельзя использовать одновременно с posA и posB.
-
arrowstylestr или
ArrowStyle, по умолчанию: 'simple' -
Стиль наконечника, хвоста и стержня стрелки. Это может быть
-
ArrowStyleили один из его подклассов - Краткое строковое имя (например, "->") из таблицы ниже, которое может содержать разделённый запятыми список параметров стиля, например "->, head_length=10, head_width=5".
Параметры стиля масштабируются с помощью mutation_scale.
Доступны следующие стили стрелок. См. также Справочник по стилям стрелок аннотаций.
Класс
Имя
Параметры
Curve
-None
CurveA
<-head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveB
->head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveAB
<->head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveFilledA
<|-head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveFilledB
-|>head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveFilledAB
<|-|>head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
BracketA
]-widthA=1.0, lengthA=0.2, angleA=0
BracketB
-[widthB=1.0, lengthB=0.2, angleB=0
BracketAB
]-[widthA=1.0, lengthA=0.2, angleA=0, widthB=1.0, lengthB=0.2, angleB=0
BarAB
|-|widthA=1.0, angleA=0, widthB=1.0, angleB=0
BracketCurve
]->widthA=1.0, lengthA=0.2, angleA=None
CurveBracket
<-[widthB=1.0, lengthB=0.2, angleB=None
Simple
simplehead_length=0.5, head_width=0.5, tail_width=0.2
Fancy
fancyhead_length=0.4, head_width=0.4, tail_width=0.4
Wedge
wedgetail_width=0.3, shrink_factor=0.5
Только стили
<|-,-|>,<|-|>simple,fancyиwedgeсодержат замкнутые пути и могут быть залиты. -
-
connectionstylestr или
ConnectionStyleили None, необязательно, по умолчанию: 'arc3' -
ConnectionStyle, которым соединяются posA и posB. Это может быть-
ConnectionStyleили один из его подклассов - Краткое строковое имя из таблицы ниже, например "arc3".
Класс
Имя
Параметры
Arc3
arc3rad=0.0
Angle3
angle3angleA=90, angleB=0
Angle
angleangleA=90, angleB=0, rad=0.0
Arc
arcangleA=0, angleB=0, armA=None, armB=None, rad=0.0
Bar
bararmA=0.0, armB=0.0, fraction=0.3, angle=None
Игнорируется, если указан path.
-
-
patchA, patchB
Patch, по умолчанию: None -
Необязательные патчи в позициях posA и posB соответственно. Если они указаны, путь стрелки обрезается по этим патчам так, чтобы наконечник и хвост находились на их границах.
Игнорируется, если указан path.
- shrinkA, shrinkBfloat, по умолчанию: 2
-
Укоротить путь стрелки в позициях posA и posB на указанное значение в пунктах. Это позволяет добавить отступ между заданными начальной/конечной точками и стрелкой.
Игнорируется, если указан path.
- mutation_scalefloat, по умолчанию: 1
-
Значение, с помощью которого масштабируются атрибуты arrowstyle (например, head_length).
- mutation_aspectNone или float, по умолчанию: None
-
Перед преобразованием высота прямоугольника будет уменьшена в соответствии с этим значением, а преобразованная фигура будет растянута в обратной пропорции.
-
- Другие параметры:
-
-
**kwargs
Patchсвойства, необязательно -
Список доступных свойств
Patch:
-
**kwargs
Свойство
Описание
функция фильтра, принимающая массив чисел с плавающей точкой формы (m, n, 3) и значение dpi и возвращающая массив формы (m, n, 3) и два смещения от нижнего левого угла изображения
неизвестно
bool
antialiasedoraabool or None
CapStyleor {'butt', 'projecting', 'round'}BboxBaseor Nonebool
Patch or (Path, Transform) or None
цвет or None
цвет or None
bool
str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
неизвестно
bool
JoinStyleor {'miter', 'round', 'bevel'}object
{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
float or None
bool
list of
AbstractPathEffectNone or bool or float or callable
bool
(scale: float, length: float, randomness: float)
bool or None
str
bool
float
В отличие от других патчей, значения
capstyleиjoinstyleпо умолчанию дляFancyArrowPatchустановлены в"round".
- draw(renderer)[исходный код]
-
Нарисовать Artist (и его дочерние элементы) с помощью указанного средства визуализации.
Ничего не происходит, если Artist невидим (
Artist.get_visibleвозвращает False).- Параметры:
-
-
rendererподкласс
RendererBase.
-
rendererподкласс
Примечания
Этот метод переопределяется в подклассах Artist.
- get_arrowstyle()[исходный код]
-
Вернуть объект стиля стрелки.
- get_connectionstyle()[исходный код]
-
Вернуть используемый
ConnectionStyle.
- get_mutation_aspect()[исходный код]
-
Вернуть соотношение сторон изменения bbox.
- get_mutation_scale()[исходный код]
-
Вернуть масштаб изменения.
- Возвращает:
-
- scalar
- get_path()[исходный код]
-
Вернуть путь стрелки в координатах данных.
- set(*, agg_filter=<UNSET>, alpha=<UNSET>, animated=<UNSET>, antialiased=<UNSET>, arrowstyle=<UNSET>, capstyle=<UNSET>, clip_box=<UNSET>, clip_on=<UNSET>, clip_path=<UNSET>, color=<UNSET>, connectionstyle=<UNSET>, edgecolor=<UNSET>, facecolor=<UNSET>, fill=<UNSET>, gid=<UNSET>, hatch=<UNSET>, hatch_linewidth=<UNSET>, in_layout=<UNSET>, joinstyle=<UNSET>, label=<UNSET>, linestyle=<UNSET>, linewidth=<UNSET>, mouseover=<UNSET>, mutation_aspect=<UNSET>, mutation_scale=<UNSET>, patchA=<UNSET>, patchB=<UNSET>, path_effects=<UNSET>, picker=<UNSET>, positions=<UNSET>, rasterized=<UNSET>, sketch_params=<UNSET>, snap=<UNSET>, transform=<UNSET>, url=<UNSET>, visible=<UNSET>, zorder=<UNSET>)[исходный код]
-
Задайте несколько свойств одновременно.
Поддерживаются следующие свойства:
Свойство
Описание
функция фильтрации, принимающая массив чисел с плавающей точкой формы (m, n, 3) и значение dpi и возвращающая массив формы (m, n, 3) и два смещения от нижнего левого угла изображения
float or None
bool
antialiasedoraabool or None
[ '-' | '<-' | '->' | '<->' | '<|-' | '-|>' | '<|-|>' | ']-' | '-[' | ']-[' | '|-|' | ']->' | '<-[' | 'simple' | 'fancy' | 'wedge' ]
CapStyleor {'butt', 'projecting', 'round'}BboxBaseor Nonebool
Patch or (Path, Transform) or None
[ 'arc3' | 'angle3' | 'angle' | 'arc' | 'bar' ]
цвет or None
цвет or None
bool
str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
неизвестно
bool
JoinStyleor {'miter', 'round', 'bevel'}object
-
{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
float или None
bool
float
float
список
AbstractPathEffectNone или bool или float или callable
неизвестно
bool
(scale: float, length: float, randomness: float)
bool или None
str
bool
float
- set_arrowstyle(arrowstyle=None, **kwargs)[исходный код]
-
Задать стиль стрелки и, при необходимости, дополнительные атрибуты.
Атрибуты предыдущего стиля стрелки повторно не используются.
Без аргумента (или с
arrowstyle=None) доступные стили рамок возвращаются в виде строки, удобной для чтения.- Параметры:
-
-
arrowstylestr или
ArrowStyle -
Стиль стрелки: экземпляр
ArrowStyleлибо строка с названием стиля и, при необходимости, атрибутами, разделёнными запятыми (например, "Fancy,head_length=0.2"). Такая строка используется для создания объектаArrowStyle, как описано в документации этого класса.Доступны следующие стили стрелок:
Класс
Название
Параметры
Curve
-None
CurveA
<-head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveB
->head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveAB
<->head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveFilledA
<|-head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveFilledB
-|>head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveFilledAB
<|-|>head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
BracketA
]-widthA=1.0, lengthA=0.2, angleA=0
BracketB
-[widthB=1.0, lengthB=0.2, angleB=0
BracketAB
]-[widthA=1.0, lengthA=0.2, angleA=0, widthB=1.0, lengthB=0.2, angleB=0
BarAB
|-|widthA=1.0, angleA=0, widthB=1.0, angleB=0
BracketCurve
]->widthA=1.0, lengthA=0.2, angleA=None
CurveBracket
<-[widthB=1.0, lengthB=0.2, angleB=None
Simple
simplehead_length=0.5, head_width=0.5, tail_width=0.2
Fancy
fancyhead_length=0.4, head_width=0.4, tail_width=0.4
Wedge
wedgetail_width=0.3, shrink_factor=0.5
- **kwargs
-
Дополнительные атрибуты стиля стрелки. Поддерживаемые параметры см. в таблице выше.
-
arrowstylestr или
Примеры
set_arrowstyle("Fancy,head_length=0.2") set_arrowstyle("fancy", head_length=0.2)
- set_connectionstyle(connectionstyle=None, **kwargs)[исходный код]
-
Задать стиль соединения, при необходимости указав дополнительные атрибуты.
Атрибуты предыдущего стиля соединения не используются повторно.
Без аргумента (или с
connectionstyle=None) доступные стили соединения возвращаются в виде понятной человеку строки.- Параметры:
-
-
connectionstylestr или
ConnectionStyle -
Стиль соединения: экземпляр
ConnectionStyleили строка, содержащая имя стиля и, при необходимости, атрибуты, разделённые запятыми (например, "Arc,armA=30,rad=10"). Такая строка используется для создания объектаConnectionStyle, как описано в документации этого класса.Доступны следующие стили соединения:
Класс
Имя
Параметры
Arc3
arc3rad=0.0
Angle3
angle3angleA=90, angleB=0
Angle
angleangleA=90, angleB=0, rad=0.0
Arc
arcangleA=0, angleB=0, armA=None, armB=None, rad=0.0
Bar
bararmA=0.0, armB=0.0, fraction=0.3, angle=None
- **kwargs
-
Дополнительные атрибуты стиля соединения. Поддерживаемые параметры см. в таблице выше.
-
connectionstylestr или
Примеры
set_connectionstyle("Arc,armA=30,rad=10") set_connectionstyle("arc", armA=30, rad=10)
- set_mutation_aspect(aspect)[исходный код]
-
Задать соотношение сторон изменения bbox.
- Параметры:
-
- aspectfloat
- set_mutation_scale(scale)[исходный код]
-
Задать масштаб изменения.
- Параметры:
-
- scalefloat
- set_patchA(patchA)[исходный код]
-
Задать заплатку хвостовой части.
- Параметры:
-
-
patchA
patches.Patch
-
patchA
- set_patchB(patchB)[исходный код]
-
Задать заплатку головной части.
- Параметры:
-
-
patchB
patches.Patch
-
patchB
- set_positions(posA, posB)[исходный код]
-
Задать начальную и конечную позиции соединительного пути.
- Параметры:
-
- posA, posBNone, tuple
-
Координаты (x, y) хвоста и наконечника стрелки соответственно. Если указано
None, используется текущее значение.
Примеры использования matplotlib.patches.FancyArrowPatch
© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/_as_gen/matplotlib.patches.FancyArrowPatch.html