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) [исходный код]

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

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

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

a c e
b d f
0 0 1

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

clear(self) [исходный код]

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

static from_values(a, b, c, d, e, f) [исходный код]

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

a c e
b d f
0 0 1

.

get_matrix(self) [исходный код]

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

a c e
b d f
0 0 1

.

static identity() [исходный код]

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

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

rotate(self, theta) [исходный код]

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

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

rotate_around(self, x, y, theta) [исходный код]

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

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

rotate_deg(self, degrees) [исходный код]

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

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

rotate_deg_around(self, x, y, degrees) [исходный код]

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

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

scale(self, sx, sy=None) [исходный код]

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

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

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

set(self, other) [исходный код]

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

set_matrix(self, mtx) [исходный код]

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

a c e
b d f
0 0 1

.

skew(self, xShear, yShear) [исходный код]

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

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

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

skew_deg(self, xShear, yShear) [исходный код]

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

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

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

translate(self, tx, ty) [исходный код]

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

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

class matplotlib.transforms.Affine2DBase(*args, **kwargs) [исходный код]

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

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

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

a c e
b d f
0 0 1

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

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

frozen(self) [исходный код]

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

has_inverse = True
input_dims = 2
inverted(self) [исходный код]

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

Результат работы этого метода следует рассматривать как временный. Обновление 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) [исходный код]

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

a c e
b d f
0 0 1
output_dims = 2
to_values(self) [исходный код]

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

transform_affine(self, points) [исходный код]

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

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) [исходный код]

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

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

class matplotlib.transforms.AffineBase(*args, **kwargs) [исходный код]

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

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

get_affine(self) [исходный код]

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

is_affine = True
transform(self, values) [исходный код]

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

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

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

transform_affine(self, values) [исходный код]

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

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) [исходный код]

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

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 [исходный код]

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

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

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

transform_path_affine(self, path) [исходный код]

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

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

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

transform_path_non_affine(self, path) [исходный код]

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

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

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

class matplotlib.transforms.Bbox(points, **kwargs) [исходный код]

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) [исходный код]

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

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

static from_extents(*args) [исходный код]

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

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

get_points(self) [исходный код]

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

ignore(self, value) [исходный код]

Установить, игнорировать ли существующие границы рамки последующими вызовами 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) [исходный код]

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

mutatedx(self) [исходный код]

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

mutatedy(self) [исходный код]

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

static null() [исходный код]

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

p0

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

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

p1

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

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

set(self, other) [исходный код]

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

set_points(self, points) [исходный код]

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

static unit() [исходный код]

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

update_from_data_xy(self, xy, ignore=None, updatex=True, updatey=True) [исходный код]

Обновляет границы прямоугольника на основе переданных данных. После обновления границы будут иметь положительную ширину и высоту; 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) [исходный код]

Обновление границ 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) [исходный код]
END_OF_DOCUMENT_MARKER

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

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

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

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

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

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

anchored(self, c, container=None) [исходный код]

Возвращает копию 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) [исходный код]

Возвращает, содержится ли (x, y) в прямоугольной области или на её границе.

containsx(self, x) [исходный код]

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

containsy(self, y) [исходный код]

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

corners(self) [исходный код]

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

Конкретно, это возвращает массив [[x0, y0], [x0, y1], [x1, y0], [x1, y1]].

count_contains(self, vertices) [исходный код]

Подсчитывает количество вершин, содержащихся в прямоугольной области Bbox. Любые вершины с нечисловыми значениями x или y игнорируются.

Параметры:
vertices : Nx2 Numpy array.
count_overlaps(self, bboxes) [исходный код]

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

Параметры:
bboxes : sequence of BboxBase objects
expanded(self, sw, sh) [исходный код]

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

extents

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

frozen(self) [исходный код]

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

fully_contains(self, x, y) [исходный код]

Возвращает, содержится ли x, y в прямоугольной области, но не на её границе.

fully_containsx(self, x) [исходный код]

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

fully_containsy(self, y) [исходный код]

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

fully_overlaps(self, other) [исходный код]

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

Параметры:
other : BboxBase
get_points(self) [исходный код]
height

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

static intersection(bbox1, bbox2) [исходный код]

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

intervalx

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

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

intervaly

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

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

inverse_transformed(self, transform) [исходный код]

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

is_affine = True
is_bbox = True
is_unit(self) [исходный код]

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

max

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

min

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

overlaps(self, other) [исходный код]

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

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

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

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

p1

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

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

padded(self, p) [исходный код]

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

rotated(self, radians) [исходный код]

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

shrunk(self, mx, my) [исходный код]

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

shrunk_to_aspect(self, box_aspect, container=None, fig_aspect=1.0) [исходный код]

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

size

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

splitx(self, *args) [исходный код]

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

splity(self, *args) [исходный код]

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

transformed(self, transform) [исходный код]

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

translated(self, tx, ty) [исходный код]

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

static union(bboxes) [исходный код]

Возвращает 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) [исходный код]

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

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

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

get_matrix(self) [исходный код]

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

is_separable = True
class matplotlib.transforms.BboxTransformFrom(boxin, **kwargs) [исходный код]

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

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

get_matrix(self) [исходный код]

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

is_separable = True
class matplotlib.transforms.BboxTransformTo(boxout, **kwargs) [исходный код]

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

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

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

get_matrix(self) [исходный код]

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

is_separable = True
class matplotlib.transforms.BboxTransformToMaxOnly(boxout, **kwargs) [исходный код]

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

BboxTransformTo — это преобразование, которое линейно преобразует точки из единичной области обрезки в заданную Bbox с фиксированным верхним левым углом (0, 0).

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

get_matrix(self) [исходный код]

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

class matplotlib.transforms.BlendedAffine2D(x_transform, y_transform, **kwargs) [исходный код]

Базовые классы: 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) [исходный код]

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

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

x_isdata, y_isdata = trans.contains_branch_seperately(ax.transData)
get_matrix(self) [исходный код]

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

is_separable = True
END_OF_DOCUMENT_MARKER
class matplotlib.transforms.BlendedGenericTransform(x_transform, y_transform, **kwargs) [исходный код]

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

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

Эта «универсальная» версия может обрабатывать любое заданное дочернее преобразование в направлениях x и y.

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

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

contains_branch(self, other) [исходный код]

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

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

Если заданное преобразование представляет собой всё это преобразование, возвращает True.

contains_branch_seperately(self, transform) [исходный код]

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

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

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

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

Примечание

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

frozen(self) [исходный код]

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

get_affine(self) [исходный код]

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

has_inverse
input_dims = 2
inverted(self) [исходный код]

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

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

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

is_affine
is_separable = True
output_dims = 2
pass_through = True
transform_non_affine(self, points) [исходный код]

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

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.

class matplotlib.transforms.CompositeAffine2D(a, b, **kwargs) [исходный код]

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

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

Эта версия оптимизирована для случая, когда и a, и b являются двумерными аффинными преобразованиями.

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

И a, и b должны быть экземплярами Affine2DBase.

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

depth

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

Примечание

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

get_matrix(self) [исходный код]

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

class matplotlib.transforms.CompositeGenericTransform(a, b, **kwargs) [исходный код]

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

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

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

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

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

depth
frozen(self) [исходный код]

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

get_affine(self) [исходный код]

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

has_inverse
inverted(self) [исходный код]

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

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

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

is_affine
is_separable
pass_through = True
transform_affine(self, points) [исходный код]

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

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) [исходный код]

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

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) [исходный код]

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

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

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

class matplotlib.transforms.IdentityTransform(*args, **kwargs) [исходный код]

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

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

frozen(self) [исходный код]

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

get_affine(self) [исходный код]

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

get_matrix(self) [исходный код]

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

inverted(self) [исходный код]

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

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

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

transform(self, points) [исходный код]

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

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

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

transform_affine(self, points) [исходный код]

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

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) [исходный код]

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

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: экземпляр Path.

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

transform_path_affine(self, path) [исходный код]

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

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

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

transform_path_non_affine(self, path) [исходный код]

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

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) [исходный код]

Базовые классы: 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) [исходный код]
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) [исходный код]

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

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

get_matrix(self) [исходный код]

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

END_OF_DOCUMENT_MARKER
class matplotlib.transforms.Transform(shorthand_name=None) [исходный код]

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

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

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

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

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

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

  • transform_path()

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

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

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

contains_branch(self, other) [исходный код]

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

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

Если данное преобразование представляет собой всё это преобразование, возвращает True.

contains_branch_seperately(self, other_transform) [исходный код]

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

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

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

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

Примечание

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

get_affine(self) [исходный код]

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

get_matrix(self) [исходный код]

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

has_inverse = False

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

input_dims = None

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

inverted(self) [исходный код]

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

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

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

is_separable = False

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

output_dims = None

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

transform(self, values) [исходный код]

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

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

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

transform_affine(self, values) [исходный код]

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

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) [исходный код]

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

Параметры:
angles : (N,) array-like

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

pts : (N, 2) array-like

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

radians : bool, default: False

Заданы ли angles в радианах или градусах.

pushoff : float

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

Возвращает:
transformed_angles : (N,) array
transform_bbox(self, bbox) [исходный код]

Преобразует заданную ограничивающую рамку.

Обратите внимание: для более интеллектуальных преобразований, включая кэширование (часто необходимое для рисунков 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]

Базовые классы: object

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

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

Параметры:
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]

Базовые классы: 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