matplotlib.transforms
matplotlib включает в себя фреймворк для произвольных геометрических преобразований, который используется для определения конечного положения всех элементов, нарисованных на холсте.
Преобразования объединяются в деревья объектов TransformNode, чьё фактическое значение зависит от их дочерних элементов. При изменении содержимого дочерних элементов их родительские элементы автоматически инвалидируются. В следующий раз, когда к инвалидированному преобразованию будет обращаться, оно будет пересчитано, чтобы отразить эти изменения. Этот подход инвалидизации/кеширования предотвращает ненужные пересчёты преобразований и способствует улучшению производительности интерактивных элементов.
Например, вот график дерева преобразований, используемого для построения данных на графике:
Фреймворк можно использовать для аффинных и неаффинных преобразований. Однако для повышения скорости мы хотим использовать бэкэнд-рендереры для выполнения аффинных преобразований всякий раз, когда это возможно. Поэтому можно выполнить только аффинную или неаффинную часть преобразования на наборе данных. Аффинная часть всегда предполагается выполняться после неаффинной. Для любого преобразования:
full transform == non-affine part + affine part
От бэкэндов не ожидается, что они будут обрабатывать неаффинные преобразования самостоятельно.
-
class matplotlib.transforms.Affine2D(matrix=None, **kwargs)[source]
-
Bases:
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] -
Bases:
matplotlib.transforms.AffineBaseБазовый класс всех 2D аффинных преобразований.
2D аффинные преобразования выполняются с помощью 3x3 массива numpy:
a c e b d f 0 0 1
Этот класс предоставляет только для чтения интерфейс. Для изменяемого 2D аффинного преобразования используйте
Affine2D.Подклассы этого класса, как правило, должны только переопределять конструктор и
get_matrix(), который генерирует пользовательскую 3x3 матрицу.Создаёт новый
TransformNode.Параметры: -
shorthand_namestr -
Строка, представляющая «имя» преобразования. Имя не имеет особого значения, кроме улучшения удобочитаемости
str(transform)при DEBUG=True.
-
frozen(self)[source] -
Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для хранения ранее известного состояния преобразования, где
copy.deepcopy()может обычно использоваться.
-
has_inverse = True
-
input_dims = 2
-
inverted(self)[source] -
Возвращает соответствующее обратное преобразование.
Содержит
x == self.inverted().transform(self.transform(x)).Результат этого метода следует рассматривать как временный. Обновление self не вызывает соответствующего обновления его инвертированной копии.
-
property is_separable -
bool(x) -> bool
Возвращает True, если аргумент x истинен, False в противном случае. Встроенные True и False являются единственными двумя экземплярами класса bool. Класс bool является подклассом класса int и не может быть подклассифицирован.
-
static matrix_from_values(a, b, c, d, e, f)[source] -
[Устарело] Создаёт новую матрицу преобразования как 3x3 массив numpy в формате:
a c e b d f 0 0 1
Примечания
Устарело начиная с версии 3.2.
-
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).Параметры: -
valuesarray -
Входные значения в виде массива NumPy длиной
input_dimsили формы (N xinput_dims).
Возвращает: -
valuesarray -
Выходные значения в виде массива NumPy длиной
input_dimsили формы (N xoutput_dims), в зависимости от входных данных.
-
-
-
class matplotlib.transforms.AffineBase(*args, **kwargs)[source] -
Bases:
matplotlib.transforms.TransformБазовый класс всех аффинных преобразований любого числа измерений.
Создаёт новый
TransformNode.Параметры: -
shorthand_namestr -
Строка, представляющая «имя» преобразования. Имя не несёт никакого смысла, кроме улучшения удобочитаемости
str(transform)при DEBUG=True.
-
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).Параметры: -
valuesarray -
Входные значения как массив NumPy длиной
input_dimsили формы (N xinput_dims).
Возвращает: -
valuesarray -
Выходные значения как массив NumPy длиной
input_dimsили формы (N xoutput_dims), в зависимости от входа.
-
-
transform_non_affine(self, points)[source] -
Выполняет только неаффинную часть преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это, как правило, эквивалентно
transform(values). В аффинных преобразованиях это всегда операция без действия.Параметры: -
valuesarray -
Входные значения как массив NumPy длиной
input_dimsили формы (N xinput_dims).
Возвращает: -
valuesarray -
Выходные значения как массив NumPy длиной
input_dimsили формы (N xoutput_dims), в зависимости от входа.
-
-
transform_path(self, path)[source] -
Возвращает преобразованный путь.
путь: экземпляр
Path.В некоторых случаях это преобразование может вставить кривые в путь, который начинался как отрезки прямых.
-
transform_path_affine(self, path)[source] -
Возвращает путь, преобразованный только аффинной частью этого преобразования.
путь: экземпляр
Path.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
-
transform_path_non_affine(self, path)[source] -
Возвращает путь, преобразованный только неаффинной частью этого преобразования.
путь: экземпляр
Path.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
-
-
class matplotlib.transforms.Bbox(points, **kwargs)[source] -
Базы:
matplotlib.transforms.BboxBaseИзменяемый прямоугольник.
Параметры: -
pointsndarray -
Массив numpy 2x2 вида
[[x0, y0], [x1, y1]].
Примечания
Если вам нужно создать объект
Bboxиз других данных, воспользуйтесь статическими методамиunit(),from_bounds()иfrom_extents().-
static from_bounds(x0, y0, width, height)[source] -
Создает новый прямоугольник
Bboxпо значениям x0, y0, width и height.width и height могут быть отрицательными.
-
static from_extents(*args)[source] -
Создает новый прямоугольник из left, bottom, right и top.
Ось y направлена вверх.
-
get_points(self)[source] -
Получить точки прямоугольника как массив numpy в виде:
[[x0, y0], [x1, y1]].
-
ignore(self, value)[source] -
Установить, нужно ли игнорировать существующие границы при последующих вызовах
update_from_data_xy().-
valuebool -
- Когда
True, последующие вызовыupdate_from_data_xy()проигнорируют существующие границы прямоугольникаBbox. - Когда
False, последующие вызовыupdate_from_data_xy()будут учитывать существующие границы прямоугольникаBbox.
- Когда
-
-
property intervalx -
Пара x-координат, определяющих прямоугольник.
Гарантированно не отсортированы слева направо.
-
property intervaly -
Пара y-координат, определяющих прямоугольник.
Гарантированно не отсортированы снизу вверх.
-
property minpos
-
property minposx
-
property minposy
-
mutated(self)[source] -
Возвращает, изменился ли прямоугольник с момента инициализации.
-
mutatedx(self)[source] -
Возвращает, изменились ли x-пределы с момента инициализации.
-
mutatedy(self)[source] -
Возвращает, изменились ли y-пределы с момента инициализации.
-
static null()[source] -
Создает новый пустой прямоугольник
Bboxот (бесконечность, бесконечность) до (-бесконечность, -бесконечность).
-
property p0 -
Первая пара (x, y) координат, определяющих прямоугольник.
Не гарантируется, что это нижний левый угол (для этого используйте
min).
-
property 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] -
Обновление границ прямоугольника
Bboxна основе переданных данных. После обновления границы будут иметь положительную width и height; x0 и y0 будут минимальными значениями.Параметры: -
xyndarray -
Массив numpy точек 2D.
-
ignorebool, optional -
updatex, updateybool, optional -
Когда
True, обновить значения x/y.
-
-
-
update_from_path(self, path, ignore=None, updatex=True, updatey=True)[source] -
Обновление границ
Bboxна основе переданных данных. После обновления границы будут иметь положительную ширину и высоту; x0 и y0 будут минимальными значениями.Параметры:
-
property x0 -
Первая из пары координат x, определяющих прямоугольник ограничительной рамки.
Не гарантируется, что она будет меньше, чем
x1(для этого используйтеxmin).
-
property x1 -
Вторая из пары координат x, определяющих прямоугольник ограничительной рамки.
Не гарантируется, что она будет больше, чем
x0(для этого используйтеxmax).
-
property y0 -
Первая из пары координат y, определяющих прямоугольник ограничительной рамки.
Не гарантируется, что она будет меньше, чем
y1(для этого используйтеymin).
-
property y1 -
Вторая из пары координат y, определяющих прямоугольник ограничительной рамки.
Не гарантируется, что она будет больше, чем
y0(для этого используйтеymax).
-
-
class matplotlib.transforms.BboxBase(shorthand_name=None)[source]
-
Базовые классы:
matplotlib.transforms.TransformNodeЭто базовый класс всех ограничивающих прямоугольников и предоставляет только для чтения доступ к его данным. Изменяемый ограничивающий прямоугольник предоставляется классом
Bbox.Каноническое представление — это две точки без ограничений на их порядок. Предоставляются удобные свойства для получения левой, нижней, правой и верхней границ, а также ширины и высоты, но они не хранятся явно.
Создаёт новый
TransformNode.Параметры: -
shorthand_namestr -
Строка, представляющая «имя» преобразования. Имя не несёт никакой смысловой нагрузки, кроме улучшения удобочитаемости
str(transform)при DEBUG=True.
-
anchored(self, c, container=None)[source] -
Возвращает копию
Bbox, сдвинутую в позицию c внутри container.Параметры: -
c(float, float) or str -
Может быть либо:
- Последовательность (cx, cy), где cx и cy изменяются от 0 до 1, где 0 — слева или снизу, а 1 — справа или сверху
- строка: - 'C' для центрирования - 'S' для нижнего центра - 'SE' для нижнего левого угла - 'E' для левого угла и т. д.
-
containerBbox, 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 игнорируются.Параметры: -
verticesNx2 Numpy array.
-
-
count_overlaps(self, bboxes)[source] -
Подсчитывает количество ограничивающих прямоугольников, которые пересекаются с этим прямоугольником.
Параметры: -
bboxessequence of BboxBase
-
-
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] -
Возвращает, пересекается ли этот ограничивающий прямоугольник с другим ограничивающим прямоугольником, не включая грани.
Параметры: -
otherBboxBase
-
-
get_points(self)[source]
-
-
property height -
Высота (со знаком) области.
-
static intersection(bbox1, bbox2)[source] -
Возвращает пересечение bbox1 и bbox2, если они пересекаются, или None, если нет.
-
property intervalx -
Пара x-координат, определяющих область.
Гарантируется, что они упорядочены не слева направо.
-
property intervaly -
Пара y-координат, определяющих область.
Гарантируется, что они упорядочены не снизу вверх.
-
inverse_transformed(self, transform)[source] -
Создаёт
Bboxпутём статического преобразования текущей области с помощью обратного преобразования transform.
-
is_affine = True
-
is_bbox = True
-
is_unit(self)[source] -
[Устарело] Возвращает значение, указывающее, является ли это единичной областью (от (0, 0) до (1, 1)).
Примечания
Устарело начиная с версии 3.2.
-
property max -
Правый верхний угол области.
-
property min -
Левый нижний угол области.
-
overlaps(self, other)[source] -
Возвращает True, если эта область перекрывается с другой областью; False в противном случае.
Параметры: -
otherBboxBase
-
-
property p0 -
Первая пара (x, y) координат, определяющих область.
Не гарантируется, что это левый нижний угол (для этого используйте
min).
-
property p1 -
Вторая пара (x, y) координат, определяющих область.
Не гарантируется, что это правый верхний угол (для этого используйте
max).
-
padded(self, p)[source] -
Создаёт
Bboxпутём добавления отступов по всем четырём сторонам на p.
-
rotated(self, radians)[source] -
Возвращает новую область, охватывающую повернутую версию этой области на заданные радианы. Новая область по-прежнему выровнена с осями.
-
shrunk(self, mx, my)[source] -
Возвращает копию
Bbox, уменьшенную в направлении x на коэффициент mx и в направлении y на коэффициент my. Левый нижний угол области остаётся неизменным. Обычно mx и my будут меньше 1, но это не является обязательным условием.
-
shrunk_to_aspect(self, box_aspect, container=None, fig_aspect=1.0)[source] -
Возвращает копию
Bbox, уменьшенную до размера, который позволяет сохранить желаемое соотношение сторон box_aspect. Если координаты области относительны — то есть доли большей области, например, фигуры — то задаётся физическое соотношение сторон этой фигуры с помощью fig_aspect, так что box_aspect может быть задан как отношение абсолютных размеров, а не относительных.
-
property size -
Ширина и высота (со знаком) области.
-
splitx(self, *args)[source] -
Возвращает список новых
Bboxобъектов, сформированных путём разделения исходной области вертикальными линиями в заданных дробных позициях, заданных аргументами.
-
splity(self, *args)[source] -
Возвращает список новых
Bboxобъектов, сформированных путём разделения исходной области горизонтальными линиями в заданных дробных позициях, заданных аргументами.
-
transformed(self, transform)[source] -
Создаёт
Bboxпутём статического преобразования текущей области с помощью transform.
-
translated(self, tx, ty)[source] -
Создаёт
Bboxпутём перемещения текущей области на tx и ty.
-
static union(bboxes)[source] -
Возвращает
Bbox, содержащую все заданные bboxes.
-
property width -
Ширина (со знаком) области.
-
property x0 -
Первая из пары x-координат, определяющих область.
Не гарантируется, что она меньше
x1(для этого используйтеxmin).
-
property x1 -
Вторая из пары x-координат, определяющих область.
Не гарантируется, что она больше
x0(для этого используйтеxmax).
-
property xmax -
Правая граница области.
-
property xmin -
Левая граница области.
-
-
property y1 -
Вторая из пары координат y, определяющих область обрезки.
Не гарантируется, что она будет больше, чем
y0(для этого используйтеymax).
-
property ymax -
Верхняя граница области обрезки.
-
property ymin -
Нижняя граница области обрезки.
-
-
class matplotlib.transforms.BboxTransform(boxin, boxout, **kwargs)[source] -
Базы:
matplotlib.transforms.Affine2DBaseBboxTransformлинейно преобразует точки из однойBboxв другую.Создает новый
BboxTransform, который линейно преобразует точки из boxin в boxout.-
get_matrix(self)[source] -
Получить массив аффинного преобразования для аффинной части этого преобразования.
-
is_separable = True
-
-
class matplotlib.transforms.BboxTransformFrom(boxin, **kwargs)[source] -
Базы:
matplotlib.transforms.Affine2DBaseBboxTransformFromлинейно преобразует точки из заданнойBboxв единичную область обрезки.Создает новый
TransformNode.Параметры: -
shorthand_namestr -
Строка, представляющая «имя» преобразования. Имя не имеет никакого значения, кроме как для повышения читаемости
str(transform)при DEBUG=True.
-
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._BlendedMixin,matplotlib.transforms.Affine2DBase«Смешанное» преобразование использует одно преобразование для направления x и другое преобразование для направления y.
Данная версия является оптимизацией для случая, когда оба дочерних преобразования являются типа
Affine2DBase.Создает новое «смешанное» преобразование, используя x_transform для преобразования оси x и y_transform для преобразования оси y.
Оба x_transform и y_transform должны быть 2D аффинными преобразованиями.
Обычно вы не будете вызывать этот конструктор напрямую, а воспользуетесь функцией
blended_transform_factory, которая может автоматически определить, какой вид смешанного преобразования создать.-
get_matrix(self)[source] -
Получить массив аффинного преобразования для аффинной части этого преобразования.
-
is_separable = True
-
-
class matplotlib.transforms.BlendedGenericTransform(x_transform, y_transform, **kwargs)[source] -
Bases:
matplotlib.transforms._BlendedMixin,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_factoryfunction 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.
-
property depth -
Returns the number of transforms which have been chained together to form this Transform instance.
Примечание
Для специального случая Composite transform возвращается максимальная глубина двух.
-
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.
-
property has_inverse -
bool(x) -> bool
Returns True when the argument x is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.
-
input_dims = 2
-
inverted(self)[source] -
Return the corresponding inverse transformation.
It holds
x == self.inverted().transform(self.transform(x)).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.
-
property is_affine -
bool(x) -> bool
Returns True when the argument x is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.
-
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.Parameters: -
valuesarray -
The input values as NumPy array of length
input_dimsor shape (N xinput_dims).
Returns: -
valuesarray -
The output values as NumPy array of length
input_dimsor shape (N xoutput_dims), depending on the input.
-
-
-
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_factoryfunction instead, which can automatically choose the best kind of composite transform instance to create.-
property depth -
Returns the number of transforms which have been chained together to form this Transform instance.
Примечание
Для специального случая Composite transform возвращается максимальная глубина двух.
-
get_matrix(self)[source] -
Get the Affine transformation array for the affine part of this transform.
-
-
class matplotlib.transforms.CompositeGenericTransform(a, b, **kwargs)[source] -
Основы:
matplotlib.transforms.TransformСоставной преобразователь, образованный применением преобразователя a, а затем преобразователя b.
Этот «обобщённый» вариант может обрабатывать любые два произвольных преобразования.
Создаёт новый составной преобразователь, являющийся результатом применения преобразователя a, а затем преобразователя b.
Обычно вы не будете вызывать этот конструктор напрямую, а воспользуетесь функцией
composite_transform_factory, которая может автоматически выбрать наилучший вид экземпляра составного преобразователя для создания.-
property depth -
Возвращает количество преобразований, которые были объединены для формирования этого экземпляра преобразователя.
Примечание
В случае специального преобразования Composite возвращается максимальная глубина двух.
-
frozen(self)[source] -
Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для сохранения ранее известного состояния преобразования, где
copy.deepcopy()обычно может использоваться.
-
get_affine(self)[source] -
Получить аффинное подмножество этого преобразования.
-
property has_inverse -
bool(x) -> bool
Возвращает True, если аргумент x истинен, иначе False. Встроенные True и False — это единственные два экземпляра класса bool. Класс bool является подклассом класса int и не может быть переопределён.
-
inverted(self)[source] -
Возвращает соответствующее обратное преобразование.
Это удерживает
x == self.inverted().transform(self.transform(x)).Значение, возвращаемое этим методом, следует рассматривать как временное. Обновление self не вызывает соответствующего обновления его инвертированной копии.
-
property is_affine -
bool(x) -> bool
Возвращает True, если аргумент x истинен, иначе False. Встроенные True и False — это единственные два экземпляра класса bool. Класс bool является подклассом класса int и не может быть переопределён.
-
property is_separable -
bool(x) -> bool
Возвращает True, если аргумент x истинен, иначе False. Встроенные True и False — это единственные два экземпляра класса bool. Класс bool является подклассом класса int и не может быть переопределён.
-
pass_through = True
-
transform_affine(self, points)[source] -
Выполняет только аффинное подмножество этого преобразования для заданного массива значений.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это обычно является пустой операцией. В аффинных преобразованиях это эквивалентно
transform(values).Параметры: -
valuesarray -
Входные значения в виде массива NumPy длиной
input_dimsили формы (N xinput_dims).
Возвращает: -
valuesarray -
Выходные значения в виде массива NumPy длиной
input_dimsили формы (N xoutput_dims), в зависимости от входа.
-
-
transform_non_affine(self, points)[source] -
Выполняет только неаффинное подмножество преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это обычно эквивалентно
transform(values). В аффинных преобразованиях это всегда пустая операция.Параметры: -
valuesarray -
Входные значения в виде массива NumPy длиной
input_dimsили формы (N xinput_dims).
Возвращает: -
valuesarray -
Выходные значения в виде массива NumPy длиной
input_dimsили формы (N xoutput_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] -
Bases:
matplotlib.transforms.Affine2DBaseA special class that does one thing, the identity transform, in a fast way.
Creates a new
TransformNode.Parameters: -
shorthand_namestr -
A string representing the "name" of the transform. The name carries no significance other than to improve the readability of
str(transform)when DEBUG=True.
-
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.
-
get_matrix(self)[source] -
Get the Affine transformation array for the affine part of this transform.
-
inverted(self)[source] -
Return the corresponding inverse transformation.
It holds
x == self.inverted().transform(self.transform(x)).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.
-
transform(self, points)[source] -
Performs the transformation on the given array of values.
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.
-
transform_affine(self, points)[source] -
Performs only the affine part of this transformation on the given array of values.
transform(values)is always equivalent totransform_affine(transform_non_affine(values)).In non-affine transformations, this is generally a no-op. In affine transformations, this is equivalent to
transform(values).Parameters: -
valuesarray -
The input values as NumPy array of length
input_dimsor shape (N xinput_dims).
Returns: -
valuesarray -
The output values as NumPy array of length
input_dimsor shape (N xoutput_dims), depending on the input.
-
-
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.Parameters: -
valuesarray -
The input values as NumPy array of length
input_dimsor shape (N xinput_dims).
Returns: -
valuesarray -
The output values as NumPy array of length
input_dimsor shape (N xoutput_dims), depending on the input.
-
-
transform_path(self, path)[source] -
Returns a transformed path.
path: a
Pathinstance.In some cases, this transform may insert curves into the path that began as line segments.
-
transform_path_affine(self, path)[source] -
Returns a path, transformed only by the affine part of this transform.
path: a
Pathinstance.transform_path(path)is equivalent totransform_path_affine(transform_path_non_affine(values)).
-
transform_path_non_affine(self, path)[source] -
Returns a path, transformed only by the non-affine part of this transform.
path: a
Pathinstance.transform_path(path)is equivalent totransform_path_affine(transform_path_non_affine(values)).
-
-
class matplotlib.transforms.LockableBbox(bbox, x0=None, y0=None, x1=None, y1=None, **kwargs)[source] -
Bases:
matplotlib.transforms.BboxBaseA
Bboxwhere some elements may be locked at certain values.When the child bounding box changes, the bounds of this bbox will update accordingly with the exception of the locked elements.
Parameters: -
bboxBbox -
The child bounding box to wrap.
-
x0float or None -
The locked value for x0, or None to leave unlocked.
-
y0float or None -
The locked value for y0, or None to leave unlocked.
-
x1float or None -
The locked value for x1, or None to leave unlocked.
-
y1float or None -
The locked value for y1, or None to leave unlocked.
-
get_points(self)[source]
-
property locked_x0 -
float or None: The value used for the locked x0.
-
property locked_x1 -
float or None: The value used for the locked x1.
-
property locked_y0 -
float or None: The value used for the locked y0.
-
property locked_y1 -
float or None: The value used for the locked y1.
-
-
class matplotlib.transforms.ScaledTranslation(xt, yt, scale_trans, **kwargs)[source] -
Bases:
matplotlib.transforms.Affine2DBaseПреобразование, которое осуществляет сдвиг на xt и yt после того, как xt и yt были преобразованы с помощью scale_trans.
Создаёт новый
TransformNode.Параметры: -
shorthand_namestr -
Строка, представляющая «название» преобразования. Название не имеет никакого значения, кроме улучшения удобочитаемости
str(transform)при DEBUG=True.
-
get_matrix(self)[source] -
Получение матрицы аффинного преобразования для аффинной части этого преобразования.
-
-
class matplotlib.transforms.Transform(shorthand_name=None)[source] -
Базовый класс всех
matplotlib.transforms.TransformNodeэкземпляров, которые фактически выполняют преобразование.Все неаффинные преобразования должны быть подклассами этого класса. Новые аффинные преобразования должны быть подклассами
Affine2D.Подклассы этого класса должны переопределять следующие члены (как минимум):
input_dimsoutput_dimstransform()-
inverted()(если обратное преобразование существует)
Следующие атрибуты можно переопределить, если значение по умолчанию не подходит:
-
is_separable(по умолчанию True для преобразований 1d -> 1d, иначе False) -
has_inverse(по умолчанию True, если переопределёнinverted(), иначе False)
Если преобразование должно выполнять нестандартные действия с объектами
matplotlib.path.Path, например, добавление кривых там, где были сегменты прямых линий, оно должно переопределить:Создаёт новый
TransformNode.Параметры: -
shorthand_namestr -
Строка, представляющая «имя» преобразования. Имя не имеет значения, кроме улучшения удобочитаемости
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)
-
property depth -
Возвращает количество преобразований, которые были объединены для формирования экземпляра Transform.
Примечание
В случае специального преобразования Composite возвращается максимальная глубина двух.
-
get_affine(self)[source] -
Получить аффинную часть этого преобразования.
-
get_matrix(self)[source] -
Получить массив аффинного преобразования для аффинной части этого преобразования.
-
has_inverse = False -
True, если для этого преобразования существует соответствующее обратное преобразование.
-
input_dims = None -
Количество входных измерений этого преобразования. Должно быть переопределено (целыми числами) в подклассе.
-
inverted(self)[source] -
Возвращает соответствующее обратное преобразование.
Содержит
x == self.inverted().transform(self.transform(x)).Результат работы этого метода следует рассматривать как временный. Обновление self не приводит к соответствующему обновлению его обратного копии.
-
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).Параметры: -
valuesarray -
Входные значения в виде массива NumPy длиной
input_dimsили формы (N xinput_dims).
Возвращает: -
valuesarray -
Выходные значения в виде массива NumPy длиной
input_dimsили формы (N xoutput_dims), в зависимости от входных данных.
-
-
transform_angles(self, angles, pts, radians=False, pushoff=1e-05)[source] -
Преобразует набор углов, закреплённых в определённых местах.
Параметры: -
angles(N,) array-like -
Углы для преобразования.
-
pts(N, 2) array-like -
Точки, к которым закреплены углы.
-
radiansbool, default: False -
Являются ли angles радианами или градусами.
-
pushofffloat -
Для каждой точки в pts и угла в angles преобразованный угол вычисляется путём преобразования отрезка длиной pushoff, начинающегося в этой точке и образующего этот угол относительно горизонтальной оси, и измерения угла между горизонтальной осью и преобразованным отрезком.
Возвращает: -
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). При аффинных преобразованиях это всегда бессмысленная операция.Параметры: -
valuesarray -
Вводные значения в виде массива NumPy длиной
input_dimsили формы (N xinput_dims).
Возвращает: -
valuesarray -
Выходные значения в виде массива NumPy длиной
input_dimsили формы (N xoutput_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] -
Возвращает преобразованную точку.
Эта функция сохраняется только для обратной совместимости; более общий метод
transformспособен преобразовывать как список точек, так и одну точку.Точка задаётся как последовательность длиной
input_dims. Преобразованная точка возвращается как последовательность длинойoutput_dims.
-
-
class matplotlib.transforms.TransformNode(shorthand_name=None)[source] -
Bases:
objectTransformNodeявляется базовым классом для всего, что участвует в дереве преобразований и нуждается в обновлении своих родителей или обновлении. Это включает классы, которые на самом деле не являются преобразованиями, такие как прямоугольные области, поскольку некоторые преобразования зависят от прямоугольных областей для вычисления своих значений.Создаёт новый
TransformNode.Параметры: -
shorthand_namestr -
Строка, представляющая "имя" преобразования. Имя не имеет значения, кроме повышения читабельности
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] -
Базы:
matplotlib.transforms.TransformВспомогательный класс, хранящий единственный преобразующий объект и действующий эквивалентно ему.
Это полезно, если узел дерева преобразований должен быть заменён во время выполнения на преобразование другого типа. Этот класс позволяет правильно инициировать обновление.
Обратите внимание, что экземпляры
TransformWrapperдолжны иметь одинаковые входные и выходные размеры на протяжении всего своего жизненного цикла, поэтому преобразующий объект можно заменить только другим преобразующим объектом с такими же размерами.child: Экземпляр класса:
Transform. Этот преобразующий объект может быть позже заменён с помощьюset().-
frozen(self)[source] -
Возвращает замороженную копию узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для сохранения ранее известного состояния преобразования, где
copy.deepcopy()обычно не используется.
-
property has_inverse -
bool(x) -> bool
Возвращает True, если аргумент x истинный, и False в противном случае. Встроенные True и False являются единственными двумя экземплярами класса bool. Класс bool является подклассом класса int и не может быть переопределён.
-
property is_affine -
bool(x) -> bool
Возвращает True, если аргумент x истинный, и False в противном случае. Встроенные True и False являются единственными двумя экземплярами класса bool. Класс bool является подклассом класса int и не может быть переопределён.
-
property is_separable -
bool(x) -> bool
Возвращает True, если аргумент x истинный, и False в противном случае. Встроенные True и False являются единственными двумя экземплярами класса bool. Класс bool является подклассом класса int и не может быть переопределён.
-
pass_through = True
-
set(self, child)[source] -
Заменяет текущий дочерний элемент этого преобразования другим.
Новый дочерний элемент должен иметь то же количество входных и выходных измерений, что и текущий.
-
-
class matplotlib.transforms.TransformedBbox(bbox, transform, **kwargs)[source] -
Базы:
matplotlib.transforms.BboxBaseОбъект
Bbox, автоматически преобразуемый заданным преобразованием. При изменении дочернего прямоугольника или преобразования границы этого прямоугольника будут обновляться соответственно.Параметры: -
bboxBbox -
transformTransform
-
get_points(self)[source]
-
-
class matplotlib.transforms.TransformedPatchPath(patch)[source] -
Базы:
matplotlib.transforms.TransformedPathКласс
TransformedPatchPathкэширует неаффинное преобразованное копиюPatch. Эта кэшированная копия автоматически обновляется при изменении неаффинной части преобразования или области.Параметры: -
patchPatch
-
-
class matplotlib.transforms.TransformedPath(path, transform)[source] -
Базы:
matplotlib.transforms.TransformNodeКласс
TransformedPathкэширует неаффинное преобразованное копиюPath. Эта кэшированная копия автоматически обновляется при изменении неаффинной части преобразования.Примечание
Пути считаются неизменяемыми этим классом. Любое обновление вершин/кодов пути не вызовет перерасчёта преобразования.
Параметры: -
pathPath -
transformTransform
-
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] -
Проверяет, содержит ли интервал данное значение (включительно).
Параметры: -
intervalsequence of scalar -
Последовательность длиной 2, точки, определяющие интервал.
-
valscalar -
Значение для проверки, находится ли оно в интервале.
Возвращает: - bool
-
Возвращает True, если заданное val находится в interval.
-
-
matplotlib.transforms.interval_contains_open(interval, val)[source] -
Проверка, исключая конечные точки, входит ли интервал в заданное значение.
Параметры: -
intervalsequence of scalar -
Последовательность длиной 2, конечные точки, определяющие интервал.
-
valscalar -
Значение, чтобы проверить, находится ли оно в интервале.
Возвращаемое значение: - bool
-
Возвращает true, если заданное значение находится в интервале.
-
-
matplotlib.transforms.nonsingular(vmin, vmax, expander=0.001, tiny=1e-15, increasing=True)[source] -
Изменение конечных точек диапазона по мере необходимости для избежания особенностей.
Параметры: -
vmin, vmaxfloat -
Начальные конечные точки.
-
expanderfloat, optional, default: 0.001 -
Дробная величина, на которую vmin и vmax расширяются, если исходный интервал слишком мал, на основе tiny.
-
tinyfloat, optional, default: 1e-15 -
Порог для отношения интервала к максимальному абсолютному значению его конечных точек. Если интервал меньше этого значения, он будет расширен. Это значение должно быть около 1e-15 или больше; в противном случае интервал будет приближаться к пределу разрешения двойной точности.
-
increasingbool, optional, 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')[source] -
Возвращает новый преобразователь с добавленным смещением.
Параметры: -
transTransform instance -
Любой преобразователь, к которому будет применено смещение.
-
figFigure, optional, default: None -
Текущая фигура. Может быть None, если units равны 'dots'.
-
x, yfloat, optional, default: 0.0 -
Указывает смещение, которое нужно применить.
-
units{'inches', 'points', 'dots'}, optional -
Единицы смещения.
Возвращаемое значение: -
transTransform instance -
Преобразователь со примененным смещением.
-
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.2.2/api/transformations.html