Spec-Zone.ru › Matplotlib 3.2

matplotlib.transforms

Схема наследования matplotlib.transforms, matplotlib.path

matplotlib включает в себя фреймворк для произвольных геометрических преобразований, который используется для определения конечного положения всех элементов, нарисованных на холсте.

Преобразования объединяются в деревья объектов TransformNode, чьё фактическое значение зависит от их дочерних элементов. При изменении содержимого дочерних элементов их родительские элементы автоматически инвалидируются. В следующий раз, когда к инвалидированному преобразованию будет обращаться, оно будет пересчитано, чтобы отразить эти изменения. Этот подход инвалидизации/кеширования предотвращает ненужные пересчёты преобразований и способствует улучшению производительности интерактивных элементов.

Например, вот график дерева преобразований, используемого для построения данных на графике:

../_images/transforms.png

Фреймворк можно использовать для аффинных и неаффинных преобразований. Однако для повышения скорости мы хотим использовать бэкэнд-рендереры для выполнения аффинных преобразований всякий раз, когда это возможно. Поэтому можно выполнить только аффинную или неаффинную часть преобразования на наборе данных. Аффинная часть всегда предполагается выполняться после неаффинной. Для любого преобразования:

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 x input_dims).

Возвращает:
valuesarray

Выходные значения в виде массива NumPy длиной input_dims или формы (N x output_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 x output_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 x input_dims).

Возвращает:
valuesarray

Выходные значения как массив NumPy длиной input_dims или формы (N x output_dims), в зависимости от входа.

transform_non_affine(self, points) [source]

Выполняет только неаффинную часть преобразования.

transform(values) всегда эквивалентно transform_affine(transform_non_affine(values)).

В неаффинных преобразованиях это, как правило, эквивалентно transform(values). В аффинных преобразованиях это всегда операция без действия.

Параметры:
valuesarray

Входные значения как массив NumPy длиной input_dims или формы (N x input_dims).

Возвращает:
valuesarray

Выходные значения как массив NumPy длиной input_dims или формы (N x output_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().

property bounds

Возвращает (x0, y0, width, height).

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
  • Когда True, игнорировать существующие границы прямоугольника Bbox.
  • Когда False, учитывать существующие границы прямоугольника Bbox.
  • Когда None, использовать последнее значение, переданное ignore().
updatex, updateybool, optional

Когда True, обновить значения x/y.

END_OF_DOCUMENT_MARKER
update_from_path(self, path, ignore=None, updatex=True, updatey=True) [source]

Обновление границ Bbox на основе переданных данных. После обновления границы будут иметь положительную ширину и высоту; x0 и y0 будут минимальными значениями.

Параметры:
pathPath
ignorebool, optional
  • если True, игнорировать существующие границы Bbox.
  • если False, включить существующие границы Bbox.
  • если None, использовать последнее значение, переданное в ignore().
updatex, updateybool, optional

Если True, обновить значения x/y.

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.

property bounds

Возвращает (x0, y0, width, height).

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) внутри ограничивающего прямоугольника или на его границе.

containsx(self, x) [source]

Возвращает, находится ли x в замкнутом интервале (x0, x1).

containsy(self, y) [source]

Возвращает, находится ли y в замкнутом интервале (y0, y1).

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.

property extents

Возвращает (x0, y0, x1, y1).

frozen(self) [source]

TransformNode — базовый класс для всего, что участвует в дереве преобразований и нуждается в инвалидации своих родителей или в инвалидации себя. Это включает классы, которые на самом деле не являются преобразованиями, такие как ограничивающие прямоугольники, поскольку некоторые преобразования зависят от ограничивающих прямоугольников для вычисления своих значений.

fully_contains(self, x, y) [source]

Возвращает, находится ли x, y внутри ограничивающего прямоугольника, но не на его границе.

fully_containsx(self, x) [source]

Возвращает, находится ли x в открытом интервале (x0, x1).

fully_containsy(self, y) [source]

Возвращает, находится ли y в открытом интервале (y0, y1).

fully_overlaps(self, other) [source]

Возвращает, пересекается ли этот ограничивающий прямоугольник с другим ограничивающим прямоугольником, не включая грани.

Параметры:
otherBboxBase
get_points(self) [source]
END_OF_DOCUMENT_MARKER
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 y0

Первая из пары y-координат, определяющих область.

Не гарантируется, что она меньше y1 (для этого используйте ymin).

property y1

Вторая из пары координат y, определяющих область обрезки.

Не гарантируется, что она будет больше, чем y0 (для этого используйте ymax).

property ymax

Верхняя граница области обрезки.

property ymin

Нижняя граница области обрезки.

class matplotlib.transforms.BboxTransform(boxin, boxout, **kwargs) [source]

Базы: matplotlib.transforms.Affine2DBase

BboxTransform линейно преобразует точки из одной Bbox в другую.

Создает новый BboxTransform, который линейно преобразует точки из boxin в boxout.

get_matrix(self) [source]

Получить массив аффинного преобразования для аффинной части этого преобразования.

is_separable = True
class matplotlib.transforms.BboxTransformFrom(boxin, **kwargs) [source]

Базы: matplotlib.transforms.Affine2DBase

BboxTransformFrom линейно преобразует точки из заданной Bbox в единичную область обрезки.

Создает новый TransformNode.

Параметры:
shorthand_namestr

Строка, представляющая «имя» преобразования. Имя не имеет никакого значения, кроме как для повышения читаемости str(transform) при DEBUG=True.

get_matrix(self) [source]

Получить массив аффинного преобразования для аффинной части этого преобразования.

is_separable = True
class matplotlib.transforms.BboxTransformTo(boxout, **kwargs) [source]

Базы: matplotlib.transforms.Affine2DBase

BboxTransformTo — это преобразование, которое линейно преобразует точки из единичной области обрезки в заданную Bbox.

Создает новый BboxTransformTo, который линейно преобразует точки из единичной области обрезки в boxout.

get_matrix(self) [source]

Получить массив аффинного преобразования для аффинной части этого преобразования.

is_separable = True
class matplotlib.transforms.BboxTransformToMaxOnly(boxout, **kwargs) [source]

Базы: matplotlib.transforms.BboxTransformTo

BboxTransformTo — это преобразование, которое линейно преобразует точки из единичной области обрезки в заданную 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.Transform

A "blended" transform uses one transform for the x-direction, and another transform for the y-direction.

This "generic" version can handle any given child transform in the x- and y-directions.

Create a new "blended" transform using x_transform to transform the x-axis and y_transform to transform the y-axis.

You will generally not call this constructor directly but use the blended_transform_factory function instead, which can determine automatically which kind of blended transform to create.

contains_branch(self, other) [source]

Return whether the given transform is a sub-tree of this transform.

This routine uses transform equality to identify sub-trees, therefore in many situations it is object id which will be used.

For the case where the given transform represents the whole of this transform, returns True.

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 to transform_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_dims or shape (N x input_dims).

Returns:
valuesarray

The output values as NumPy array of length input_dims or shape (N x output_dims), depending on the input.

class matplotlib.transforms.CompositeAffine2D(a, b, **kwargs) [source]

Bases: matplotlib.transforms.Affine2DBase

A composite transform formed by applying transform a then transform b.

This version is an optimization that handles the case where both a and b are 2D affines.

Create a new composite transform that is the result of applying transform a then transform b.

Both a and b must be instances of Affine2DBase.

You will generally not call this constructor directly but use the composite_transform_factory function instead, which can automatically choose the best kind of composite transform instance to create.

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.

END_OF_DOCUMENT_MARKER
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 x input_dims).

Возвращает:
valuesarray

Выходные значения в виде массива NumPy длиной input_dims или формы (N x output_dims), в зависимости от входа.

transform_non_affine(self, points) [source]

Выполняет только неаффинное подмножество преобразования.

transform(values) всегда эквивалентно transform_affine(transform_non_affine(values)).

В неаффинных преобразованиях это обычно эквивалентно transform(values). В аффинных преобразованиях это всегда пустая операция.

Параметры:
valuesarray

Входные значения в виде массива NumPy длиной input_dims или формы (N x input_dims).

Возвращает:
valuesarray

Выходные значения в виде массива NumPy длиной input_dims или формы (N x output_dims), в зависимости от входа.

transform_path_non_affine(self, path) [source]

Возвращает путь, преобразованный только неаффинной частью этого преобразования.

path: экземпляр Path.

transform_path(path) эквивалентно transform_path_affine(transform_path_non_affine(values)).

END_OF_DOCUMENT_MARKER
class matplotlib.transforms.IdentityTransform(*args, **kwargs) [source]

Bases: matplotlib.transforms.Affine2DBase

A 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 x output_dims).

Alternatively, accepts a numpy array of length input_dims and returns a numpy array of length output_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 to transform_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_dims or shape (N x input_dims).

Returns:
valuesarray

The output values as NumPy array of length input_dims or shape (N x output_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 to transform_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_dims or shape (N x input_dims).

Returns:
valuesarray

The output values as NumPy array of length input_dims or shape (N x output_dims), depending on the input.

transform_path(self, path) [source]

Returns a transformed path.

path: a Path instance.

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 Path instance.

transform_path(path) is equivalent to transform_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 Path instance.

transform_path(path) is equivalent to transform_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.BboxBase

A Bbox where 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.

END_OF_DOCUMENT_MARKER
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_dims
  • output_dims
  • transform()
  • inverted() (если обратное преобразование существует)

Следующие атрибуты можно переопределить, если значение по умолчанию не подходит:

  • is_separable (по умолчанию True для преобразований 1d -> 1d, иначе False)
  • has_inverse (по умолчанию True, если переопределён inverted(), иначе False)

Если преобразование должно выполнять нестандартные действия с объектами matplotlib.path.Path, например, добавление кривых там, где были сегменты прямых линий, оно должно переопределить:

  • transform_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 x output_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 x input_dims).

Возвращает:
valuesarray

Выходные значения в виде массива NumPy длиной input_dims или формы (N x output_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 x input_dims).

Возвращает:
valuesarray

Выходные значения в виде массива NumPy длиной input_dims или формы (N x output_dims), в зависимости от входных данных.

transform_path(self, path) [source]

Возвращает преобразованный путь.

path: экземпляр Path.

В некоторых случаях это преобразование может вставлять кривые в путь, который начинался как отрезки прямых.

transform_path_affine(self, path) [source]

Возвращает путь, преобразованный только аффинной частью этого преобразования.

path: экземпляр Path.

transform_path(path) эквивалентно transform_path_affine(transform_path_non_affine(values)).

transform_path_non_affine(self, path) [source]

Возвращает путь, преобразованный только неаффинной частью этого преобразования.

path: экземпляр Path.

transform_path(path) эквивалентно transform_path_affine(transform_path_non_affine(values)).

transform_point(self, point) [source]

Возвращает преобразованную точку.

Эта функция сохраняется только для обратной совместимости; более общий метод transform способен преобразовывать как список точек, так и одну точку.

Точка задаётся как последовательность длиной input_dims. Преобразованная точка возвращается как последовательность длиной output_dims.

class matplotlib.transforms.TransformNode(shorthand_name=None) [source]

Bases: object

TransformNode является базовым классом для всего, что участвует в дереве преобразований и нуждается в обновлении своих родителей или обновлении. Это включает классы, которые на самом деле не являются преобразованиями, такие как прямоугольные области, поскольку некоторые преобразования зависят от прямоугольных областей для вычисления своих значений.

Создаёт новый 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.

END_OF_DOCUMENT_MARKER
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API