matplotlib.transforms
Matplotlib включает платформу для произвольных геометрических преобразований, которая используется для определения конечного положения всех элементов, отображаемых на холсте.
Преобразования объединяются в деревья объектов TransformNode, фактическое значение которых зависит от дочерних узлов. При изменении содержимого дочерних узлов их родительские узлы автоматически помечаются как недействительные. При следующем обращении к преобразованию, помеченному как недействительное, оно пересчитывается с учётом этих изменений. Такой подход с пометкой недействительности и кэшированием предотвращает ненужные пересчёты преобразований и повышает интерактивную производительность.
Например, ниже представлена диаграмма дерева преобразований, используемого для отображения данных на рисунке:
Эту платформу можно использовать как для аффинных, так и для неаффинных преобразований. Однако для повышения скорости мы хотим по возможности использовать средства визуализации бэкенда для выполнения аффинных преобразований. Поэтому можно выполнять над набором данных только аффинную или неаффинную часть преобразования. Всегда предполагается, что аффинная часть выполняется после неаффинной. Для любого преобразования:
full transform == non-affine part + affine part
Бэкенды не должны выполнять неаффинные преобразования самостоятельно.
Примеры использования преобразований см. в руководстве Руководство по преобразованиям.
- classmatplotlib.transforms.Affine2D(matrix=None, **kwargs)[исходный код]
-
Базовые классы:
Affine2DBaseИзменяемое двумерное аффинное преобразование.
Инициализируйте аффинное преобразование из массива numpy с плавающей точкой размером 3x3:
a c e b d f 0 0 1
Если matrix равно None, преобразование инициализируется как тождественное.
- clear()[исходный код]
-
Сбросить базовую матрицу до тождественного преобразования.
- staticfrom_values(a, b, c, d, e, f)[исходный код]
-
Создать новый экземпляр Affine2D из заданных значений:
a c e b d f 0 0 1
.
- get_matrix()[исходный код]
-
Получить базовую матрицу преобразования в виде массива 3x3:
a c e b d f 0 0 1
.
- rotate(theta)[исходный код]
-
Добавить к этому преобразованию поворот (в радианах) на месте.
Возвращает self, поэтому этот метод удобно объединять в цепочку с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
- rotate_around(x, y, theta)[исходный код]
-
Добавить поворот (в радианах) вокруг точки (x, y) на месте.
Возвращает self, поэтому этот метод удобно объединять в цепочку с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
- rotate_deg(degrees)[исходный код]
-
Добавить к этому преобразованию поворот (в градусах) на месте.
Возвращает self, поэтому этот метод удобно объединять в цепочку с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
- rotate_deg_around(x, y, degrees)[исходный код]
-
Добавить поворот (в градусах) вокруг точки (x, y) на месте.
Возвращает self, поэтому этот метод удобно объединять в цепочку с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
- scale(sx, sy=None)[исходный код]
-
Добавить масштабирование на месте.
Если sy равно None, в направлениях x и y применяется одинаковый масштаб.
Возвращает self, поэтому этот метод удобно объединять в цепочку с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
- set(other)[исходный код]
-
Установить это преобразование по замороженной копии другого объекта
Affine2DBase.
- set_matrix(mtx)[исходный код]
-
Установить базовую матрицу преобразования из массива 3x3:
a c e b d f 0 0 1
.
- skew(xShear, yShear)[исходный код]
-
Добавить сдвиг на месте.
xShear и yShear — углы сдвига вдоль осей x и y соответственно, выраженные в радианах.
Возвращает self, поэтому этот метод удобно объединять в цепочку с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
- skew_deg(xShear, yShear)[исходный код]
-
Добавить сдвиг на месте.
xShear и yShear — углы сдвига вдоль осей x и y соответственно, выраженные в градусах.
Возвращает self, поэтому этот метод удобно объединять в цепочку с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
- translate(tx, ty)[исходный код]
-
Добавить перенос на месте.
Возвращает self, поэтому этот метод удобно объединять в цепочку с дополнительными вызовами
rotate(),rotate_deg(),translate()иscale().
- classmatplotlib.transforms.Affine2DBase(*args, **kwargs)[исходный код]
-
Базовые классы:
AffineBaseБазовый класс всех двумерных аффинных преобразований.
Двумерные аффинные преобразования выполняются с помощью массива numpy размером 3x3:
a c e b d f 0 0 1
Этот класс предоставляет интерфейс только для чтения. Для изменяемого двумерного аффинного преобразования используйте
Affine2D.Подклассам этого класса обычно достаточно переопределить конструктор и
get_matrix, формирующий пользовательскую матрицу 3x3.- Параметры:
-
- shorthand_namestr
-
Строка, представляющая «имя» преобразования. Имя не имеет иного значения, кроме повышения читаемости
str(transform)при DEBUG=True.
- frozen()[исходный код]
-
Вернуть замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении дочерних узлов. Полезно для сохранения ранее известного состояния преобразования, где обычно мог бы использоваться
copy.deepcopy().
- has_inverse=True
-
True, если для этого преобразования существует обратное преобразование.
- input_dims=2
-
Количество входных измерений этого преобразования. В подклассе это значение необходимо переопределить (целым числом).
- inverted()[исходный код]
-
Вернуть соответствующее обратное преобразование.
Выполняется
x == self.inverted().transform(self.transform(x)).Возвращаемое этим методом значение следует считать временным. Изменение self не приводит к соответствующему обновлению его обратной копии.
- propertyis_separable
-
Возвращает True, если аргумент имеет значение True, и False в противном случае. Встроенные значения True и False являются единственными двумя экземплярами класса bool. Класс bool является подклассом класса int, и создавать его подклассы нельзя.
- output_dims=2
-
Количество выходных измерений этого преобразования. В подклассе это значение необходимо переопределить (целым числом).
- to_values()[исходный код]
-
Вернуть значения матрицы в виде кортежа
(a, b, c, d, e, f).
- transform_affine(values)[исходный код]
-
Применить к заданному массиву значений только аффинную часть этого преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).Для неаффинных преобразований эта операция обычно ничего не делает. Для аффинных преобразований она эквивалентна
transform(values).- Параметры:
-
- valuesarray
-
Входные значения в виде массива длины
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длины
output_dimsили формы (N,output_dims) в зависимости от входных данных.
- classmatplotlib.transforms.AffineBase(*args, **kwargs)[исходный код]
-
Базовые классы:
TransformБазовый класс всех аффинных преобразований любого числа измерений.
- Параметры:
-
- shorthand_namestr
-
Строка, представляющая «имя» преобразования. Это имя не имеет иного значения, кроме повышения читаемости
str(transform)при DEBUG=True.
- get_affine()[исходный код]
-
Получить аффинную часть этого преобразования.
- is_affine=True
- transform(values)[исходный код]
-
Применить это преобразование к заданному массиву values.
- Параметры:
-
- valuesarray-like
-
Входные значения в виде массива длины
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длины
output_dimsили формы (N,output_dims), в зависимости от входных данных.
- transform_affine(values)[исходный код]
-
Применить только аффинную часть этого преобразования к заданному массиву значений.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).Для неаффинных преобразований это, как правило, ничего не делает. Для аффинных преобразований это эквивалентно
transform(values).- Параметры:
-
- valuesarray
-
Входные значения в виде массива длины
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длины
output_dimsили формы (N,output_dims), в зависимости от входных данных.
- transform_non_affine(values)[исходный код]
-
Применить только неаффинную часть этого преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).Для неаффинных преобразований это, как правило, эквивалентно
transform(values). Для аффинных преобразований это всегда ничего не делает.- Параметры:
-
- valuesarray
-
Входные значения в виде массива длины
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длины
output_dimsили формы (N,output_dims), в зависимости от входных данных.
- transform_path(path)[исходный код]
-
Применить преобразование к
Pathpath и вернуть новыйPath.В некоторых случаях это преобразование может добавлять в путь кривые, исходно представленные отрезками прямых.
- classmatplotlib.transforms.AffineDeltaTransform(transform, **kwargs)[исходный код]
-
Базовые классы:
Affine2DBaseОбёртка преобразования для преобразования смещений между парами точек.
Этот класс предназначен для преобразования смещений («дельт положения») между парами точек (например, в качестве
offset_transformуCollection): для преобразованияt, такого чтоt = AffineDeltaTransform(t) + offset, преобразованиеAffineDeltaTransformудовлетворяет условиюAffineDeltaTransform(a - b) == AffineDeltaTransform(a) - AffineDeltaTransform(b).Это реализовано обнулением компонентов смещения в матрице преобразования.
Этот класс является экспериментальным начиная с версии 3.3, API может измениться.
- Параметры:
-
- shorthand_namestr
-
Строка, представляющая «имя» преобразования. Это имя не имеет иного значения, кроме повышения читаемости
str(transform)при DEBUG=True.
- get_matrix()[исходный код]
-
Получить матрицу аффинной части этого преобразования.
- pass_through=True
-
Если pass_through равно True, все родительские элементы всегда будут признаны недействительными, даже если «self» уже недействителен.
- classmatplotlib.transforms.Bbox(points, **kwargs)[исходный код]
-
Базовые классы:
BboxBaseИзменяемая ограничивающая рамка.
Примеры
Создание по известным границам
Конструктор по умолчанию принимает граничные «точки»
[[xmin, ymin], [xmax, ymax]].>>> Bbox([[1, 1], [3, 7]]) Bbox([[1.0, 1.0], [3.0, 7.0]])
Кроме того, Bbox можно создать из массива точек, преобразованного в одномерный массив, так называемых «экстентов»
(xmin, ymin, xmax, ymax)>>> Bbox.from_extents(1, 1, 3, 7) Bbox([[1.0, 1.0], [3.0, 7.0]])
или из «границ»
(xmin, ymin, width, height).>>> Bbox.from_bounds(1, 1, 2, 6) Bbox([[1.0, 1.0], [3.0, 7.0]])
Создание из коллекций точек
«Пустым» объектом для накопления Bbox служит нулевая ограничивающая рамка — заменитель пустого множества.
>>> Bbox.null() Bbox([[inf, inf], [-inf, -inf]])
Добавление точек в нулевую ограничивающую рамку задаст ограничивающую рамку для этих точек.
>>> box = Bbox.null() >>> box.update_from_data_xy([[1, 1]]) >>> box Bbox([[1.0, 1.0], [1.0, 1.0]]) >>> box.update_from_data_xy([[2, 3], [3, 2]], ignore=False) >>> box Bbox([[1.0, 1.0], [3.0, 3.0]])
Установка
ignore=Trueравносильна созданию новой нулевой ограничивающей рамки.>>> box.update_from_data_xy([[1, 1]], ignore=True) >>> box Bbox([[1.0, 1.0], [1.0, 1.0]])
Предупреждение
Рекомендуется всегда явно задавать
ignore. В противном случае значениеignoreпо умолчанию может быть изменено в любой момент кодом, имеющим доступ к вашей Bbox, например с помощью методаignore.Свойства «нулевой» ограничивающей рамки
Примечание
Текущее поведение
Bbox.null()может показаться неожиданным: оно не обладает всеми свойствами «пустого множества» и поэтому не ведёт себя как «нулевой» объект в математическом смысле. В будущем мы можем изменить это поведение (с предварительным периодом отказа от поддержки).Нулевая ограничивающая рамка является нейтральным элементом для пересечений
>>> Bbox.intersection(Bbox([[1, 1], [3, 7]]), Bbox.null()) Bbox([[1.0, 1.0], [3.0, 7.0]])
за исключением пересечения с самой собой, которое возвращает всё пространство.
>>> Bbox.intersection(Bbox.null(), Bbox.null()) Bbox([[-inf, -inf], [inf, inf]])
Объединение, содержащее нулевую ограничивающую рамку, всегда возвращает всё пространство (а не другое множество!)
>>> Bbox.union([Bbox([[0, 0], [0, 0]]), Bbox.null()]) Bbox([[-inf, -inf], [inf, inf]])
- Параметры:
-
-
points
ndarray -
Массив формы (2, 2) вида
[[x0, y0], [x1, y1]].
-
points
- staticfrom_bounds(x0, y0, width, height)[исходный код]
-
Создаёт новую
Bboxпо значениям x0, y0, width и height.width и height могут быть отрицательными.
- staticfrom_extents(*args, minpos=None)[исходный код]
-
Создаёт новую Bbox по значениям left, bottom, right и top.
Ось y направлена вверх.
- Параметры:
-
- left, bottom, right, topfloat
-
Четыре границы ограничивающей рамки.
- minposfloat или None
-
Если это значение задано, для Bbox будет установлено минимальное положительное значение. Это полезно при работе с логарифмическими и другими шкалами, в которых отрицательные границы приводят к ошибкам округления с плавающей точкой.
- frozen()[исходный код]
-
Базовый класс для всех объектов, участвующих в дереве преобразований и которым необходимо инвалидировать родительские объекты или подвергаться инвалидации. К ним относятся и классы, которые на самом деле не являются преобразованиями, например ограничивающие рамки, поскольку некоторые преобразования зависят от ограничивающих рамок при вычислении своих значений.
- get_points()[исходный код]
-
Возвращает точки ограничивающей рамки в виде массива формы
[[x0, y0], [x1, y1]].
- ignore(value)[исходный код]
-
Задаёт, следует ли игнорировать существующие границы рамки при последующих вызовах
update_from_data_xy().- valuebool
-
- Если
True, последующие вызовыupdate_from_data_xyбудут игнорировать существующие границыBbox. - Если
False, последующие вызовыupdate_from_data_xyбудут учитывать существующие границыBbox.
- Если
- propertyintervalx
-
Пара координат x, определяющих ограничивающую рамку.
Не гарантируется, что значения отсортированы слева направо.
- propertyintervaly
-
Пара координат y, определяющих ограничивающую рамку.
Не гарантируется, что значения отсортированы снизу вверх.
- propertyminpos
-
Минимальное положительное значение в обоих направлениях внутри Bbox.
Это полезно при работе с логарифмическими и другими шкалами, в которых отрицательные границы приводят к ошибкам округления с плавающей точкой; оно будет использоваться в качестве минимального экстента вместо p0.
- propertyminposx
-
Минимальное положительное значение в направлении x внутри Bbox.
Это полезно при работе с логарифмическими и другими шкалами, в которых отрицательные границы приводят к ошибкам округления с плавающей точкой; оно будет использоваться в качестве минимального экстента x вместо x0.
- propertyminposy
-
Минимальное положительное значение в направлении y внутри Bbox.
Это полезно при работе с логарифмическими и другими шкалами, в которых отрицательные границы приводят к ошибкам округления с плавающей точкой; оно будет использоваться в качестве минимального экстента y вместо y0.
- mutated()[исходный код]
-
Возвращает, изменялась ли ограничивающая рамка с момента инициализации.
- mutatedx()[исходный код]
-
Возвращает, изменились ли пределы x с момента инициализации.
- mutatedy()[исходный код]
-
Возвращает, изменились ли пределы y с момента инициализации.
- staticnull()[исходный код]
-
Создаёт новую нулевую
Bboxот (inf, inf) до (-inf, -inf).
- propertyp0
-
Первая пара координат (x, y), определяющих ограничивающую рамку.
Не гарантируется, что это нижний левый угол (для этого используйте
min).
- propertyp1
-
Вторая пара координат (x, y), определяющих ограничивающую рамку.
Не гарантируется, что это верхний правый угол (для этого используйте
max).
- set(other)[исходный код]
-
Задаёт эту ограничивающую рамку по «зафиксированным» границам другой
Bbox.
- set_points(points)[исходный код]
-
Задаёт точки ограничивающей рамки напрямую из массива формы
[[x0, y0], [x1, y1]]. Проверка ошибок не выполняется, поскольку этот метод предназначен в основном для внутреннего использования.
- staticunit()[исходный код]
-
Создаёт новую единичную
Bboxот (0, 0) до (1, 1).
- update_from_data_x(x, ignore=None)[исходный код]
-
Обновляет границы x объекта
Bboxна основе переданных данных. После обновления ширина границ будет положительной, а x0 будет минимальным значением.
- update_from_data_xy(xy, ignore=None, updatex=True, updatey=True)[исходный код]
-
Обновляет границы
Bboxна основе переданных координат xy.После обновления ширина и высота границ будут положительными; x0 и y0 будут минимальными значениями.
- Параметры:
-
- xyмассивоподобный объект формы (N, 2)
-
Координаты (x, y).
- ignorebool, необязательный
- updatex, updateybool, по умолчанию: True
-
Если
True, обновить значения x/y.
- update_from_data_y(y, ignore=None)[исходный код]
-
Обновляет границы y объекта
Bboxна основе переданных данных. После обновления высота границ будет положительной, а y0 будет минимальным значением.
- update_from_path(path, ignore=None, updatex=True, updatey=True)[исходный код]
-
Обновляет границы
Bboxтак, чтобы они охватывали вершины заданного пути. После обновления ширина и высота границ будут положительными; x0 и y0 будут минимальными значениями.
- propertyx0
-
Первая координата x из пары, определяющей ограничивающую рамку.
Не гарантируется, что она меньше
x1(для этого используйтеxmin).
- propertyx1
-
Вторая координата x из пары, определяющей ограничивающую рамку.
Не гарантируется, что она больше
x0(для этого используйтеxmax).
- propertyy0
-
Первая координата y из пары, определяющей ограничивающую рамку.
Не гарантируется, что она меньше
y1(для этого используйтеymin).
- propertyy1
-
Вторая координата y из пары, определяющей ограничивающую рамку.
Не гарантируется, что она больше
y0(для этого используйтеymax).
- classmatplotlib.transforms.BboxBase(shorthand_name=None)[исходный код]
-
Базовые классы:
TransformNodeБазовый класс всех ограничивающих рамок.
Этот класс неизменяемый;
Bbox— изменяемый подкласс.Каноническое представление состоит из двух точек, порядок которых не ограничен. Для удобства предоставляются свойства, позволяющие получить левую, нижнюю, правую и верхнюю границы, а также ширину и высоту, однако эти значения явно не хранятся.
- Параметры:
-
- shorthand_namestr
-
Строка, представляющая «имя» преобразования. Имя не имеет другого значения, кроме повышения читаемости
str(transform)при DEBUG=True.
- anchored(c, container)[исходный код]
-
Возвращает копию
Bbox, привязанную к c внутри container.- Параметры:
-
- c(float, float) or {'C', 'SW', 'S', 'SE', 'E', 'NE', ...}
-
Либо пара (x, y) относительных координат (0 — слева или снизу, 1 — справа или сверху), либо 'C' (центр), либо одно из сторон света ('SW', юго-запад, — нижний левый угол и т. д.).
-
container
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(x, y)[исходный код]
-
Возвращает, находится ли
(x, y)внутри ограничивающей рамки или на её границе.
- corners()[исходный код]
-
Возвращает углы этого прямоугольника в виде массива точек.
В частности, возвращается массив
[[x0, y0], [x0, y1], [x1, y0], [x1, y1]].
- count_contains(vertices)[исходный код]
-
Подсчитывает количество вершин, находящихся внутри
Bbox. Вершины с бесконечным или неопределённым значением x или y игнорируются.- Параметры:
-
- vertices(N, 2) array
- count_overlaps(bboxes)[исходный код]
-
Подсчитывает количество ограничивающих рамок, пересекающихся с этой рамкой.
- Параметры:
-
-
bboxesпоследовательность объектов
BboxBase
-
bboxesпоследовательность объектов
- expanded(sw, sh)[исходный код]
-
Создаёт
Bbox, расширяя эту рамку относительно её центра в sw и sh раз.
- frozen()[исходный код]
-
Базовый класс для объектов, участвующих в дереве преобразований и которым необходимо инвалидировать родительские объекты или быть инвалидированными. К ним относятся классы, которые на самом деле не являются преобразованиями, например ограничивающие рамки, поскольку некоторые преобразования зависят от ограничивающих рамок при вычислении своих значений.
- fully_contains(x, y)[исходный код]
-
Возвращает, находится ли
x, yвнутри ограничивающей рамки, но не на её границе.
- fully_overlaps(other)[исходный код]
-
Возвращает, пересекается ли эта ограничивающая рамка с другой, не включая границы.
- Параметры:
-
-
other
BboxBase
-
other
- get_points()[исходный код]
- propertyheight
-
Знаковая высота ограничивающей рамки.
- staticintersection(bbox1, bbox2)[исходный код]
-
Возвращает пересечение bbox1 и bbox2, если они пересекаются, или None, если нет.
- propertyintervalx
-
Пара координат x, задающих ограничивающую рамку.
Порядок координат слева направо не гарантируется.
- propertyintervaly
-
Пара координат y, задающих ограничивающую рамку.
Порядок координат снизу вверх не гарантируется.
- is_affine=True
- is_bbox=True
- propertymax
-
Верхний правый угол ограничивающей рамки.
- propertymin
-
Нижний левый угол ограничивающей рамки.
- overlaps(other)[исходный код]
-
Возвращает, пересекается ли эта ограничивающая рамка с другой.
- Параметры:
-
-
other
BboxBase
-
other
- propertyp0
-
Первая пара координат (x, y), задающих ограничивающую рамку.
Не гарантируется, что это нижний левый угол (для его получения используйте
min).
- propertyp1
-
Вторая пара координат (x, y), задающих ограничивающую рамку.
Не гарантируется, что это верхний правый угол (для его получения используйте
max).
- padded(w_pad, h_pad=None)[исходный код]
-
Создаёт
Bbox, добавляя отступ со всех четырёх сторон.- Параметры:
-
- w_padfloat
-
Отступ по ширине
- h_padfloat, optional
-
Отступ по высоте. По умолчанию равен w_pad.
- rotated(radians)[исходный код]
-
Возвращает ограничивающую рамку, выровненную по осям и охватывающую результат поворота этой
Bboxна угол radians.
- shrunk(mx, my)[исходный код]
-
Возвращает копию
Bbox, уменьшенную в mx раз по направлению x и в my раз по направлению y. Нижний левый угол рамки остаётся неизменным. Обычно mx и my меньше 1, но это не является обязательным условием.
- shrunk_to_aspect(box_aspect, container=None, fig_aspect=1.0)[исходный код]
-
Возвращает копию
Bbox, уменьшенную настолько, чтобы она была максимально большой при заданном соотношении сторон box_aspect. Если координаты рамки относительные (то есть являются долями большей рамки, например рисунка), физическое соотношение сторон этого рисунка задаётся параметром fig_aspect, поэтому box_aspect также можно задать как отношение абсолютных размеров, а не относительных.
- propertysize
-
Знаковые ширина и высота ограничивающей рамки.
- splitx(*args)[исходный код]
-
Возвращает список новых объектов
Bbox, полученных разделением исходной рамки вертикальными линиями в дробных позициях, заданных аргументами args.
- splity(*args)[исходный код]
-
Возвращает список новых объектов
Bbox, полученных разделением исходной рамки горизонтальными линиями в дробных позициях, заданных аргументами args.
- transformed(transform)[исходный код]
-
Создаёт
Bbox, статически преобразуя эту рамку с помощью transform.
- translated(tx, ty)[исходный код]
-
Создаёт
Bbox, смещая эту рамку на tx и ty.
- staticunion(bboxes)[исходный код]
-
Возвращает
Bbox, содержащую все заданные объекты bboxes.
- propertywidth
-
Знаковая ширина ограничивающей рамки.
- propertyx0
-
Первая из пары координат x, задающих ограничивающую рамку.
Не гарантируется, что это значение меньше
x1(для получения меньшего значения используйтеxmin).
- propertyx1
-
Вторая из пары координат x, задающих ограничивающую рамку.
Не гарантируется, что это значение больше
x0(для получения большего значения используйтеxmax).
- propertyxmax
-
Правая граница ограничивающей рамки.
- propertyxmin
-
Левая граница ограничивающей рамки.
- propertyy0
-
Первая из пары координат y, задающих ограничивающую рамку.
Не гарантируется, что это значение меньше
y1(для получения меньшего значения используйтеymin).
- propertyy1
-
Вторая из пары координат y, задающих ограничивающую рамку.
Не гарантируется, что это значение больше
y0(для получения большего значения используйтеymax).
- propertyymax
-
Верхняя граница ограничивающей рамки.
- propertyymin
-
Нижняя граница ограничивающей рамки.
- classmatplotlib.transforms.BboxTransform(boxin, boxout, **kwargs)[исходный код]
-
Базовые классы:
Affine2DBaseBboxTransformлинейно преобразует точки из одногоBboxв другой.Создаёт новый
BboxTransform, который линейно преобразует точки из boxin в boxout.- get_matrix()[исходный код]
-
Возвращает матрицу аффинной части этого преобразования.
- is_separable=True
-
True, если это преобразование разделимо по измерениям x и y.
- classmatplotlib.transforms.BboxTransformFrom(boxin, **kwargs)[исходный код]
-
Базовые классы:
Affine2DBaseBboxTransformFromлинейно преобразует точки из заданногоBboxв единичную ограничивающую рамку.- Параметры:
-
- shorthand_namestr
-
Строка, представляющая «имя» преобразования. Имя не имеет никакого значения, кроме повышения читаемости
str(transform)при DEBUG=True.
- get_matrix()[исходный код]
-
Возвращает матрицу аффинной части этого преобразования.
- is_separable=True
-
True, если это преобразование разделимо по измерениям x и y.
- classmatplotlib.transforms.BboxTransformTo(boxout, **kwargs)[исходный код]
-
Базовые классы:
Affine2DBaseBboxTransformTo— это преобразование, линейно переводящее точки из единичной ограничивающей рамки в заданныйBbox.Создаёт новое
BboxTransformTo, которое линейно преобразует точки из единичной ограничивающей рамки в boxout.- get_matrix()[исходный код]
-
Возвращает матрицу аффинной части этого преобразования.
- is_separable=True
-
True, если это преобразование разделимо по измерениям x и y.
- classmatplotlib.transforms.BboxTransformToMaxOnly(boxout, **kwargs)[исходный код]
-
Базовые классы:
BboxTransformTo[Устарело]
BboxTransformToMaxOnly— это преобразование, линейно переводящее точки из единичной ограничивающей рамки в заданныйBboxс фиксированным верхним левым углом в точке (0, 0).Примечания
Устарело с версии 3.9.
Создаёт новое
BboxTransformTo, которое линейно преобразует точки из единичной ограничивающей рамки в boxout.- get_matrix()[исходный код]
-
Возвращает матрицу аффинной части этого преобразования.
- classmatplotlib.transforms.BlendedAffine2D(x_transform, y_transform, **kwargs)[исходный код]
-
Базовые классы:
_BlendedMixin,Affine2DBase«Смешанное» преобразование использует одно преобразование для направления x, а другое — для направления y.
Эта версия оптимизирована для случая, когда оба дочерних преобразования имеют тип
Affine2DBase.Создаёт новое «смешанное» преобразование, используя x_transform для преобразования оси x, а y_transform — для преобразования оси y.
И x_transform, и y_transform должны быть двумерными аффинными преобразованиями.
Обычно этот конструктор вызывают не напрямую, а используют функцию
blended_transform_factory, которая автоматически определяет, какой тип смешанного преобразования создать.- get_matrix()[исходный код]
-
Возвращает матрицу аффинной части этого преобразования.
- is_separable=True
-
True, если это преобразование разделимо по измерениям x и y.
- classmatplotlib.transforms.BlendedGenericTransform(x_transform, y_transform, **kwargs)[исходный код]
-
Базовые классы:
_BlendedMixin,Transform«Смешанное» преобразование использует одно преобразование для направления x, а другое — для направления y.
Эта «универсальная» версия поддерживает любые заданные дочерние преобразования в направлениях x и y.
Создаёт новое «смешанное» преобразование, используя x_transform для преобразования оси x, а y_transform — для преобразования оси y.
Обычно этот конструктор вызывают не напрямую, а используют функцию
blended_transform_factory, которая автоматически определяет, какой тип смешанного преобразования создать.- contains_branch(other)[исходный код]
-
Возвращает, является ли заданное преобразование поддеревом этого преобразования.
Эта процедура использует равенство преобразований для идентификации поддеревьев, поэтому во многих случаях будет использоваться идентификатор объекта.
Если заданное преобразование представляет собой всё это преобразование, возвращает True.
- propertydepth
-
Возвращает количество преобразований, объединённых в цепочку для создания этого экземпляра Transform.
Примечание
Для особого случая Composite-преобразования возвращается максимальная глубина двух преобразований.
- frozen()[исходный код]
-
Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении дочерних узлов. Полезно для сохранения ранее известного состояния преобразования, где обычно мог бы использоваться
copy.deepcopy().
- get_affine()[исходный код]
-
Возвращает аффинную часть этого преобразования.
- propertyhas_inverse
-
Возвращает True, если аргумент равен True, и False в противном случае. Встроенные значения True и False — единственные два экземпляра класса bool. Класс bool является подклассом класса int и не может иметь подклассов.
- input_dims=2
-
Количество входных измерений этого преобразования. В подклассе значение необходимо переопределить (целыми числами).
- inverted()[исходный код]
-
Возвращает соответствующее обратное преобразование.
Выполняется
x == self.inverted().transform(self.transform(x)).Возвращаемое этим методом значение следует считать временным. Изменение self не приводит к соответствующему обновлению его обратной копии.
- propertyis_affine
-
Возвращает True, если аргумент равен True, и False в противном случае. Встроенные значения True и False — единственные два экземпляра класса bool. Класс bool является подклассом класса int и не может иметь подклассов.
- is_separable=True
-
True, если это преобразование разделимо по измерениям x и y.
- output_dims=2
-
Количество выходных измерений этого преобразования. В подклассе значение необходимо переопределить (целыми числами).
- pass_through=True
-
Если pass_through равно True, все предки всегда будут помечаться как недействительные, даже если 'self' уже недействителен.
- transform_non_affine(values)[исходный код]
-
Применяет только неаффинную часть этого преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).Для неаффинных преобразований это, как правило, эквивалентно
transform(values). Для аффинных преобразований эта операция всегда ничего не делает.- Параметры:
-
- valuesarray
-
Входные значения в виде массива длиной
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длиной
output_dimsили формы (N,output_dims) в зависимости от входных данных.
- classmatplotlib.transforms.CompositeAffine2D(a, b, **kwargs)[исходный код]
-
Базовые классы:
Affine2DBaseСоставное преобразование, полученное последовательным применением преобразования a, а затем преобразования b.
Эта версия оптимизирована для случая, когда и a, и b являются двумерными аффинными преобразованиями.
Создаёт новое составное преобразование, являющееся результатом последовательного применения
Affine2DBasea, а затемAffine2DBaseb.Обычно этот конструктор вызывают не напрямую, а используют
a + b, который автоматически выбирает наиболее подходящий тип экземпляра составного преобразования.- propertydepth
-
Возвращает количество преобразований, объединённых в цепочку для создания этого экземпляра Transform.
Примечание
Для особого случая Composite-преобразования возвращается максимальная глубина двух преобразований.
- get_matrix()[исходный код]
-
Возвращает матрицу аффинной части этого преобразования.
- classmatplotlib.transforms.CompositeGenericTransform(a, b, **kwargs)[source]
-
Базовые классы:
TransformСоставное преобразование, образованное последовательным применением преобразования a, а затем преобразования b.
Эта «универсальная» версия поддерживает любые два произвольных преобразования.
Создаёт новое составное преобразование, являющееся результатом последовательного применения преобразования a, а затем преобразования b.
Обычно этот конструктор не вызывают напрямую, а вместо этого записывают
a + b, чтобы автоматически выбрать оптимальный тип создаваемого экземпляра составного преобразования.- contains_branch_seperately(other_transform)[source]
-
Возвращает, является ли указанная ветвь поддеревом этого преобразования для каждого измерения отдельно.
Этот метод часто используют, чтобы определить, является ли преобразование смешанным преобразованием, содержащим преобразование данных Axes. Например:
x_isdata, y_isdata = trans.contains_branch_seperately(ax.transData)
- propertydepth
-
Возвращает число преобразований, объединённых в цепочку для создания этого экземпляра Transform.
Примечание
В частном случае составного преобразования возвращается максимальная глубина из двух.
- frozen()[source]
-
Возвращает зафиксированную копию этого узла преобразования. Зафиксированная копия не будет обновляться при изменении дочерних элементов. Это полезно для сохранения ранее известного состояния преобразования, когда обычно можно было бы использовать
copy.deepcopy().
- get_affine()[source]
-
Возвращает аффинную часть этого преобразования.
- propertyhas_inverse
-
Возвращает True, если аргумент истинен, и False в противном случае. Встроенные значения True и False — единственные два экземпляра класса bool. Класс bool является подклассом класса int, и от него нельзя создавать подклассы.
- inverted()[source]
-
Возвращает соответствующее обратное преобразование.
Выполняется
x == self.inverted().transform(self.transform(x)).Возвращаемое этим методом значение следует считать временным. Изменение self не приводит к соответствующему обновлению его обратной копии.
- propertyis_affine
-
Возвращает True, если аргумент истинен, и False в противном случае. Встроенные значения True и False — единственные два экземпляра класса bool. Класс bool является подклассом класса int, и от него нельзя создавать подклассы.
- propertyis_separable
-
Возвращает True, если аргумент истинен, и False в противном случае. Встроенные значения True и False — единственные два экземпляра класса bool. Класс bool является подклассом класса int, и от него нельзя создавать подклассы.
- pass_through=True
-
Если pass_through имеет значение True, все предки всегда будут помечены как недействительные, даже если «self» уже недействителен.
- transform_affine(values)[source]
-
Применяет только аффинную часть этого преобразования к заданному массиву значений.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).Для неаффинных преобразований эта операция обычно ничего не делает. Для аффинных преобразований она эквивалентна
transform(values).- Параметры:
-
- valuesarray
-
Входные значения в виде массива длины
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длины
output_dimsили формы (N,output_dims), в зависимости от входных данных.
- transform_non_affine(values)[source]
-
Применяет только неаффинную часть этого преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).Для неаффинных преобразований эта операция обычно эквивалентна
transform(values). Для аффинных преобразований она всегда ничего не делает.- Параметры:
-
- valuesarray
-
Входные значения в виде массива длины
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длины
output_dimsили формы (N,output_dims), в зависимости от входных данных.
- classmatplotlib.transforms.IdentityTransform(*args, **kwargs)[source]
-
Базовые классы:
Affine2DBaseСпециальный класс, быстро выполняющий одну операцию — тождественное преобразование.
- Параметры:
-
- shorthand_namestr
-
Строка, представляющая «имя» преобразования. Имя не имеет никакого значения, кроме повышения удобочитаемости
str(transform)при DEBUG=True.
- frozen()[source]
-
Возвращает зафиксированную копию этого узла преобразования. Зафиксированная копия не будет обновляться при изменении дочерних элементов. Это полезно для сохранения ранее известного состояния преобразования, когда обычно можно было бы использовать
copy.deepcopy().
- get_affine()[source]
-
Возвращает аффинную часть этого преобразования.
- get_matrix()[source]
-
Возвращает матрицу аффинной части этого преобразования.
- inverted()[source]
-
Возвращает соответствующее обратное преобразование.
Выполняется
x == self.inverted().transform(self.transform(x)).Возвращаемое этим методом значение следует считать временным. Изменение self не приводит к соответствующему обновлению его обратной копии.
- transform(values)[source]
-
Применяет это преобразование к заданному массиву values.
- Параметры:
-
- valuesarray-like
-
Входные значения в виде массива длины
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длины
output_dimsили формы (N,output_dims), в зависимости от входных данных.
- transform_affine(values)[source]
-
Применяет только аффинную часть этого преобразования к заданному массиву значений.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).Для неаффинных преобразований эта операция обычно ничего не делает. Для аффинных преобразований она эквивалентна
transform(values).- Параметры:
-
- valuesarray
-
Входные значения в виде массива длины
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длины
output_dimsили формы (N,output_dims), в зависимости от входных данных.
- transform_non_affine(values)[source]
-
Применяет только неаффинную часть этого преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).Для неаффинных преобразований эта операция обычно эквивалентна
transform(values). Для аффинных преобразований она всегда ничего не делает.- Параметры:
-
- valuesarray
-
Входные значения в виде массива длины
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длины
output_dimsили формы (N,output_dims), в зависимости от входных данных.
- transform_path(path)[source]
-
Применяет преобразование к
Pathpath и возвращает новый объектPath.В некоторых случаях это преобразование может добавлять кривые к пути, изначально состоявшему из отрезков прямых.
- classmatplotlib.transforms.LockableBbox(bbox, x0=None, y0=None, x1=None, y1=None, **kwargs)[source]
-
Базовые классы:
BboxBaseBbox, некоторые элементы которого могут быть зафиксированы на заданных значениях.При изменении дочерней ограничивающей рамки границы этой рамки обновляются соответствующим образом, за исключением зафиксированных элементов.
- Параметры:
-
-
bbox
Bbox -
Дочерняя ограничивающая рамка, которую нужно обернуть.
- x0float or None
-
Зафиксированное значение x0 или None, чтобы оставить его незаданным.
- y0float or None
-
Зафиксированное значение y0 или None, чтобы оставить его незаданным.
- x1float or None
-
Зафиксированное значение x1 или None, чтобы оставить его незаданным.
- y1float or None
-
Зафиксированное значение y1 или None, чтобы оставить его незаданным.
-
bbox
- get_points()[source]
- propertylocked_x0
-
float или None: значение, используемое для зафиксированного x0.
- propertylocked_x1
-
float или None: значение, используемое для зафиксированного x1.
- propertylocked_y0
-
float или None: значение, используемое для зафиксированного y0.
- propertylocked_y1
-
float или None: значение, используемое для зафиксированного y1.
- classmatplotlib.transforms.ScaledTranslation(xt, yt, scale_trans, **kwargs)[source]
-
Базовые классы:
Affine2DBaseПреобразование, выполняющее перенос на xt и yt после преобразования xt и yt с помощью scale_trans.
- Параметры:
-
- shorthand_namestr
-
Строка, представляющая «имя» преобразования. Имя не имеет никакого значения, кроме повышения удобочитаемости
str(transform)при DEBUG=True.
- get_matrix()[source]
-
Возвращает матрицу аффинной части этого преобразования.
- classmatplotlib.transforms.Transform(shorthand_name=None)[источник]
-
Базовые классы:
TransformNodeБазовый класс всех экземпляров
TransformNode, которые непосредственно выполняют преобразование.Все неаффинные преобразования должны быть подклассами этого класса. Новые аффинные преобразования должны быть подклассами
Affine2D.Подклассы этого класса должны переопределять следующие элементы (как минимум):
input_dimsoutput_dimstransform()-
inverted()(если существует обратное преобразование)
Если значения по умолчанию не подходят, можно переопределить следующие атрибуты:
-
is_separable(по умолчанию True для преобразований 1D -> 1D, в противном случае False) -
has_inverse(по умолчанию True, если переопределёнinverted(), в противном случае False)
Если преобразованию требуется нестандартным образом обрабатывать объекты
matplotlib.path.Path, например добавлять кривые там, где раньше были отрезки, оно должно переопределить:- Параметры:
-
- shorthand_namestr
-
Строка, представляющая «имя» преобразования. Имя не имеет иного значения, кроме повышения читаемости
str(transform)при DEBUG=True.
- __add__(other)[источник]
-
Объединить два преобразования так, чтобы после self выполнялось other.
A + Bвозвращает преобразованиеC, для которогоC.transform(x) == B.transform(A.transform(x)).
- __sub__(other)[источник]
-
Объединить self с обратным преобразованием other, сокращая совпадающие члены, если они есть:
# In general: A - B == A + B.inverted() # (but see note regarding frozen transforms below). # If A "ends with" B (i.e. A == A' + B for some A') we can cancel # out B: (A' + B) - B == A' # Likewise, if B "starts with" A (B = A + B'), we can cancel out A: A - (A + B') == B'.inverted() == B'^-1
Сокращение (вместо наивного возврата
A + B.inverted()) важно по нескольким причинам:- Оно позволяет избежать ошибок с плавающей точкой при вычислении обратного преобразования B:
B - Bгарантированно точно сокращается (в результате получается тождественное преобразование), тогда какB + B.inverted()может отличаться на небольшое значение эпсилон. -
B.inverted()всегда возвращает зафиксированное преобразование: если вычислитьA + B + B.inverted(), а затем изменитьB, тоB.inverted()не обновится и последние два члена больше не сократятся; с другой стороны,A + B - Bвсегда будет равноA, даже еслиBизменено.
- Оно позволяет избежать ошибок с плавающей точкой при вычислении обратного преобразования B:
- contains_branch(other)[источник]
-
Возвращает, является ли заданное преобразование поддеревом этого преобразования.
Эта процедура использует равенство преобразований для идентификации поддеревьев, поэтому во многих ситуациях будет использоваться идентификатор объекта.
Если заданное преобразование представляет собой всё это преобразование, возвращает True.
- contains_branch_seperately(other_transform)[источник]
-
Возвращает, является ли заданная ветвь поддеревом этого преобразования для каждого отдельного измерения.
Этот метод часто используют, чтобы определить, является ли преобразование смешанным преобразованием, содержащим преобразование данных Axes. Например:
x_isdata, y_isdata = trans.contains_branch_seperately(ax.transData)
- propertydepth
-
Возвращает число преобразований, объединённых в цепочку для создания этого экземпляра Transform.
Примечание
В особом случае составного преобразования возвращается максимальная глубина двух преобразований.
- get_affine()[источник]
-
Возвращает аффинную часть этого преобразования.
- get_matrix()[источник]
-
Возвращает матрицу аффинной части этого преобразования.
- has_inverse=False
-
True, если этому преобразованию соответствует обратное преобразование.
- input_dims=None
-
Количество входных измерений этого преобразования. В подклассе необходимо переопределить (целыми числами).
- inverted()[источник]
-
Возвращает соответствующее обратное преобразование.
Выполняется
x == self.inverted().transform(self.transform(x)).Возвращаемое этим методом значение следует считать временным. Изменение self не приводит к соответствующему обновлению его обратной копии.
- is_separable=False
-
True, если это преобразование разделимо по измерениям x и y.
- output_dims=None
-
Количество выходных измерений этого преобразования. В подклассе необходимо переопределить (целыми числами).
- transform(values)[источник]
-
Применяет это преобразование к заданному массиву values.
- Параметры:
-
- valuesarray-like
-
Входные значения в виде массива длины
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длины
output_dimsили формы (N,output_dims) в зависимости от входных данных.
- transform_affine(values)[источник]
-
Применяет к заданному массиву значений только аффинную часть этого преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).Для неаффинных преобразований это, как правило, ничего не делает. Для аффинных преобразований это эквивалентно
transform(values).- Параметры:
-
- valuesarray
-
Входные значения в виде массива длины
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длины
output_dimsили формы (N,output_dims) в зависимости от входных данных.
- transform_angles(angles, pts, radians=False, pushoff=1e-05)[источник]
-
Преобразует набор углов, закреплённых в заданных точках.
- Параметры:
-
- angles(N,) array-like
-
Углы для преобразования.
- pts(N, 2) array-like
-
Точки, в которых закреплены углы.
- radiansbool, default: False
-
Заданы ли angles в радианах или градусах.
- pushofffloat
-
Для каждой точки в pts и угла в angles преобразованный угол вычисляется путём преобразования отрезка длины pushoff, начинающегося в этой точке и образующего этот угол с горизонтальной осью, а затем измерения угла между горизонтальной осью и преобразованным отрезком.
- Возвращает:
-
- (N,) array
- transform_bbox(bbox)[источник]
-
Преобразует заданную ограничивающую рамку.
Для более интеллектуальных преобразований, в том числе с кэшированием (что часто требуется в Matplotlib), см.
TransformedBbox.
- transform_non_affine(values)[источник]
-
Применяет только неаффинную часть этого преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).Для неаффинных преобразований это, как правило, эквивалентно
transform(values). Для аффинных преобразований это всегда ничего не делает.- Параметры:
-
- valuesarray
-
Входные значения в виде массива длины
input_dimsили формы (N,input_dims).
- Возвращает:
-
- array
-
Выходные значения в виде массива длины
output_dimsили формы (N,output_dims) в зависимости от входных данных.
- transform_path(path)[источник]
-
Применяет преобразование к
Pathpath и возвращает новыйPath.В некоторых случаях это преобразование может добавлять в путь кривые, изначально представлявшие собой отрезки.
- transform_path_affine(path)[источник]
-
Применяет аффинную часть этого преобразования к
Pathpath и возвращает новыйPath.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
- transform_path_non_affine(path)[источник]
-
Применяет неаффинную часть этого преобразования к
Pathpath и возвращает новыйPath.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
- transform_point(point)[источник]
-
Возвращает преобразованную точку.
Эта функция сохранена только для обратной совместимости; более универсальный метод
transformпозволяет преобразовывать как список точек, так и одну точку.Точка задаётся последовательностью длины
input_dims. Преобразованная точка возвращается в виде последовательности длиныoutput_dims.
- classmatplotlib.transforms.TransformNode(shorthand_name=None)[источник]
-
Базовые классы:
objectБазовый класс для всего, что входит в дерево преобразований и должно инвалидировать родительские узлы или подвергаться инвалидации. Сюда входят классы, которые сами по себе не являются преобразованиями, например ограничивающие рамки, поскольку некоторые преобразования используют ограничивающие рамки для вычисления своих значений.
- Параметры:
-
- shorthand_namestr
-
Строка, представляющая «имя» преобразования. Имя не имеет иного значения, кроме повышения читаемости
str(transform)при DEBUG=True.
- frozen()[источник]
-
Возвращает зафиксированную копию этого узла преобразования. Зафиксированная копия не будет обновляться при изменении её дочерних узлов. Полезно для сохранения ранее известного состояния преобразования, когда обычно можно было бы использовать
copy.deepcopy().
- invalidate()[источник]
-
Инвалидирует этот
TransformNodeи инициирует инвалидацию его предков. Следует вызывать каждый раз при изменении преобразования.
- is_affine=False
- is_bbox=False
- pass_through=False
-
Если pass_through равно True, все предки будут всегда инвалидироваться, даже если 'self' уже недействителен.
- set_children(*children)[источник]
-
Задаёт дочерние узлы преобразования, чтобы система инвалидации знала, какие преобразования могут инвалидировать этот узел. Следует вызывать из конструктора любых преобразований, зависящих от других преобразований.
- classmatplotlib.transforms.TransformWrapper(child)[исходный код]
-
Базовые классы:
TransformВспомогательный класс, который содержит единственное дочернее преобразование и действует так же, как оно.
Этот класс полезен, если узел дерева преобразований необходимо заменить во время выполнения преобразованием другого типа. Он позволяет корректно инициировать инвалидацию при такой замене.
Экземпляры
TransformWrapperдолжны иметь одинаковые размерности входных и выходных данных на протяжении всего срока существования, поэтому дочернее преобразование можно заменять только другим дочерним преобразованием с такими же размерностями.child: экземпляр
Transform. Это дочернее преобразование впоследствии можно заменить с помощьюset().- frozen()[исходный код]
-
Возвращает неизменяемую копию этого узла преобразования. Эта копия не будет обновляться при изменении дочерних элементов. Полезно для сохранения ранее известного состояния преобразования, где обычно может использоваться
copy.deepcopy().
- propertyhas_inverse
-
Возвращает True, если аргумент имеет значение True, и False в противном случае. Встроенные значения True и False — единственные два экземпляра класса bool. Класс bool является подклассом класса int и не может иметь подклассов.
- propertyinput_dims
-
Тип единственного экземпляра None.
- propertyis_affine
-
Возвращает True, если аргумент имеет значение True, и False в противном случае. Встроенные значения True и False — единственные два экземпляра класса bool. Класс bool является подклассом класса int и не может иметь подклассов.
- propertyis_separable
-
Возвращает True, если аргумент имеет значение True, и False в противном случае. Встроенные значения True и False — единственные два экземпляра класса bool. Класс bool является подклассом класса int и не может иметь подклассов.
- propertyoutput_dims
-
Тип единственного экземпляра None.
- pass_through=True
-
Если pass_through имеет значение True, все предки всегда будут инвалидированы, даже если «self» уже недействителен.
- set(child)[исходный код]
-
Заменяет текущее дочернее преобразование этого преобразования другим.
Новое дочернее преобразование должно иметь такое же количество входных и выходных размерностей, как и текущее.
- classmatplotlib.transforms.TransformedBbox(bbox, transform, **kwargs)[исходный код]
-
Базовые классы:
BboxBaseBbox, автоматически преобразуемый заданным преобразованием. При изменении дочерней ограничивающей рамки или преобразования границы этой рамки обновляются соответствующим образом.- Параметры:
-
-
bbox
Bbox -
transform
Transform
-
bbox
- contains(x, y)[исходный код]
-
Возвращает, находится ли
(x, y)внутри ограничивающей рамки или на её границе.
- fully_contains(x, y)[исходный код]
-
Возвращает, находится ли
x, yвнутри ограничивающей рамки, но не на её границе.
- get_points()[исходный код]
- classmatplotlib.transforms.TransformedPatchPath(patch)[исходный код]
-
Базовые классы:
TransformedPathTransformedPatchPathкэширует копиюPatch, преобразованную нелинейной частью преобразования. Эта кэшированная копия автоматически обновляется при изменении нелинейной части преобразования или заплатки.- Параметры:
-
-
patch
Patch
-
patch
- classmatplotlib.transforms.TransformedPath(path, transform)[исходный код]
-
Базовые классы:
TransformNodeTransformedPathкэширует копиюPath, преобразованную нелинейной частью преобразования. Эта кэшированная копия автоматически обновляется при изменении нелинейной части преобразования.Примечание
Этот класс считает пути неизменяемыми. Любое обновление вершин или кодов пути не приведёт к пересчёту преобразования.
- Параметры:
-
-
path
Path -
transform
Transform
-
path
- get_affine()[исходный код]
- get_fully_transformed_path()[исходный код]
-
Возвращает полностью преобразованную копию дочернего пути.
- get_transformed_path_and_affine()[исходный код]
-
Возвращает копию дочернего пути, к которой уже применена нелинейная часть преобразования, а также аффинную часть пути, необходимую для завершения преобразования.
- get_transformed_points_and_affine()[исходный код]
-
Возвращает копию дочернего пути, к которой уже применена нелинейная часть преобразования, а также аффинную часть пути, необходимую для завершения преобразования. В отличие от
get_transformed_path_and_affine(), интерполяция не выполняется.
- matplotlib.transforms.blended_transform_factory(x_transform, y_transform)[исходный код]
-
Создаёт новое «смешанное» преобразование, используя x_transform для преобразования оси x и y_transform для преобразования оси y.
Если оба дочерних преобразования являются аффинными, возвращается более быстрая версия смешанного преобразования.
- matplotlib.transforms.composite_transform_factory(a, b)[исходный код]
-
Создаёт новое составное преобразование, которое получается в результате последовательного применения преобразования a, а затем преобразования b.
Для случая, когда оба дочерних преобразования являются аффинными или одно из них является тождественным, предусмотрены сокращённые варианты смешанного преобразования.
Составные преобразования также можно создавать с помощью оператора «+», например:
c = a + b
- matplotlib.transforms.interval_contains(interval, val)[исходный код]
-
Проверяет, входит ли заданное значение в интервал, включая его концы.
- Параметры:
-
- interval(float, float)
-
Концы интервала.
- valfloat
-
Значение, для которого проверяется принадлежность интервалу.
- Возвращает:
-
- bool
-
Принадлежит ли val интервалу interval.
- matplotlib.transforms.interval_contains_open(interval, val)[исходный код]
-
Проверяет, входит ли заданное значение в интервал, не включая его концы.
- Параметры:
-
- interval(float, float)
-
Концы интервала.
- valfloat
-
Значение, для которого проверяется принадлежность интервалу.
- Возвращает:
-
- bool
-
Принадлежит ли val интервалу interval.
- matplotlib.transforms.nonsingular(vmin, vmax, expander=0.001, tiny=1e-15, increasing=True)[исходный код]
-
При необходимости изменяет концы диапазона, чтобы избежать вырожденных случаев.
- Параметры:
-
- vmin, vmaxfloat
-
Начальные концы диапазона.
- expanderfloat, default: 0.001
-
Доля, на которую расширяются vmin и vmax, если исходный интервал слишком мал относительно tiny.
- tinyfloat, default: 1e-15
-
Пороговое значение для отношения длины интервала к максимальному абсолютному значению его концов. Если интервал меньше этого значения, он будет расширен. Это значение должно быть около 1e-15 или больше; в противном случае интервал будет приближаться к пределу разрешения чисел двойной точности.
- increasingbool, default: True
-
Если значение True, меняет местами vmin и vmax, когда vmin > vmax.
- Возвращает:
-
- vmin, vmaxfloat
-
Концы диапазона, при необходимости расширенные и/или переставленные местами. Если любой из входных аргументов равен inf или NaN либо оба входных аргумента равны 0 или очень близки к нулю, возвращает -expander, expander.
- matplotlib.transforms.offset_copy(trans, fig=None, x=0.0, y=0.0, units='inches')[исходный код]
-
Возвращает новое преобразование с добавленным смещением.
- Параметры:
-
-
trans
Transformsubclass -
Любое преобразование, к которому будет применено смещение.
-
fig
Figure, default: None -
Текущая фигура. Может иметь значение None, если units равно 'dots'.
- x, yfloat, default: 0.0
-
Применяемое смещение.
- units{'inches', 'points', 'dots'}, default: 'inches'
-
Единицы измерения смещения.
-
trans
- Возвращает:
-
-
Transformsubclass -
Преобразование с применённым смещением.
-
© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/transformations.html