matplotlib.transforms
matplotlib включает в себя фреймворк для произвольных геометрических преобразований, который используется для определения конечного положения всех элементов, нарисованных на холсте.
Преобразования объединяются в деревья объектов TransformNode, чьё фактическое значение зависит от их дочерних элементов. При изменении содержимого дочерних элементов, их родительские элементы автоматически делают недействительными. В следующий раз, когда будет обращаться к недействительному преобразованию, оно будет пересчитано, чтобы отразить эти изменения. Такой подход к проверке/кешированию предотвращает ненужные пересчёты преобразований и способствует улучшению интерактивной производительности.
Например, вот граф дерева преобразований, используемого для построения данных на графике:
Фреймворк может использоваться для аффинных и неаффинных преобразований. Однако, для скорости, мы хотим использовать рендереры бэкенда для выполнения аффинных преобразований, когда это возможно. Таким образом, возможно выполнить только аффинную или неаффинную часть преобразования на наборе данных. Аффинное преобразование всегда предполагается после неаффинного. Для любого преобразования:
full transform == non-affine part + affine part
От бэкэндов не ожидается, что они будут обрабатывать сами неаффинные преобразования.
-
class matplotlib.transforms.Affine2D(matrix=None, **kwargs)[source]
-
Основания:
matplotlib.transforms.Affine2DBaseИзменяемая 2D аффинная трансформация.
Инициализация аффинной трансформации из 3x3 массива numpy с плавающей точкой:
a c e b d f 0 0 1
Если matrix равно None, инициализация выполняется с тождественной трансформацией.
-
clear(self)[source] -
Сброс базовой матрицы на тождественную трансформацию.
-
static from_values(a, b, c, d, e, f)[source] -
(статический метод) Создание нового экземпляра Affine2D из заданных значений:
a c e b d f 0 0 1
.
-
get_matrix(self)[source] -
Получение базовой матрицы преобразования в виде 3x3 массива numpy:
a c e b d f 0 0 1
.
-
static identity()[source] -
(статический метод) Возврат нового объекта
Affine2D, представляющего тождественное преобразование.Если эта трансформация не будет изменяться, используйте более быстрый класс
IdentityTransform.
-
rotate(self, theta)[source] -
Добавление поворота (в радианах) к этому преобразованию на месте.
Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
-
rotate_around(self, x, y, theta)[source] -
Добавление поворота (в радианах) вокруг точки (x, y) на месте.
Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
-
rotate_deg(self, degrees)[source] -
Добавление поворота (в градусах) к этому преобразованию на месте.
Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
-
rotate_deg_around(self, x, y, degrees)[source] -
Добавление поворота (в градусах) вокруг точки (x, y) на месте.
Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
-
scale(self, sx, sy=None)[source] -
Добавление масштабирования на месте.
Если sy равно None, то же масштабирование применяется по обеим осям x и y.
Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
-
set(self, other)[source] -
Установка этого преобразования из замороженной копии другого объекта
Affine2DBase.
-
set_matrix(self, mtx)[source] -
Установка базовой матрицы преобразования из 3x3 массива numpy:
a c e b d f 0 0 1
.
-
skew(self, xShear, yShear)[source] -
Добавление сдвига на месте.
xShear и yShear — углы сдвига вдоль осей x и y соответственно в радианах.
Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
-
skew_deg(self, xShear, yShear)[source] -
Добавление сдвига на месте.
xShear и yShear — углы сдвига вдоль осей x и y соответственно в градусах.
Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
-
translate(self, tx, ty)[source] -
Добавление смещения на месте.
Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
-
-
class matplotlib.transforms.Affine2DBase(*args, **kwargs)[source] -
Базовый класс всех 2D аффинных преобразований.
Основывается на:
matplotlib.transforms.AffineBase2D аффинные преобразования выполняются с помощью 3x3 массива numpy:
a c e b d f 0 0 1
Этот класс предоставляет только для чтения интерфейс. Для изменяемого 2D аффинного преобразования используйте
Affine2D.Подклассы этого класса, как правило, должны будут переопределять конструктор и
get_matrix(), который генерирует пользовательскую 3x3 матрицу.-
frozen(self)[source] -
Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для сохранения ранее известного состояния преобразования, где
copy.deepcopy()может быть использовано обычно.
-
has_inverse = True
-
input_dims = 2
-
inverted(self)[source] -
Возвращает соответствующее обратное преобразование.
Результат работы этого метода следует рассматривать как временный. Обновление self не вызывает соответствующего обновления его инвертированной копии.
x === self.inverted().transform(self.transform(x))
-
is_separable -
bool(x) -> bool
Возвращает True, если аргумент x истинный, False в противном случае. Встроенные True и False — единственные два экземпляра класса bool. Класс bool является подклассом класса int и не может быть подклассом.
-
static matrix_from_values(a, b, c, d, e, f)[source] -
(staticmethod) Создаёт новую матрицу преобразования как 3x3 массив numpy следующего вида:
a c e b d f 0 0 1
-
output_dims = 2
-
to_values(self)[source] -
Возвращает значения матрицы в виде
(a, b, c, d, e, f)кортежа.
-
transform_affine(self, points)[source] -
Выполняет только аффинную часть этого преобразования над заданным массивом значений.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях, это, как правило, недействие. В аффинных преобразованиях это эквивалентно
transform(values).Принимает массив numpy формы (N x
input_dims) и возвращает массив numpy формы (N xoutput_dims).В качестве альтернативы, принимает массив numpy длины
input_dimsи возвращает массив numpy длиныoutput_dims.
-
transform_point(self, point)[source] -
Удобная функция, которая возвращает преобразованную копию одной точки.
Точка задаётся как последовательность длины
input_dims. Преобразованная точка возвращается как последовательность длиныoutput_dims.
-
-
class matplotlib.transforms.AffineBase(*args, **kwargs)[source] -
Основывается на:
matplotlib.transforms.TransformБазовый класс всех аффинных преобразований любого числа измерений.
-
get_affine(self)[source] -
Получить аффинную часть этого преобразования.
-
is_affine = True
-
transform(self, values)[source] -
Выполняет преобразование над заданным массивом значений.
Принимает массив numpy формы (N x
input_dims) и возвращает массив numpy формы (N xoutput_dims).В качестве альтернативы, принимает массив numpy длины
input_dimsи возвращает массив numpy длиныoutput_dims.
-
transform_affine(self, values)[source] -
Выполняет только аффинную часть этого преобразования над заданным массивом значений.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях, это, как правило, недействие. В аффинных преобразованиях это эквивалентно
transform(values).Принимает массив numpy формы (N x
input_dims) и возвращает массив numpy формы (N xoutput_dims).В качестве альтернативы, принимает массив numpy длины
input_dimsи возвращает массив numpy длиныoutput_dims.
-
transform_non_affine(self, points)[source] -
Выполняет только неаффинную часть преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях, это, как правило, эквивалентно
transform(values). В аффинных преобразованиях, это всегда недействие.Принимает массив numpy формы (N x
input_dims) и возвращает массив numpy формы (N xoutput_dims).В качестве альтернативы, принимает массив numpy длины
input_dimsи возвращает массив numpy длиныoutput_dims.
-
transform_path(self, path)Path[source] -
Возвращает преобразованный путь.
path: экземпляр
Path.В некоторых случаях, это преобразование может вставлять кривые в путь, который изначально состоял из отрезков прямых.
-
transform_path_affine(self, path)[source] -
Возвращает путь, преобразованный только аффинной частью этого преобразования.
path: экземпляр
Path.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
-
transform_path_non_affine(self, path)[source] -
Возвращает путь, преобразованный только неаффинной частью этого преобразования.
path: экземпляр
Path.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
-
-
class matplotlib.transforms.Bbox(points, **kwargs)[source] -
Bases:
matplotlib.transforms.BboxBaseИзменяемый прямоугольник.
Параметры: -
points : ndarray -
Двумерный массив numpy размером 2x2 в формате
[[x0, y0], [x1, y1]].
Примечания
Если вам нужно создать объект
Bboxиз других данных, рассмотрите статические методыunit(),from_bounds()иfrom_extents().-
static from_bounds(x0, y0, width, height)[source] -
(статический метод) Создает новый
Bboxиз x0, y0, ширины и высоты.Ширина и высота могут быть отрицательными.
-
static from_extents(*args)[source] -
(статический метод) Создает новый прямоугольник из слева, снизу, справа и сверху.
Ось y возрастает вверх.
-
get_points(self)[source] -
Получить точки прямоугольника непосредственно в виде массива numpy в формате:
[[x0, y0], [x1, y1]].
-
ignore(self, value)[source] -
Установить, игнорировать ли существующие границы рамки последующими вызовами
update_from_data_xy().-
value : bool -
- Когда
True, последующие вызовыupdate_from_data_xy()будут игнорировать существующие границы прямоугольникаBbox. - Когда
False, последующие вызовыupdate_from_data_xy()будут учитывать существующие границы прямоугольникаBbox.
- Когда
-
-
intervalx -
Пара x-координат, определяющих прямоугольник.
Не гарантируется, что они отсортированы слева направо.
-
intervaly -
Пара y-координат, определяющих прямоугольник.
Не гарантируется, что они отсортированы снизу вверх.
-
minpos
-
minposx
-
minposy
-
mutated(self)[source] -
Возвращает, изменился ли прямоугольник с момента инициализации.
-
mutatedx(self)[source] -
Возвращает, изменились ли пределы по оси x с момента инициализации.
-
mutatedy(self)[source] -
Возвращает, изменились ли пределы по оси y с момента инициализации.
-
static null()[source] -
(статический метод) Создает новый нулевой прямоугольник
Bboxот (бесконечность, бесконечность) до (-бесконечность, -бесконечность).
-
p0 -
Первая пара (x, y) координат, определяющих прямоугольник.
Не гарантируется, что это нижний левый угол (для этого используйте
min).
-
p1 -
Вторая пара (x, y) координат, определяющих прямоугольник.
Не гарантируется, что это верхний правый угол (для этого используйте
max).
-
set(self, other)[source] -
Устанавливает этот прямоугольник по "замороженным" границам другого
Bbox.
-
set_points(self, points)[source] -
Устанавливает точки прямоугольника напрямую из массива numpy в формате:
[[x0, y0], [x1, y1]]. Проверка ошибок не выполняется, так как этот метод предназначен в основном для внутреннего использования.
-
static unit()[source] -
(статический метод) Создает новый единичный прямоугольник
Bboxот (0, 0) до (1, 1).
-
update_from_data_xy(self, xy, ignore=None, updatex=True, updatey=True)[source] -
Обновляет границы прямоугольника на основе переданных данных. После обновления границы будут иметь положительную ширину и высоту; x0 и y0 будут минимальными значениями.
Параметры: -
xy : ndarray -
Массив numpy с 2D точками.
-
ignore : bool, optional -
updatex, updatey : bool, optional -
Когда
True, обновить значения x/y.
-
-
-
update_from_path(self, path, ignore=None, updatex=True, updatey=True)[source] -
Обновление границ
Bboxна основе переданных данных. После обновления границы будут иметь положительную ширину и высоту; x0 и y0 будут минимальными значениями.Параметры:
-
x0 -
Первая из пары координат x, определяющих прямоугольник.
Не гарантируется, что она будет меньше
x1(для этого используйтеxmin).
-
x1 -
Вторая из пары координат x, определяющих прямоугольник.
Не гарантируется, что она будет больше
x0(для этого используйтеxmax).
-
y0 -
Первая из пары координат y, определяющих прямоугольник.
Не гарантируется, что она будет меньше
y1(для этого используйтеymin).
-
y1 -
Вторая из пары координат y, определяющих прямоугольник.
Не гарантируется, что она будет больше
y0(для этого используйтеymax).
-
-
class matplotlib.transforms.BboxBase(shorthand_name=None)[source]
-
Базовые классы:
matplotlib.transforms.TransformNodeЭто базовый класс всех прямоугольных областей и предоставляет только для чтения доступ к его данным. Изменяемую прямоугольную область предоставляет класс
Bbox.Каноническое представление — это две точки без ограничений на их порядок. Предоставляются удобные свойства для получения левой, нижней, правой и верхней границ, а также ширины и высоты, но они не хранятся явно.
Создаёт новый
TransformNode.Параметры: -
shorthand_name : str -
Строка, представляющая "имя" преобразования. Имя не несёт никакой смысловой нагрузки, кроме улучшения удобочитаемости
str(transform)при DEBUG=True.
-
anchored(self, c, container=None)[source] -
Возвращает копию
Bbox, смещённую в позицию c внутри контейнера.Параметры: -
c : (float, float) or str -
Может быть:
- Последовательностью (cx, cy), где cx и cy изменяются от 0 до 1, где 0 — слева или снизу, а 1 — справа или сверху
- строкой: - 'C' для центрирования - 'S' для нижнего центра - 'SE' для нижнего левого - 'E' для левого - и т.д.
-
container : Bbox, optional -
Прямоугольная область, в которой размещается
Bbox; по умолчанию это исходнаяBbox.
-
-
coefs = {'C': (0.5, 0.5), 'E': (1.0, 0.5), 'N': (0.5, 1.0), 'NE': (1.0, 1.0), 'NW': (0, 1.0), 'S': (0.5, 0), 'SE': (1.0, 0), 'SW': (0, 0), 'W': (0, 0.5)}
-
contains(self, x, y)[source] -
Возвращает, содержится ли
(x, y)в прямоугольной области или на её границе.
-
corners(self)[source] -
Возвращает углы этого прямоугольника как массив точек.
Конкретно, это возвращает массив
[[x0, y0], [x0, y1], [x1, y0], [x1, y1]].
-
count_contains(self, vertices)[source] -
Подсчитывает количество вершин, содержащихся в прямоугольной области
Bbox. Любые вершины с нечисловыми значениями x или y игнорируются.Параметры: -
vertices : Nx2 Numpy array.
-
-
count_overlaps(self, bboxes)[source] -
Подсчитывает количество прямоугольных областей, которые перекрывают данную.
Параметры: -
bboxes : sequence of BboxBase objects
-
-
expanded(self, sw, sh)[source] -
Создаёт прямоугольную область
Bbox, расширяя текущую вокруг её центра на коэффициенты sw и sh.
-
frozen(self)[source] -
TransformNode— базовый класс для всего, что участвует в дереве преобразований и нуждается в обновлении своих родителей или обновлении само. Это включает классы, которые на самом деле не являются преобразованиями, такие как прямоугольные области, поскольку некоторые преобразования зависят от прямоугольных областей для вычисления своих значений.
-
fully_contains(self, x, y)[source] -
Возвращает, содержится ли
x, yв прямоугольной области, но не на её границе.
-
fully_overlaps(self, other)[source] -
Возвращает, перекрывает ли эта прямоугольная область другую прямоугольную область, не включая грани.
Параметры: -
other : BboxBase
-
-
get_points(self)[source]
-
-
height -
Высота области задания.
-
static intersection(bbox1, bbox2)[source] -
Возвращает пересечение bbox1 и bbox2, если они пересекаются, или None, если нет.
-
intervalx -
Пара x-координат, определяющих область задания.
Не гарантируется, что значения отсортированы слева направо.
-
intervaly -
Пара y-координат, определяющих область задания.
Не гарантируется, что значения отсортированы снизу вверх.
-
inverse_transformed(self, transform)[source] -
Создаёт
Bboxпутём статического преобразования текущей области задания с помощью обратного преобразования transform.
-
is_affine = True
-
is_bbox = True
-
is_unit(self)[source] -
Возвращает значение, определяющее, является ли область задания единичной (от (0, 0) до (1, 1)).
-
max -
Правый верхний угол области задания.
-
min -
Левый нижний угол области задания.
-
overlaps(self, other)[source] -
Возвращает значение, указывающее, перекрывается ли эта область задания с другой областью задания.
Параметры: -
other : BboxBase
-
-
p0 -
Первая пара (x, y) координат, определяющих область задания.
Не гарантируется, что это левый нижний угол (для этого используйте
min).
-
p1 -
Вторая пара (x, y) координат, определяющих область задания.
Не гарантируется, что это правый верхний угол (для этого используйте
max).
-
padded(self, p)[source] -
Создаёт
Bboxпутём добавления отступа p со всех четырёх сторон текущей области задания.
-
rotated(self, radians)[source] -
Возвращает новую область задания, которая охватывает повернутую версию текущей области задания на заданный угол в радианах. Новая область задания по-прежнему ориентирована относительно осей.
-
shrunk(self, mx, my)[source] -
Возвращает копию
Bbox, уменьшенную на множитель mx по оси x и my по оси y. Левый нижний угол области задания остаётся неизменным. Обычно mx и my будут меньше 1, но это не обязательно.
-
shrunk_to_aspect(self, box_aspect, container=None, fig_aspect=1.0)[source] -
Возвращает копию
Bbox, уменьшенную до желаемого соотношения сторон box_aspect. Если координаты области задания относительные (например, доли от большей области, например, фигуры), то физическое соотношение сторон этой фигуры указывается с помощью fig_aspect, так что box_aspect также может быть задано как отношение абсолютных размеров, а не относительных.
-
size -
Ширина и высота области задания.
-
splitx(self, *args)[source] -
Возвращает список новых
Bboxобъектов, полученных путём разделения исходной области вертикальными линиями в дробных позициях, заданных параметром args.
-
splity(self, *args)[source] -
Возвращает список новых
Bboxобъектов, полученных путём разделения исходной области горизонтальными линиями в дробных позициях, заданных параметром args.
-
transformed(self, transform)[source] -
Создаёт
Bboxпутём статического преобразования текущей области задания с помощью преобразования transform.
-
translated(self, tx, ty)[source] -
Создаёт
Bboxпутём смещения текущей области задания на tx и ty.
-
static union(bboxes)[source] -
Возвращает
Bbox, содержащую все переданные bboxes.
-
width -
Ширина области задания.
-
x0 -
Первая из пары x-координат, определяющих область задания.
Не гарантируется, что она меньше
x1(для этого используйтеxmin).
-
x1 -
Вторая из пары x-координат, определяющих область задания.
Не гарантируется, что она больше
x0(для этого используйтеxmax).
-
xmax -
Правый край области задания.
-
xmin -
Левый край области задания.
-
-
y1 -
Вторая из пары координат y, определяющих область обрезки.
Не гарантируется, что она будет больше, чем
y0(для этого используйтеymax).
-
ymax -
Верхняя граница области обрезки.
-
ymin -
Нижняя граница области обрезки.
-
-
class matplotlib.transforms.BboxTransform(boxin, boxout, **kwargs)[source] -
Базовые классы:
matplotlib.transforms.Affine2DBaseBboxTransformлинейно преобразует точки из однойBboxв другуюBbox.Создаёт новый
BboxTransform, который линейно преобразует точки из boxin в boxout.-
get_matrix(self)[source] -
Получение массива аффинного преобразования для аффинной части этого преобразования.
-
is_separable = True
-
-
class matplotlib.transforms.BboxTransformFrom(boxin, **kwargs)[source] -
Базовые классы:
matplotlib.transforms.Affine2DBaseBboxTransformFromлинейно преобразует точки из заданнойBboxв единичную область обрезки.-
get_matrix(self)[source] -
Получение массива аффинного преобразования для аффинной части этого преобразования.
-
is_separable = True
-
-
class matplotlib.transforms.BboxTransformTo(boxout, **kwargs)[source] -
Базовые классы:
matplotlib.transforms.Affine2DBaseBboxTransformTo— это преобразование, которое линейно преобразует точки из единичной области обрезки в заданнуюBbox.Создаёт новый
BboxTransformTo, который линейно преобразует точки из единичной области обрезки в boxout.-
get_matrix(self)[source] -
Получение массива аффинного преобразования для аффинной части этого преобразования.
-
is_separable = True
-
-
class matplotlib.transforms.BboxTransformToMaxOnly(boxout, **kwargs)[source] -
Базовые классы:
matplotlib.transforms.BboxTransformToBboxTransformTo— это преобразование, которое линейно преобразует точки из единичной области обрезки в заданнуюBboxс фиксированным верхним левым углом (0, 0).Создаёт новый
BboxTransformTo, который линейно преобразует точки из единичной области обрезки в boxout.-
get_matrix(self)[source] -
Получение массива аффинного преобразования для аффинной части этого преобразования.
-
-
class matplotlib.transforms.BlendedAffine2D(x_transform, y_transform, **kwargs)[source] -
Базовые классы:
matplotlib.transforms.Affine2DBaseПреобразование «смешанного» типа использует одно преобразование для оси x и другое для оси y.
Этот вариант — оптимизация для случая, когда оба дочерних преобразования являются экземплярами типа
Affine2DBase.Создаёт новое преобразование «смешанного» типа, используя x_transform для преобразования оси x и y_transform для преобразования оси y.
И x_transform, и y_transform должны быть аффинными 2D-преобразованиями.
Обычно вы не будете вызывать этот конструктор напрямую, а воспользуетесь функцией
blended_transform_factory(), которая автоматически определит, какой тип смешанного преобразования создать.-
contains_branch_seperately(self, transform)[source] -
Возвращает, является ли данный фрагмент поддеревом этого преобразования на каждой отдельной оси.
Распространённое использование этого метода — определение, является ли преобразование смешанным преобразованием, содержащим преобразование данных осей. Например:
x_isdata, y_isdata = trans.contains_branch_seperately(ax.transData)
-
get_matrix(self)[source] -
Получение массива аффинного преобразования для аффинной части этого преобразования.
-
is_separable = True
-
-
class matplotlib.transforms.BlendedGenericTransform(x_transform, y_transform, **kwargs)[source] -
Bases:
matplotlib.transforms.TransformA "blended" transform uses one transform for the x-direction, and another transform for the y-direction.
This "generic" version can handle any given child transform in the x- and y-directions.
Create a new "blended" transform using x_transform to transform the x-axis and y_transform to transform the y-axis.
You will generally not call this constructor directly but use the
blended_transform_factory()function instead, which can determine automatically which kind of blended transform to create.-
contains_branch(self, other)[source] -
Return whether the given transform is a sub-tree of this transform.
This routine uses transform equality to identify sub-trees, therefore in many situations it is object id which will be used.
For the case where the given transform represents the whole of this transform, returns True.
-
contains_branch_seperately(self, transform)[source] -
Returns whether the given branch is a sub-tree of this transform on each separate dimension.
A common use for this method is to identify if a transform is a blended transform containing an axes' data transform. e.g.:
x_isdata, y_isdata = trans.contains_branch_seperately(ax.transData)
-
depth -
Returns the number of transforms which have been chained together to form this Transform instance.
Примечание
В случае с композиционным преобразованием возвращается максимальная глубина из двух.
-
frozen(self)[source] -
Returns a frozen copy of this transform node. The frozen copy will not update when its children change. Useful for storing a previously known state of a transform where
copy.deepcopy()might normally be used.
-
get_affine(self)[source] -
Get the affine part of this transform.
-
has_inverse
-
input_dims = 2
-
inverted(self)[source] -
Return the corresponding inverse transformation.
The return value of this method should be treated as temporary. An update to self does not cause a corresponding update to its inverted copy.
x === self.inverted().transform(self.transform(x))
-
is_affine
-
is_separable = True
-
output_dims = 2
-
pass_through = True
-
transform_non_affine(self, points)[source] -
Performs only the non-affine part of the transformation.
transform(values)is always equivalent totransform_affine(transform_non_affine(values)).In non-affine transformations, this is generally equivalent to
transform(values). In affine transformations, this is always a no-op.Accepts a numpy array of shape (N x
input_dims) and returns a numpy array of shape (N xoutput_dims).Alternatively, accepts a numpy array of length
input_dimsand returns a numpy array of lengthoutput_dims.
-
-
class matplotlib.transforms.CompositeAffine2D(a, b, **kwargs)[source] -
Bases:
matplotlib.transforms.Affine2DBaseA composite transform formed by applying transform a then transform b.
This version is an optimization that handles the case where both a and b are 2D affines.
Create a new composite transform that is the result of applying transform a then transform b.
Both a and b must be instances of
Affine2DBase.You will generally not call this constructor directly but use the
composite_transform_factory()function instead, which can automatically choose the best kind of composite transform instance to create.-
depth -
Returns the number of transforms which have been chained together to form this Transform instance.
Примечание
В случае с композиционным преобразованием возвращается максимальная глубина из двух.
-
get_matrix(self)[source] -
Get the Affine transformation array for the affine part of this transform.
-
-
class matplotlib.transforms.CompositeGenericTransform(a, b, **kwargs)[source] -
Bases:
matplotlib.transforms.TransformСоставной преобразователь, образованный применением преобразования a, а затем преобразования b.
Этот «обобщённый» вариант может обрабатывать любые два произвольных преобразования.
Создаёт новый составной преобразователь, являющийся результатом применения преобразования a, а затем преобразования b.
Обычно вы не будете вызывать этот конструктор напрямую, а вместо этого используйте функцию
composite_transform_factory(), которая может автоматически выбрать лучший тип экземпляра составного преобразователя для создания.-
depth
-
frozen(self)[source] -
Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для хранения ранее известного состояния преобразования, где
copy.deepcopy()обычно использовалось бы.
-
get_affine(self)[source] -
Получает аффинную часть этого преобразования.
-
has_inverse
-
inverted(self)[source] -
Возвращает соответствующее обратное преобразование.
Результат работы этого метода следует рассматривать как временный. Обновление self не вызывает соответствующего обновления его инвертированной копии.
x === self.inverted().transform(self.transform(x))
-
is_affine
-
is_separable
-
pass_through = True
-
transform_affine(self, points)[source] -
Выполняет только аффинную часть этого преобразования над заданным массивом значений.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях, это обычно ничего не делает. В аффинных преобразованиях это эквивалентно
transform(values).Принимает массив NumPy формы (N x
input_dims) и возвращает массив NumPy формы (N xoutput_dims).В качестве альтернативы, принимает массив NumPy длиной
input_dimsи возвращает массив NumPy длинойoutput_dims.
-
transform_non_affine(self, points)[source] -
Выполняет только неаффинную часть преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях, это обычно эквивалентно
transform(values). В аффинных преобразованиях, это всегда ничего не делает.Принимает массив NumPy формы (N x
input_dims) и возвращает массив NumPy формы (N xoutput_dims).В качестве альтернативы, принимает массив NumPy длиной
input_dimsи возвращает массив NumPy длинойoutput_dims.
-
transform_path_non_affine(self, path)[source] -
Возвращает путь, преобразованный только неаффинной частью этого преобразования.
path: экземпляр
Path.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
-
-
class matplotlib.transforms.IdentityTransform(*args, **kwargs)[source] -
Основы:
matplotlib.transforms.Affine2DBaseСпециальный класс, выполняющий операцию тождественного преобразования быстрым способом.
-
frozen(self)[source] -
Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для хранения ранее известного состояния преобразования, где
copy.deepcopy()обычно может быть использован.
-
get_affine(self)[source] -
Получить аффинную часть этого преобразования.
-
get_matrix(self)[source] -
Получить массив аффинного преобразования для аффинной части этого преобразования.
-
inverted(self)[source] -
Возвращает соответствующее обратное преобразование.
Значение, возвращаемое этим методом, должно рассматриваться как временное. Обновление self не вызывает соответствующего обновления его инвертированной копии.
x === self.inverted().transform(self.transform(x))
-
transform(self, points)[source] -
Выполняет преобразование заданного массива значений.
Принимает массив NumPy формы (N x
input_dims) и возвращает массив NumPy формы (N xoutput_dims).В качестве альтернативы, принимает массив NumPy длины
input_dimsи возвращает массив NumPy длиныoutput_dims.
-
transform_affine(self, points)[source] -
Выполняет только аффинную часть этого преобразования над заданным массивом значений.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях, это обычно является пустой операцией. В аффинных преобразованиях это эквивалентно
transform(values).Принимает массив NumPy формы (N x
input_dims) и возвращает массив NumPy формы (N xoutput_dims).В качестве альтернативы, принимает массив NumPy длины
input_dimsи возвращает массив NumPy длиныoutput_dims.
-
transform_non_affine(self, points)[source] -
Выполняет только неаффинную часть преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это обычно эквивалентно
transform(values). В аффинных преобразованиях это всегда пустая операция.Принимает массив NumPy формы (N x
input_dims) и возвращает массив NumPy формы (N xoutput_dims).В качестве альтернативы, принимает массив NumPy длины
input_dimsи возвращает массив NumPy длиныoutput_dims.
-
transform_path(self, path)[source] -
Возвращает преобразованный путь.
path: экземпляр
Path.В некоторых случаях это преобразование может вставлять кривые в путь, который изначально представлял собой отрезки прямых.
-
transform_path_affine(self, path)[source] -
Возвращает путь, преобразованный только аффинной частью этого преобразования.
path: экземпляр
Path.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
-
transform_path_non_affine(self, path)[source] -
Возвращает путь, преобразованный только неаффинной частью этого преобразования.
path: экземпляр
Path.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
-
-
class matplotlib.transforms.LockableBbox(bbox, x0=None, y0=None, x1=None, y1=None, **kwargs)[source] -
Основы:
matplotlib.transforms.BboxBaseОбъект
Bbox, где некоторые элементы могут быть заблокированы на определённых значениях.При изменении дочернего прямоугольника области, границы этого прямоугольника будут обновляться соответственно, за исключением заблокированных элементов.
Параметры: -
bbox : Bbox -
Дочерний прямоугольник области для обертывания.
-
x0 : float or None -
Заблокированное значение для x0 или None, чтобы оставить незаблокированным.
-
y0 : float or None -
Заблокированное значение для y0 или None, чтобы оставить незаблокированным.
-
x1 : float or None -
Заблокированное значение для x1 или None, чтобы оставить незаблокированным.
-
y1 : float or None -
Заблокированное значение для y1 или None, чтобы оставить незаблокированным.
-
get_points(self)[source]
-
locked_x0 -
float или None: Значение, используемое для заблокированного x0.
-
locked_x1 -
float или None: Значение, используемое для заблокированного x1.
-
locked_y0 -
float или None: Значение, используемое для заблокированного y0.
-
locked_y1 -
float или None: Значение, используемое для заблокированного y1.
-
-
class matplotlib.transforms.ScaledTranslation(xt, yt, scale_trans, **kwargs)[source] -
Основы:
matplotlib.transforms.Affine2DBaseПреобразование, которое переводит на xt и yt после того, как xt и yt были преобразованы scale_trans.
-
get_matrix(self)[source] -
Получить массив аффинного преобразования для аффинной части этого преобразования.
-
-
class matplotlib.transforms.Transform(shorthand_name=None)[source] -
Bases:
matplotlib.transforms.TransformNodeБазовый класс всех экземпляров
TransformNode, которые фактически выполняют преобразование.Все неаффинные преобразования должны быть подклассами этого класса. Новые аффинные преобразования должны быть подклассами
Affine2D.Подклассы этого класса должны переопределять следующие члены (как минимум):
input_dimsoutput_dimstransform()is_separablehas_inverse-
inverted()(еслиhas_inverseравно True)
Если преобразование должно выполнять нестандартные действия с объектами
matplotlib.path.Path, например, добавлять кривые там, где раньше были отрезки прямых, оно должно переопределить:Создает новый
TransformNode.Parameters: -
shorthand_name : str -
Строка, представляющая «имя» преобразования. Имя не имеет никакого значения, кроме улучшения удобочитаемости
str(transform)при DEBUG=True.
-
contains_branch(self, other)[source] -
Возвращает, является ли данное преобразование поддеревом этого преобразования.
Эта функция использует равенство преобразований для идентификации поддеревьев, поэтому во многих ситуациях будет использоваться идентификатор объекта.
В случае, когда данное преобразование представляет собой все это преобразование, возвращает True.
-
contains_branch_seperately(self, other_transform)[source] -
Возвращает, является ли заданная ветвь поддеревом этого преобразования на каждой отдельной размерности.
Общее применение этого метода — идентифицировать, является ли преобразование комбинированным преобразованием, содержащим преобразование данных осей. Например:
x_isdata, y_isdata = trans.contains_branch_seperately(ax.transData)
-
depth -
Возвращает количество преобразований, которые были объединены для создания этого экземпляра Transform.
Примечание
В особом случае преобразования Composite возвращается максимальная глубина двух преобразований.
-
get_affine(self)[source] -
Получить аффинную часть этого преобразования.
-
get_matrix(self)[source] -
Получить массив аффинного преобразования для аффинной части этого преобразования.
-
has_inverse = False -
True, если у этого преобразования есть соответствующее обратное преобразование.
-
input_dims = None -
Число входных размерностей этого преобразования. Должно быть переопределено (целыми числами) в подклассе.
-
inverted(self)[source] -
Возвращает соответствующее обратное преобразование.
Результат этой функции следует рассматривать как временный. Обновление self не приводит к соответствующему обновлению его инвертированной копии.
x === self.inverted().transform(self.transform(x))
-
is_separable = False -
True, если это преобразование разделяемо по x- и y-размерностям.
-
output_dims = None -
Число выходных размерностей этого преобразования. Должно быть переопределено (целыми числами) в подклассе.
-
transform(self, values)[source] -
Выполняет преобразование заданного массива значений.
Принимает массив NumPy формы (N x
input_dims) и возвращает массив NumPy формы (N xoutput_dims).В качестве альтернативы принимает массив NumPy длиной
input_dimsи возвращает массив NumPy длинойoutput_dims.
-
transform_affine(self, values)[source] -
Выполняет только аффинную часть этого преобразования на заданном массиве значений.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это, как правило, бесполезно. В аффинных преобразованиях это эквивалентно
transform(values).Принимает массив NumPy формы (N x
input_dims) и возвращает массив NumPy формы (N xoutput_dims).В качестве альтернативы принимает массив NumPy длиной
input_dimsи возвращает массив NumPy длинойoutput_dims.
-
transform_angles(self, angles, pts, radians=False, pushoff=1e-05)[source] -
Преобразует набор углов, закрепленных в определенных местах.
Parameters: -
angles : (N,) array-like -
Углы для преобразования.
-
pts : (N, 2) array-like -
Точки, где закреплены углы.
-
radians : bool, default: False -
Являются ли angles радианами или градусами.
-
pushoff : float -
Для каждой точки в pts и угла в angles преобразованный угол вычисляется путем преобразования отрезка длиной pushoff, начинающегося в этой точке и образующего этот угол относительно горизонтальной оси, и измерения угла между горизонтальной осью и преобразованным отрезком.
Returns: -
transformed_angles : (N,) array
-
-
transform_bbox(self, bbox)[source] -
Преобразует заданную область.
Обратите внимание, для более интеллектуальных преобразований, включая кэширование (частая необходимость для matplotlib-рисунков), см.
TransformedBbox.
-
transform_non_affine(self, values)[source] -
Выполняет только неаффинную часть преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это, как правило, эквивалентно
transform(values). В аффинных преобразованиях это всегда неработающая операция.Принимает массив NumPy формы (N x
input_dims) и возвращает массив NumPy формы (N xoutput_dims).В качестве альтернативы, принимает массив NumPy длины
input_dimsи возвращает массив NumPy длиныoutput_dims.
-
transform_path(self, path)[source] -
Возвращает преобразованный путь.
path: экземпляр
Path.В некоторых случаях это преобразование может вставлять кривые в путь, который изначально представлял собой отрезки прямых.
-
transform_path_affine(self, path)[source] -
Возвращает путь, преобразованный только аффинной частью этого преобразования.
path: экземпляр
Path.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
-
transform_path_non_affine(self, path)[source] -
Возвращает путь, преобразованный только неаффинной частью этого преобразования.
path: экземпляр
Path.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
-
transform_point(self, point)[source] -
Удобная функция, которая возвращает преобразованную копию одной точки.
Точка задается как последовательность длины
input_dims. Преобразованная точка возвращается как последовательность длиныoutput_dims.
-
-
class matplotlib.transforms.TransformNode(shorthand_name=None)[source] -
Bases:
objectTransformNode— базовый класс для всего, что участвует в дереве преобразований и должно инвалидировать своих родителей или быть инвалидированным. Это включает классы, которые на самом деле не являются преобразованиями, такие как рамки, так как некоторые преобразования зависят от рамок для вычисления своих значений.Создаёт новый
TransformNode.Parameters: -
shorthand_name : str -
Строка, представляющая «имя» преобразования. Имя не имеет значения, кроме улучшения читаемости
str(transform)при DEBUG=True.
-
INVALID = 3
-
INVALID_AFFINE = 2
-
INVALID_NON_AFFINE = 1
-
frozen(self)[source] -
Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для хранения ранее известного состояния преобразования, где
copy.deepcopy()обычно используется.
-
invalidate(self)[source] -
Инвалидирует этот
TransformNodeи запускает инвалидацию его предков. Следует вызывать всякий раз, когда преобразование изменяется.
-
is_affine = False
-
is_bbox = False
-
pass_through = False -
Если pass_through равно True, все предки всегда будут инвалидированы, даже если «self» уже недействителен.
-
set_children(self, *children)[source] -
Устанавливает дочерние элементы преобразования, чтобы система инвалидации знала, какие преобразования могут инвалидировать это преобразование. Следует вызывать из конструктора любых преобразований, которые зависят от других преобразований.
-
-
class matplotlib.transforms.TransformWrapper(child)[source] -
Bases:
matplotlib.transforms.TransformВспомогательный класс, который содержит одно дочернее преобразование и действует аналогично ему.
Это полезно, если узел дерева преобразований должен быть заменён во время выполнения преобразованием другого типа. Этот класс позволяет правильно инициировать эту замену.
Обратите внимание, что экземпляры
TransformWrapperдолжны иметь одинаковые входные и выходные измерения на протяжении всего своего жизненного цикла, поэтому дочернее преобразование может быть заменено только другим дочерним преобразованием с теми же измерениями.child: экземпляр класса
Transform. Позже этот дочерний элемент можно заменить с помощьюset().-
frozen(self)[source] -
Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для хранения ранее известного состояния преобразования, где
copy.deepcopy()обычно используется.
-
has_inverse
-
is_affine
-
is_separable
-
pass_through = True
-
set(self, child)[source] -
Заменить текущее дочернее преобразование другим.
Новое дочернее преобразование должно иметь то же количество входных и выходных измерений, что и текущее.
-
-
class matplotlib.transforms.TransformedBbox(bbox, transform, **kwargs)[source] -
Основы:
matplotlib.transforms.BboxBaseОбъект
Bbox, автоматически преобразуемый заданным преобразованием. При изменении дочернего прямоугольника или преобразования границы этого прямоугольника будут обновляться соответственно.Параметры: -
bbox : Bbox -
transform : Transform
-
get_points(self)[source]
-
-
class matplotlib.transforms.TransformedPatchPath(patch)[source] -
Основы:
matplotlib.transforms.TransformedPathКласс
TransformedPatchPathкэширует неаффинное преобразованное копиюPatch. Эта кэшированная копия автоматически обновляется при изменении неаффинной части преобразования или области.Создает новый объект
TransformedPatchPathиз заданногоPatch.
-
class matplotlib.transforms.TransformedPath(path, transform)[source] -
Основы:
matplotlib.transforms.TransformNodeКласс
TransformedPathкэширует неаффинное преобразованное копиюPath. Эта кэшированная копия автоматически обновляется при изменении неаффинной части преобразования.Примечание
Пути считаются неизменяемыми этим классом. Любое обновление вершин/кодов пути не вызовет повторного вычисления преобразования.
Создает новый объект
TransformedPathиз заданногоPathиTransform.-
get_affine(self)[source]
-
get_fully_transformed_path(self)[source] -
Возвращает полностью преобразованную копию дочернего пути.
-
get_transformed_path_and_affine(self)[source] -
Возвращает копию дочернего пути, с уже применённой неаффинной частью преобразования, вместе с аффинной частью пути, необходимой для завершения преобразования.
-
get_transformed_points_and_affine(self)[source] -
Возвращает копию дочернего пути, с уже применённой неаффинной частью преобразования, вместе с аффинной частью пути, необходимой для завершения преобразования. В отличие от
get_transformed_path_and_affine(), интерполяция не будет выполнена.
-
-
matplotlib.transforms.blended_transform_factory(x_transform, y_transform)[source] -
Создает новое "смешанное" преобразование, используя x_transform для преобразования оси x и y_transform для преобразования оси y.
Возвращается более быстрая версия смешанного преобразования для случая, когда оба дочерних преобразования являются аффинными.
-
matplotlib.transforms.composite_transform_factory(a, b)[source] -
Создает новое составное преобразование, являющееся результатом применения преобразования a, а затем преобразования b.
Для случаев, когда оба дочерних преобразования аффинные, или одно или другое является тождественным преобразованием, предоставляются сокращённые версии смешанного преобразования.
Составные преобразования также могут быть созданы с помощью оператора '+', например:
c = a + b
-
matplotlib.transforms.interval_contains(interval, val)[source] -
Проверяет, содержит ли интервал заданное значение (включительно).
Параметры: -
interval : sequence of scalar -
Последовательность длиной 2, точки, определяющие интервал.
-
val : scalar -
Значение, которое нужно проверить на принадлежность интервалу.
Возвращает: - bool
-
Возвращает True, если заданное val находится внутри interval.
-
-
matplotlib.transforms.interval_contains_open(interval, val)[source] -
Проверяет, содержит ли интервал заданное значение (исключая концы).
Параметры: -
interval : sequence of scalar -
Последовательность длиной 2, точки, определяющие интервал.
-
val : scalar -
Значение, которое нужно проверить на принадлежность интервалу.
Возвращает: - bool
-
Возвращает true, если данное val находится в интервале.
-
-
matplotlib.transforms.nonsingular(vmin, vmax, expander=0.001, tiny=1e-15, increasing=True)[source] -
Изменяет конечные точки диапазона по необходимости, чтобы избежать особенностей.
Параметры: -
vmin, vmax : float -
Начальные конечные точки.
-
expander : float, optional, default: 0.001 -
Доля, на которую vmin и vmax расширяются, если исходный интервал слишком мал, на основе tiny.
-
tiny : float, optional, default: 1e-15 -
Порог для отношения интервала к максимальному абсолютному значению его конечных точек. Если интервал меньше этого значения, он будет расширен. Это значение должно быть около 1e-15 или больше; в противном случае интервал будет приближаться к пределу разрешения двойной точности.
-
increasing : bool, optional, default: True -
Если True, меняет местами vmin, vmax, если vmin > vmax.
Возвращает: -
vmin, vmax : float -
Конечные точки, расширенные и/или поменяв местами при необходимости. Если любой из входов равен inf или NaN, или если оба входа равны 0 или очень близки к нулю, возвращается -expander, expander.
-
-
matplotlib.transforms.offset_copy(trans, fig=None, x=0.0, y=0.0, units='inches')[source] -
Возвращает новый преобразователь с добавленным смещением.
Параметры: -
trans : Transform instance -
Любой преобразователь, к которому будет применено смещение.
-
fig : Figure, optional, default: None -
Текущая фигура. Может быть None, если единицы равны 'точки'.
-
x, y : float, optional, default: 0.0 -
Указывает смещение, которое нужно применить.
-
units : {'inches', 'points', 'dots'}, optional -
Единицы смещения.
Возвращаемое значение: -
trans : Transform instance -
Преобразователь со применённым смещением.
-
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.1.1/api/transformations.html