Spec-Zone.ru › Matplotlib 3.1

matplotlib.transforms

Inheritance diagram of matplotlib.transforms, matplotlib.path

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

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

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

../_images/transforms.png

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

full transform == non-affine part + affine part

От бэкэндов не ожидается, что они будут обрабатывать сами неаффинные преобразования.

class matplotlib.transforms.Affine2D(matrix=None, **kwargs) [source]

Основания: matplotlib.transforms.Affine2DBase

Изменяемая 2D аффинная трансформация.

Инициализация аффинной трансформации из 3x3 массива numpy с плавающей точкой:

a c e
b d f
0 0 1

Если matrix равно None, инициализация выполняется с тождественной трансформацией.

clear(self) [source]

Сброс базовой матрицы на тождественную трансформацию.

static from_values(a, b, c, d, e, f) [source]

(статический метод) Создание нового экземпляра Affine2D из заданных значений:

a c e
b d f
0 0 1

.

get_matrix(self) [source]

Получение базовой матрицы преобразования в виде 3x3 массива numpy:

a c e
b d f
0 0 1

.

static identity() [source]

(статический метод) Возврат нового объекта Affine2D, представляющего тождественное преобразование.

Если эта трансформация не будет изменяться, используйте более быстрый класс IdentityTransform.

rotate(self, theta) [source]

Добавление поворота (в радианах) к этому преобразованию на месте.

Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами rotate(), rotate_deg(), translate() и scale().

rotate_around(self, x, y, theta) [source]

Добавление поворота (в радианах) вокруг точки (x, y) на месте.

Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами rotate(), rotate_deg(), translate() и scale().

rotate_deg(self, degrees) [source]

Добавление поворота (в градусах) к этому преобразованию на месте.

Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами rotate(), rotate_deg(), translate() и scale().

rotate_deg_around(self, x, y, degrees) [source]

Добавление поворота (в градусах) вокруг точки (x, y) на месте.

Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами rotate(), rotate_deg(), translate() и scale().

scale(self, sx, sy=None) [source]

Добавление масштабирования на месте.

Если sy равно None, то же масштабирование применяется по обеим осям x и y.

Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами rotate(), rotate_deg(), translate() и scale().

set(self, other) [source]

Установка этого преобразования из замороженной копии другого объекта Affine2DBase.

set_matrix(self, mtx) [source]

Установка базовой матрицы преобразования из 3x3 массива numpy:

a c e
b d f
0 0 1

.

skew(self, xShear, yShear) [source]

Добавление сдвига на месте.

xShear и yShear — углы сдвига вдоль осей x и y соответственно в радианах.

Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами rotate(), rotate_deg(), translate() и scale().

skew_deg(self, xShear, yShear) [source]

Добавление сдвига на месте.

xShear и yShear — углы сдвига вдоль осей x и y соответственно в градусах.

Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами rotate(), rotate_deg(), translate() и scale().

translate(self, tx, ty) [source]

Добавление смещения на месте.

Возвращает self, поэтому этот метод можно легко объединить с дополнительными вызовами rotate(), rotate_deg(), translate() и scale().

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

Базовый класс всех 2D аффинных преобразований.

Основывается на: matplotlib.transforms.AffineBase

2D аффинные преобразования выполняются с помощью 3x3 массива numpy:

a c e
b d f
0 0 1

Этот класс предоставляет только для чтения интерфейс. Для изменяемого 2D аффинного преобразования используйте Affine2D.

Подклассы этого класса, как правило, должны будут переопределять конструктор и get_matrix(), который генерирует пользовательскую 3x3 матрицу.

frozen(self) [source]

Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для сохранения ранее известного состояния преобразования, где copy.deepcopy() может быть использовано обычно.

has_inverse = True
input_dims = 2
inverted(self) [source]

Возвращает соответствующее обратное преобразование.

Результат работы этого метода следует рассматривать как временный. Обновление self не вызывает соответствующего обновления его инвертированной копии.

x === self.inverted().transform(self.transform(x))

is_separable

bool(x) -> bool

Возвращает True, если аргумент x истинный, False в противном случае. Встроенные True и False — единственные два экземпляра класса bool. Класс bool является подклассом класса int и не может быть подклассом.

static matrix_from_values(a, b, c, d, e, f) [source]

(staticmethod) Создаёт новую матрицу преобразования как 3x3 массив numpy следующего вида:

a c e
b d f
0 0 1
output_dims = 2
to_values(self) [source]

Возвращает значения матрицы в виде (a, b, c, d, e, f) кортежа.

transform_affine(self, points) [source]

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

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

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

Принимает массив numpy формы (N x input_dims) и возвращает массив numpy формы (N x output_dims).

В качестве альтернативы, принимает массив numpy длины input_dims и возвращает массив numpy длины output_dims.

transform_point(self, point) [source]

Удобная функция, которая возвращает преобразованную копию одной точки.

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

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

Основывается на: matplotlib.transforms.Transform

Базовый класс всех аффинных преобразований любого числа измерений.

get_affine(self) [source]

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

is_affine = True
transform(self, values) [source]

Выполняет преобразование над заданным массивом значений.

Принимает массив numpy формы (N x input_dims) и возвращает массив numpy формы (N x output_dims).

В качестве альтернативы, принимает массив numpy длины input_dims и возвращает массив numpy длины output_dims.

transform_affine(self, values) [source]

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

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

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

Принимает массив numpy формы (N x input_dims) и возвращает массив numpy формы (N x output_dims).

В качестве альтернативы, принимает массив numpy длины input_dims и возвращает массив numpy длины output_dims.

transform_non_affine(self, points) [source]

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

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

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

Принимает массив numpy формы (N x input_dims) и возвращает массив numpy формы (N x output_dims).

В качестве альтернативы, принимает массив numpy длины input_dims и возвращает массив numpy длины output_dims.

transform_path(self, path) Path [source]

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

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

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

transform_path_affine(self, path) [source]

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

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

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

transform_path_non_affine(self, path) [source]

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

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

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

class matplotlib.transforms.Bbox(points, **kwargs) [source]

Bases: matplotlib.transforms.BboxBase

Изменяемый прямоугольник.

Параметры:
points : ndarray

Двумерный массив numpy размером 2x2 в формате [[x0, y0], [x1, y1]].

Примечания

Если вам нужно создать объект Bbox из других данных, рассмотрите статические методы unit(), from_bounds() и from_extents().

bounds

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

static from_bounds(x0, y0, width, height) [source]

(статический метод) Создает новый Bbox из x0, y0, ширины и высоты.

Ширина и высота могут быть отрицательными.

static from_extents(*args) [source]

(статический метод) Создает новый прямоугольник из слева, снизу, справа и сверху.

Ось y возрастает вверх.

get_points(self) [source]

Получить точки прямоугольника непосредственно в виде массива numpy в формате: [[x0, y0], [x1, y1]].

ignore(self, value) [source]

Установить, игнорировать ли существующие границы рамки последующими вызовами update_from_data_xy().

value : bool
  • Когда True, последующие вызовы update_from_data_xy() будут игнорировать существующие границы прямоугольника Bbox.
  • Когда False, последующие вызовы update_from_data_xy() будут учитывать существующие границы прямоугольника Bbox.
intervalx

Пара x-координат, определяющих прямоугольник.

Не гарантируется, что они отсортированы слева направо.

intervaly

Пара y-координат, определяющих прямоугольник.

Не гарантируется, что они отсортированы снизу вверх.

minpos
minposx
minposy
mutated(self) [source]

Возвращает, изменился ли прямоугольник с момента инициализации.

mutatedx(self) [source]

Возвращает, изменились ли пределы по оси x с момента инициализации.

mutatedy(self) [source]

Возвращает, изменились ли пределы по оси y с момента инициализации.

static null() [source]

(статический метод) Создает новый нулевой прямоугольник Bbox от (бесконечность, бесконечность) до (-бесконечность, -бесконечность).

p0

Первая пара (x, y) координат, определяющих прямоугольник.

Не гарантируется, что это нижний левый угол (для этого используйте min).

p1

Вторая пара (x, y) координат, определяющих прямоугольник.

Не гарантируется, что это верхний правый угол (для этого используйте max).

set(self, other) [source]

Устанавливает этот прямоугольник по "замороженным" границам другого Bbox.

set_points(self, points) [source]

Устанавливает точки прямоугольника напрямую из массива numpy в формате: [[x0, y0], [x1, y1]]. Проверка ошибок не выполняется, так как этот метод предназначен в основном для внутреннего использования.

static unit() [source]

(статический метод) Создает новый единичный прямоугольник Bbox от (0, 0) до (1, 1).

update_from_data_xy(self, xy, ignore=None, updatex=True, updatey=True) [source]

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

Параметры:
xy : ndarray

Массив numpy с 2D точками.

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

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

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

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

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

При True, обновить значения x/y.

x0

Первая из пары координат x, определяющих прямоугольник.

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

x1

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

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

y0

Первая из пары координат y, определяющих прямоугольник.

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

y1

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

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

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

Базовые классы: matplotlib.transforms.TransformNode

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

Каноническое представление — это две точки без ограничений на их порядок. Предоставляются удобные свойства для получения левой, нижней, правой и верхней границ, а также ширины и высоты, но они не хранятся явно.

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

Параметры:
shorthand_name : str

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

anchored(self, c, container=None) [source]

Возвращает копию Bbox, смещённую в позицию c внутри контейнера.

Параметры:
c : (float, float) or str

Может быть:

  • Последовательностью (cx, cy), где cx и cy изменяются от 0 до 1, где 0 — слева или снизу, а 1 — справа или сверху
  • строкой: - 'C' для центрирования - 'S' для нижнего центра - 'SE' для нижнего левого - 'E' для левого - и т.д.
container : Bbox, optional

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

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 игнорируются.

Параметры:
vertices : Nx2 Numpy array.
count_overlaps(self, bboxes) [source]

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

Параметры:
bboxes : sequence of BboxBase objects
expanded(self, sw, sh) [source]

Создаёт прямоугольную область Bbox, расширяя текущую вокруг её центра на коэффициенты sw и sh.

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]

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

Параметры:
other : BboxBase
get_points(self) [source]
height

Высота области задания.

static intersection(bbox1, bbox2) [source]

Возвращает пересечение bbox1 и bbox2, если они пересекаются, или None, если нет.

intervalx

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

Не гарантируется, что значения отсортированы слева направо.

intervaly

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

Не гарантируется, что значения отсортированы снизу вверх.

inverse_transformed(self, transform) [source]

Создаёт Bbox путём статического преобразования текущей области задания с помощью обратного преобразования transform.

is_affine = True
is_bbox = True
is_unit(self) [source]

Возвращает значение, определяющее, является ли область задания единичной (от (0, 0) до (1, 1)).

max

Правый верхний угол области задания.

min

Левый нижний угол области задания.

overlaps(self, other) [source]

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

Параметры:
other : BboxBase
p0

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

Не гарантируется, что это левый нижний угол (для этого используйте min).

p1

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

Не гарантируется, что это правый верхний угол (для этого используйте max).

padded(self, p) [source]

Создаёт Bbox путём добавления отступа p со всех четырёх сторон текущей области задания.

rotated(self, radians) [source]

Возвращает новую область задания, которая охватывает повернутую версию текущей области задания на заданный угол в радианах. Новая область задания по-прежнему ориентирована относительно осей.

shrunk(self, mx, my) [source]

Возвращает копию Bbox, уменьшенную на множитель mx по оси x и my по оси y. Левый нижний угол области задания остаётся неизменным. Обычно mx и my будут меньше 1, но это не обязательно.

shrunk_to_aspect(self, box_aspect, container=None, fig_aspect=1.0) [source]

Возвращает копию Bbox, уменьшенную до желаемого соотношения сторон box_aspect. Если координаты области задания относительные (например, доли от большей области, например, фигуры), то физическое соотношение сторон этой фигуры указывается с помощью fig_aspect, так что box_aspect также может быть задано как отношение абсолютных размеров, а не относительных.

size

Ширина и высота области задания.

splitx(self, *args) [source]

Возвращает список новых Bbox объектов, полученных путём разделения исходной области вертикальными линиями в дробных позициях, заданных параметром args.

splity(self, *args) [source]

Возвращает список новых Bbox объектов, полученных путём разделения исходной области горизонтальными линиями в дробных позициях, заданных параметром args.

transformed(self, transform) [source]

Создаёт Bbox путём статического преобразования текущей области задания с помощью преобразования transform.

translated(self, tx, ty) [source]

Создаёт Bbox путём смещения текущей области задания на tx и ty.

static union(bboxes) [source]

Возвращает Bbox, содержащую все переданные bboxes.

width

Ширина области задания.

x0

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

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

x1

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

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

xmax

Правый край области задания.

xmin

Левый край области задания.

y0

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

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

y1

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

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

ymax

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

ymin

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

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

Базовые классы: matplotlib.transforms.Affine2DBase

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

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

get_matrix(self) [source]

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

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

Базовые классы: matplotlib.transforms.Affine2DBase

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

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.Affine2DBase

Преобразование «смешанного» типа использует одно преобразование для оси x и другое для оси y.

Этот вариант — оптимизация для случая, когда оба дочерних преобразования являются экземплярами типа Affine2DBase.

Создаёт новое преобразование «смешанного» типа, используя x_transform для преобразования оси x и y_transform для преобразования оси y.

И x_transform, и y_transform должны быть аффинными 2D-преобразованиями.

Обычно вы не будете вызывать этот конструктор напрямую, а воспользуетесь функцией blended_transform_factory(), которая автоматически определит, какой тип смешанного преобразования создать.

contains_branch_seperately(self, transform) [source]

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

Распространённое использование этого метода — определение, является ли преобразование смешанным преобразованием, содержащим преобразование данных осей. Например:

x_isdata, y_isdata = trans.contains_branch_seperately(ax.transData)
get_matrix(self) [source]

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

is_separable = True
END_OF_DOCUMENT_MARKER
class matplotlib.transforms.BlendedGenericTransform(x_transform, y_transform, **kwargs) [source]

Bases: 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.

contains_branch_seperately(self, transform) [source]

Returns whether the given branch is a sub-tree of this transform on each separate dimension.

A common use for this method is to identify if a transform is a blended transform containing an axes' data transform. e.g.:

x_isdata, y_isdata = trans.contains_branch_seperately(ax.transData)
depth

Returns the number of transforms which have been chained together to form this Transform instance.

Примечание

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

frozen(self) [source]

Returns a frozen copy of this transform node. The frozen copy will not update when its children change. Useful for storing a previously known state of a transform where copy.deepcopy() might normally be used.

get_affine(self) [source]

Get the affine part of this transform.

has_inverse
input_dims = 2
inverted(self) [source]

Return the corresponding inverse transformation.

The return value of this method should be treated as temporary. An update to self does not cause a corresponding update to its inverted copy.

x === self.inverted().transform(self.transform(x))

is_affine
is_separable = True
output_dims = 2
pass_through = True
transform_non_affine(self, points) [source]

Performs only the non-affine part of the transformation.

transform(values) is always equivalent 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.

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.

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.

depth

Returns the number of transforms which have been chained together to form this Transform instance.

Примечание

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

get_matrix(self) [source]

Get the Affine transformation array for the affine part of this transform.

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

Bases: matplotlib.transforms.Transform

Составной преобразователь, образованный применением преобразования a, а затем преобразования b.

Этот «обобщённый» вариант может обрабатывать любые два произвольных преобразования.

Создаёт новый составной преобразователь, являющийся результатом применения преобразования a, а затем преобразования b.

Обычно вы не будете вызывать этот конструктор напрямую, а вместо этого используйте функцию composite_transform_factory(), которая может автоматически выбрать лучший тип экземпляра составного преобразователя для создания.

depth
frozen(self) [source]

Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для хранения ранее известного состояния преобразования, где copy.deepcopy() обычно использовалось бы.

get_affine(self) [source]

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

has_inverse
inverted(self) [source]

Возвращает соответствующее обратное преобразование.

Результат работы этого метода следует рассматривать как временный. Обновление self не вызывает соответствующего обновления его инвертированной копии.

x === self.inverted().transform(self.transform(x))

is_affine
is_separable
pass_through = True
transform_affine(self, points) [source]

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

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

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

Принимает массив NumPy формы (N x input_dims) и возвращает массив NumPy формы (N x output_dims).

В качестве альтернативы, принимает массив NumPy длиной input_dims и возвращает массив NumPy длиной output_dims.

transform_non_affine(self, points) [source]

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

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

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

Принимает массив NumPy формы (N x input_dims) и возвращает массив NumPy формы (N x output_dims).

В качестве альтернативы, принимает массив NumPy длиной input_dims и возвращает массив NumPy длиной output_dims.

transform_path_non_affine(self, path) [source]

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

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

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

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

Основы: matplotlib.transforms.Affine2DBase

Специальный класс, выполняющий операцию тождественного преобразования быстрым способом.

frozen(self) [source]

Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для хранения ранее известного состояния преобразования, где copy.deepcopy() обычно может быть использован.

get_affine(self) [source]

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

get_matrix(self) [source]

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

inverted(self) [source]

Возвращает соответствующее обратное преобразование.

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

x === self.inverted().transform(self.transform(x))

transform(self, points) [source]

Выполняет преобразование заданного массива значений.

Принимает массив NumPy формы (N x input_dims) и возвращает массив NumPy формы (N x output_dims).

В качестве альтернативы, принимает массив NumPy длины input_dims и возвращает массив NumPy длины output_dims.

transform_affine(self, points) [source]

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

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

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

Принимает массив NumPy формы (N x input_dims) и возвращает массив NumPy формы (N x output_dims).

В качестве альтернативы, принимает массив NumPy длины input_dims и возвращает массив NumPy длины output_dims.

transform_non_affine(self, points) [source]

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

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

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

Принимает массив NumPy формы (N x input_dims) и возвращает массив NumPy формы (N x output_dims).

В качестве альтернативы, принимает массив NumPy длины input_dims и возвращает массив NumPy длины output_dims.

transform_path(self, path) [source]

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

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

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

transform_path_affine(self, path) [source]

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

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

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

transform_path_non_affine(self, path) [source]

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

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

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

class matplotlib.transforms.LockableBbox(bbox, x0=None, y0=None, x1=None, y1=None, **kwargs) [source]

Основы: matplotlib.transforms.BboxBase

Объект Bbox, где некоторые элементы могут быть заблокированы на определённых значениях.

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

Параметры:
bbox : Bbox

Дочерний прямоугольник области для обертывания.

x0 : float or None

Заблокированное значение для x0 или None, чтобы оставить незаблокированным.

y0 : float or None

Заблокированное значение для y0 или None, чтобы оставить незаблокированным.

x1 : float or None

Заблокированное значение для x1 или None, чтобы оставить незаблокированным.

y1 : float or None

Заблокированное значение для y1 или None, чтобы оставить незаблокированным.

get_points(self) [source]
locked_x0

float или None: Значение, используемое для заблокированного x0.

locked_x1

float или None: Значение, используемое для заблокированного x1.

locked_y0

float или None: Значение, используемое для заблокированного y0.

locked_y1

float или None: Значение, используемое для заблокированного y1.

class matplotlib.transforms.ScaledTranslation(xt, yt, scale_trans, **kwargs) [source]

Основы: matplotlib.transforms.Affine2DBase

Преобразование, которое переводит на xt и yt после того, как xt и yt были преобразованы scale_trans.

get_matrix(self) [source]

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

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

Bases: matplotlib.transforms.TransformNode

Базовый класс всех экземпляров TransformNode, которые фактически выполняют преобразование.

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

Подклассы этого класса должны переопределять следующие члены (как минимум):

  • input_dims
  • output_dims
  • transform()
  • is_separable
  • has_inverse
  • inverted() (если has_inverse равно True)

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

  • transform_path()

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

Parameters:
shorthand_name : str

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

contains_branch(self, other) [source]

Возвращает, является ли данное преобразование поддеревом этого преобразования.

Эта функция использует равенство преобразований для идентификации поддеревьев, поэтому во многих ситуациях будет использоваться идентификатор объекта.

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

contains_branch_seperately(self, other_transform) [source]

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

Общее применение этого метода — идентифицировать, является ли преобразование комбинированным преобразованием, содержащим преобразование данных осей. Например:

x_isdata, y_isdata = trans.contains_branch_seperately(ax.transData)
depth

Возвращает количество преобразований, которые были объединены для создания этого экземпляра Transform.

Примечание

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

get_affine(self) [source]

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

get_matrix(self) [source]

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

has_inverse = False

True, если у этого преобразования есть соответствующее обратное преобразование.

input_dims = None

Число входных размерностей этого преобразования. Должно быть переопределено (целыми числами) в подклассе.

inverted(self) [source]

Возвращает соответствующее обратное преобразование.

Результат этой функции следует рассматривать как временный. Обновление self не приводит к соответствующему обновлению его инвертированной копии.

x === self.inverted().transform(self.transform(x))

is_separable = False

True, если это преобразование разделяемо по x- и y-размерностям.

output_dims = None

Число выходных размерностей этого преобразования. Должно быть переопределено (целыми числами) в подклассе.

transform(self, values) [source]

Выполняет преобразование заданного массива значений.

Принимает массив NumPy формы (N x input_dims) и возвращает массив NumPy формы (N x output_dims).

В качестве альтернативы принимает массив NumPy длиной input_dims и возвращает массив NumPy длиной output_dims.

transform_affine(self, values) [source]

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

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

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

Принимает массив NumPy формы (N x input_dims) и возвращает массив NumPy формы (N x output_dims).

В качестве альтернативы принимает массив NumPy длиной input_dims и возвращает массив NumPy длиной output_dims.

transform_angles(self, angles, pts, radians=False, pushoff=1e-05) [source]

Преобразует набор углов, закрепленных в определенных местах.

Parameters:
angles : (N,) array-like

Углы для преобразования.

pts : (N, 2) array-like

Точки, где закреплены углы.

radians : bool, default: False

Являются ли angles радианами или градусами.

pushoff : float

Для каждой точки в pts и угла в angles преобразованный угол вычисляется путем преобразования отрезка длиной pushoff, начинающегося в этой точке и образующего этот угол относительно горизонтальной оси, и измерения угла между горизонтальной осью и преобразованным отрезком.

Returns:
transformed_angles : (N,) array
transform_bbox(self, bbox) [source]

Преобразует заданную область.

Обратите внимание, для более интеллектуальных преобразований, включая кэширование (частая необходимость для matplotlib-рисунков), см. TransformedBbox.

transform_non_affine(self, values) [source]

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

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

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

Принимает массив NumPy формы (N x input_dims) и возвращает массив NumPy формы (N x output_dims).

В качестве альтернативы, принимает массив NumPy длины input_dims и возвращает массив NumPy длины output_dims.

transform_path(self, path) [source]

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

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

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

transform_path_affine(self, path) [source]

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

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

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

transform_path_non_affine(self, path) [source]

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

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

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

transform_point(self, point) [source]

Удобная функция, которая возвращает преобразованную копию одной точки.

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

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

Bases: object

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

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

Parameters:
shorthand_name : str

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

INVALID = 3
INVALID_AFFINE = 2
INVALID_NON_AFFINE = 1
frozen(self) [source]

Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для хранения ранее известного состояния преобразования, где copy.deepcopy() обычно используется.

invalidate(self) [source]

Инвалидирует этот TransformNode и запускает инвалидацию его предков. Следует вызывать всякий раз, когда преобразование изменяется.

is_affine = False
is_bbox = False
pass_through = False

Если pass_through равно True, все предки всегда будут инвалидированы, даже если «self» уже недействителен.

set_children(self, *children) [source]

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

class matplotlib.transforms.TransformWrapper(child) [source]

Bases: matplotlib.transforms.Transform

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

Это полезно, если узел дерева преобразований должен быть заменён во время выполнения преобразованием другого типа. Этот класс позволяет правильно инициировать эту замену.

Обратите внимание, что экземпляры TransformWrapper должны иметь одинаковые входные и выходные измерения на протяжении всего своего жизненного цикла, поэтому дочернее преобразование может быть заменено только другим дочерним преобразованием с теми же измерениями.

child: экземпляр класса Transform. Позже этот дочерний элемент можно заменить с помощью set().

frozen(self) [source]

Возвращает замороженную копию этого узла преобразования. Замороженная копия не будет обновляться при изменении её дочерних элементов. Полезно для хранения ранее известного состояния преобразования, где copy.deepcopy() обычно используется.

has_inverse
is_affine
is_separable
pass_through = True
set(self, child) [source]

Заменить текущее дочернее преобразование другим.

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

class matplotlib.transforms.TransformedBbox(bbox, transform, **kwargs) [source]

Основы: matplotlib.transforms.BboxBase

Объект Bbox, автоматически преобразуемый заданным преобразованием. При изменении дочернего прямоугольника или преобразования границы этого прямоугольника будут обновляться соответственно.

Параметры:
bbox : Bbox
transform : Transform
get_points(self) [source]
class matplotlib.transforms.TransformedPatchPath(patch) [source]

Основы: matplotlib.transforms.TransformedPath

Класс TransformedPatchPath кэширует неаффинное преобразованное копию Patch. Эта кэшированная копия автоматически обновляется при изменении неаффинной части преобразования или области.

Создает новый объект TransformedPatchPath из заданного Patch.

class matplotlib.transforms.TransformedPath(path, transform) [source]

Основы: matplotlib.transforms.TransformNode

Класс TransformedPath кэширует неаффинное преобразованное копию Path. Эта кэшированная копия автоматически обновляется при изменении неаффинной части преобразования.

Примечание

Пути считаются неизменяемыми этим классом. Любое обновление вершин/кодов пути не вызовет повторного вычисления преобразования.

Создает новый объект TransformedPath из заданного Path и Transform.

get_affine(self) [source]
get_fully_transformed_path(self) [source]

Возвращает полностью преобразованную копию дочернего пути.

get_transformed_path_and_affine(self) [source]

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

get_transformed_points_and_affine(self) [source]

Возвращает копию дочернего пути, с уже применённой неаффинной частью преобразования, вместе с аффинной частью пути, необходимой для завершения преобразования. В отличие от get_transformed_path_and_affine(), интерполяция не будет выполнена.

matplotlib.transforms.blended_transform_factory(x_transform, y_transform) [source]

Создает новое "смешанное" преобразование, используя x_transform для преобразования оси x и y_transform для преобразования оси y.

Возвращается более быстрая версия смешанного преобразования для случая, когда оба дочерних преобразования являются аффинными.

matplotlib.transforms.composite_transform_factory(a, b) [source]

Создает новое составное преобразование, являющееся результатом применения преобразования a, а затем преобразования b.

Для случаев, когда оба дочерних преобразования аффинные, или одно или другое является тождественным преобразованием, предоставляются сокращённые версии смешанного преобразования.

Составные преобразования также могут быть созданы с помощью оператора '+', например:

c = a + b
matplotlib.transforms.interval_contains(interval, val) [source]

Проверяет, содержит ли интервал заданное значение (включительно).

Параметры:
interval : sequence of scalar

Последовательность длиной 2, точки, определяющие интервал.

val : scalar

Значение, которое нужно проверить на принадлежность интервалу.

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

Возвращает True, если заданное val находится внутри interval.

matplotlib.transforms.interval_contains_open(interval, val) [source]

Проверяет, содержит ли интервал заданное значение (исключая концы).

Параметры:
interval : sequence of scalar

Последовательность длиной 2, точки, определяющие интервал.

val : scalar

Значение, которое нужно проверить на принадлежность интервалу.

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

Возвращает true, если данное val находится в интервале.

matplotlib.transforms.nonsingular(vmin, vmax, expander=0.001, tiny=1e-15, increasing=True) [source]

Изменяет конечные точки диапазона по необходимости, чтобы избежать особенностей.

Параметры:
vmin, vmax : float

Начальные конечные точки.

expander : float, optional, default: 0.001

Доля, на которую vmin и vmax расширяются, если исходный интервал слишком мал, на основе tiny.

tiny : float, optional, default: 1e-15

Порог для отношения интервала к максимальному абсолютному значению его конечных точек. Если интервал меньше этого значения, он будет расширен. Это значение должно быть около 1e-15 или больше; в противном случае интервал будет приближаться к пределу разрешения двойной точности.

increasing : bool, optional, default: True

Если True, меняет местами vmin, vmax, если vmin > vmax.

Возвращает:
vmin, vmax : float

Конечные точки, расширенные и/или поменяв местами при необходимости. Если любой из входов равен inf или NaN, или если оба входа равны 0 или очень близки к нулю, возвращается -expander, expander.

END_OF_DOCUMENT_MARKER
matplotlib.transforms.offset_copy(trans, fig=None, x=0.0, y=0.0, units='inches') [source]

Возвращает новый преобразователь с добавленным смещением.

Параметры:
trans : Transform instance

Любой преобразователь, к которому будет применено смещение.

fig : Figure, optional, default: None

Текущая фигура. Может быть None, если единицы равны 'точки'.

x, y : float, optional, default: 0.0

Указывает смещение, которое нужно применить.

units : {'inches', 'points', 'dots'}, optional

Единицы смещения.

Возвращаемое значение:
trans : Transform instance

Преобразователь со применённым смещением.

© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.1.1/api/transformations.html

Spec-Zone.ru

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