matplotlib.transforms
matplotlib включает в себя фреймворк для произвольных геометрических преобразований, который используется для определения конечного положения всех элементов, нарисованных на холсте.
Преобразования объединяются в деревья объектов TransformNode, чьё фактическое значение зависит от их дочерних элементов. При изменении содержимого дочерних элементов, их родительские элементы автоматически делают недействительными. В следующий раз, когда будет обращаться к недействительному преобразованию, оно будет пересчитано, чтобы отразить эти изменения. Такой подход к проверке/кешированию предотвращает ненужные пересчёты преобразований и способствует улучшению интерактивной производительности.
Например, вот граф дерева преобразований, используемого для построения данных на графике:
Фреймворк может использоваться для аффинных и неаффинных преобразований. Однако, для скорости, мы хотим использовать рендереры бэкенда для выполнения аффинных преобразований, когда это возможно. Таким образом, возможно выполнить только аффинную или неаффинную часть преобразования на наборе данных. Аффинное преобразование всегда предполагается после неаффинного. Для любого преобразования:
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.AffineBase2D аффинные преобразования выполняются с помощью 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 xoutput_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 xoutput_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 xoutput_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 xoutput_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().-
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 -
updatex, updatey : bool, optional -
Когда
True, обновить значения x/y.
-
-
-
update_from_path(self, path, ignore=None, updatex=True, updatey=True)[исходный код] -
Обновление границ
Bboxна основе переданных данных. После обновления границы будут иметь положительную ширину и высоту; x0 и y0 будут минимальными значениями.Параметры:
-
x0 -
Первая из пары координат x, определяющих прямоугольник.
Не гарантируется, что она будет меньше
x1(для этого используйтеxmin).
-
x1 -
Вторая из пары координат x, определяющих прямоугольник.
Не гарантируется, что она будет больше
x0(для этого используйтеxmax).
-
y0 -
Первая из пары координат y, определяющих прямоугольник.
Не гарантируется, что она будет меньше
y1(для этого используйтеymin).
-
y1 -
Вторая из пары координат y, определяющих прямоугольник.
Не гарантируется, что она будет больше
y0(для этого используйтеymax).
-
-
class matplotlib.transforms.BboxBase(shorthand_name=None)[исходный код]
-
Базовые классы:
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.
-
-
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)в прямоугольной области или на её границе.
-
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.
-
frozen(self)[исходный код] -
TransformNode— базовый класс для всего, что участвует в дереве преобразований и нуждается в обновлении своих родителей или обновлении само. Это включает классы, которые на самом деле не являются преобразованиями, такие как прямоугольные области, поскольку некоторые преобразования зависят от прямоугольных областей для вычисления своих значений.
-
fully_contains(self, x, y)[исходный код] -
Возвращает, содержится ли
x, yв прямоугольной области, но не на её границе.
-
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 -
Левый край области задания.
-
-
y1 -
Вторая из пары координат y, определяющих область обрезки.
Не гарантируется, что она будет больше, чем
y0(для этого используйтеymax).
-
ymax -
Верхняя граница области обрезки.
-
ymin -
Нижняя граница области обрезки.
-
-
class matplotlib.transforms.BboxTransform(boxin, boxout, **kwargs)[исходный код] -
Базовые классы:
matplotlib.transforms.Affine2DBaseBboxTransformлинейно преобразует точки из однойBboxв другуюBbox.Создаёт новый
BboxTransform, который линейно преобразует точки из boxin в boxout.-
get_matrix(self)[исходный код] -
Получение массива аффинного преобразования для аффинной части этого преобразования.
-
is_separable = True
-
-
class matplotlib.transforms.BboxTransformFrom(boxin, **kwargs)[исходный код] -
Базовые классы:
matplotlib.transforms.Affine2DBaseBboxTransformFromлинейно преобразует точки из заданнойBboxв единичную область обрезки.-
get_matrix(self)[исходный код] -
Получение массива аффинного преобразования для аффинной части этого преобразования.
-
is_separable = True
-
-
class matplotlib.transforms.BboxTransformTo(boxout, **kwargs)[исходный код] -
Базовые классы:
matplotlib.transforms.Affine2DBaseBboxTransformTo— это преобразование, которое линейно преобразует точки из единичной области обрезки в заданнуюBbox.Создаёт новый
BboxTransformTo, который линейно преобразует точки из единичной области обрезки в boxout.-
get_matrix(self)[исходный код] -
Получение массива аффинного преобразования для аффинной части этого преобразования.
-
is_separable = True
-
-
class matplotlib.transforms.BboxTransformToMaxOnly(boxout, **kwargs)[исходный код] -
Базовые классы:
matplotlib.transforms.BboxTransformToBboxTransformTo— это преобразование, которое линейно преобразует точки из единичной области обрезки в заданную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
-
-
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 xoutput_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 xoutput_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 xoutput_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 xoutput_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 xoutput_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 xoutput_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)[исходный код] -
Получает матрицу аффинного преобразования для аффинной части этого преобразования.
-
-
class matplotlib.transforms.Transform(shorthand_name=None)[исходный код] -
Базовые классы:
matplotlib.transforms.TransformNodeБазовый класс всех экземпляров
TransformNode, которые фактически выполняют преобразование.Все неаффинные преобразования должны быть подклассами этого класса. Новые аффинные преобразования должны быть подклассами
Affine2D.Подклассы этого класса должны переопределять следующие члены (как минимум):
input_dimsoutput_dimstransform()is_separablehas_inverse-
inverted()(еслиhas_inverseравно True)
Если преобразование должно выполнять нестандартные действия с объектами
matplotlib.path.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 xoutput_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 xoutput_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 xoutput_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] -
Базовые классы:
objectTransformNode— базовый класс для всего, что участвует в дереве преобразований и должно инвалидировать своих родителей или быть инвалидированным. Это включает классы, которые на самом деле не являются преобразованиями, такие как рамки, так как некоторые преобразования зависят от рамок для вычисления своих значений.Создаёт новый
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.
-
-
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