matplotlib.transforms#

Inheritance diagram of matplotlib.transforms

Matplotlib enthält ein Framework für beliebige geometrische Transformationen, das verwendet wird, um die endgültige Position aller auf der Leinwand gezeichneten Elemente zu bestimmen.

Transformationen werden zu Bäumen von TransformNode-Objekten zusammengesetzt, deren tatsächlicher Wert von ihren Kindern abhängt. Wenn sich der Inhalt von Kindern ändert, werden deren Eltern automatisch invalidiert. Beim nächsten Zugriff auf eine invalidierte Transformation wird diese neu berechnet, um diese Änderungen widerzuspiegeln. Dieser Ansatz der Invalidierung/Zwischenspeicherung verhindert unnötige Neuberechnungen von Transformationen und trägt zu einer besseren interaktiven Leistung bei.

Hier ist beispielsweise ein Graph des Transformationsbaums, der zum Plotten von Daten in die Abbildung verwendet wird

Diagram of transform tree from data to figure coordinates.

Das Framework kann sowohl für affine als auch für nicht-affine Transformationen verwendet werden. Aus Geschwindigkeitsgründen möchten wir jedoch die Backend-Renderer verwenden, um affine Transformationen nach Möglichkeit durchzuführen. Daher ist es möglich, nur den affinen oder den nicht-affinen Teil einer Transformation auf einen Datensatz anzuwenden. Die affine Transformation wird immer nach der nicht-affinen angenommen. Für jede Transformation

full transform == non-affine part + affine part

Es wird nicht erwartet, dass die Backends nicht-affine Transformationen selbst verarbeiten.

Siehe das Tutorial Transformations-Tutorial für Beispiele zur Verwendung von Transformationen.

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

Bases: Affine2DBase

Eine veränderliche 2D-affine Transformation.

Initialisiert eine affine Transformation aus einer 3x3-Numpy-Gleitkommazahl-Matrix

a c e
b d f
0 0 1

Wenn matrix None ist, wird mit der Identitätstransformation initialisiert.

clear()[Quelle]#

Setzt die zugrundeliegende Matrix auf die Identitätstransformation zurück.

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

Erstellt eine neue Affine2D-Instanz aus den angegebenen Werten

a c e
b d f
0 0 1

.

get_matrix()[Quelle]#

Gibt die zugrundeliegende Transformationsmatrix als 3x3-Array zurück

a c e
b d f
0 0 1

.

rotate(theta)[Quelle]#

Fügt dieser Transformation in situ eine Drehung (in Radiant) hinzu.

Gibt self zurück, sodass diese Methode einfach mit weiteren Aufrufen von rotate(), rotate_deg(), translate() und scale() verkettet werden kann.

rotate_around(x, y, theta)[Quelle]#

Fügt in situ eine Drehung (in Radiant) um den Punkt (x, y) hinzu.

Gibt self zurück, sodass diese Methode einfach mit weiteren Aufrufen von rotate(), rotate_deg(), translate() und scale() verkettet werden kann.

rotate_deg(degrees)[Quelle]#

Fügt dieser Transformation in situ eine Drehung (in Grad) hinzu.

Gibt self zurück, sodass diese Methode einfach mit weiteren Aufrufen von rotate(), rotate_deg(), translate() und scale() verkettet werden kann.

rotate_deg_around(x, y, degrees)[Quelle]#

Fügt in situ eine Drehung (in Grad) um den Punkt (x, y) hinzu.

Gibt self zurück, sodass diese Methode einfach mit weiteren Aufrufen von rotate(), rotate_deg(), translate() und scale() verkettet werden kann.

scale(sx, sy=None)[Quelle]#

Fügt in situ eine Skalierung hinzu.

Wenn sy None ist, wird die gleiche Skalierung in x- und y-Richtung angewendet.

Gibt self zurück, sodass diese Methode einfach mit weiteren Aufrufen von rotate(), rotate_deg(), translate() und scale() verkettet werden kann.

set(other)[Quelle]#

Setzt diese Transformation aus einer gefrorenen Kopie eines anderen Affine2DBase-Objekts.

set_matrix(mtx)[Quelle]#

Setzt die zugrundeliegende Transformationsmatrix aus einem 3x3-Array

a c e
b d f
0 0 1

.

skew(xShear, yShear)[Quelle]#

Fügt in situ eine Scherung hinzu.

xShear und yShear sind die Scherwinkel entlang der x- bzw. y-Achsen in Radiant.

Gibt self zurück, sodass diese Methode einfach mit weiteren Aufrufen von rotate(), rotate_deg(), translate() und scale() verkettet werden kann.

skew_deg(xShear, yShear)[Quelle]#

Fügt in situ eine Scherung hinzu.

xShear und yShear sind die Scherwinkel entlang der x- bzw. y-Achsen in Grad.

Gibt self zurück, sodass diese Methode einfach mit weiteren Aufrufen von rotate(), rotate_deg(), translate() und scale() verkettet werden kann.

translate(tx, ty)[Quelle]#

Fügt in situ eine Translation hinzu.

Gibt self zurück, sodass diese Methode einfach mit weiteren Aufrufen von rotate(), rotate_deg(), translate() und scale() verkettet werden kann.

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

Bases: AffineBase

Die Basisklasse aller 2D-affinen Transformationen.

2D-affine Transformationen werden mit einer 3x3-Numpy-Matrix durchgeführt

a c e
b d f
0 0 1

Diese Klasse bietet die schreibgeschützte Schnittstelle. Für eine veränderliche 2D-affine Transformation verwenden Sie Affine2D.

Unterklassen dieser Klasse müssen im Allgemeinen nur einen Konstruktor und get_matrix überschreiben, die eine benutzerdefinierte 3x3-Matrix generiert.

Parameter:
shorthand_namestr

Ein String, der den "Namen" der Transformation darstellt. Der Name hat keine Bedeutung, außer zur Verbesserung der Lesbarkeit von str(transform) bei DEBUG=True.

frozen()[Quelle]#

Gibt eine gefrorene Kopie dieses Transformationsknotens zurück. Die gefrorene Kopie wird nicht aktualisiert, wenn sich ihre Kinder ändern. Nützlich zum Speichern eines zuvor bekannten Zustands einer Transformation, bei der normalerweise copy.deepcopy() verwendet werden könnte.

has_inverse = True#

True, wenn diese Transformation eine entsprechende Umkehrtansformation hat.

input_dims = 2#

Die Anzahl der Eingabedimensionen dieser Transformation. Muss in der Unterklasse überschrieben werden (mit Ganzzahlen).

inverted()[Quelle]#

Gibt die entsprechende Umkehrtansformation zurück.

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

Der Rückgabewert dieser Methode sollte als temporär behandelt werden. Eine Änderung an self führt nicht zu einer entsprechenden Änderung an seiner umgekehrten Kopie.

property is_separable#

Gibt True zurück, wenn das Argument wahr ist, andernfalls False. Die integrierten True und False sind die einzigen beiden Instanzen der Klasse bool. Die Klasse bool ist eine Unterklasse der Klasse int und kann nicht unterklassifiziert werden.

output_dims = 2#

Die Anzahl der Ausgabedimensionen dieser Transformation. Muss in der Unterklasse überschrieben werden (mit Ganzzahlen).

to_values()[Quelle]#

Gibt die Werte der Matrix als Tupel (a, b, c, d, e, f) zurück.

transform_affine(values)[Quelle]#

Wendet nur den affinen Teil dieser Transformation auf das angegebene Array von Werten an.

transform(values) ist immer äquivalent zu transform_affine(transform_non_affine(values)).

Bei nicht-affinen Transformationen ist dies im Allgemeinen eine No-Op. Bei affinen Transformationen ist dies äquivalent zu transform(values).

Parameter:
valuesarray

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

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

Bases: Transform

Die Basisklasse aller affinen Transformationen beliebiger Dimensionalität.

Parameter:
shorthand_namestr

Ein String, der den "Namen" der Transformation darstellt. Der Name hat keine Bedeutung, außer zur Verbesserung der Lesbarkeit von str(transform) bei DEBUG=True.

get_affine()[Quelle]#

Gibt den affinen Teil dieser Transformation zurück.

is_affine = True#
transform(values)[Quelle]#

Wendet diese Transformation auf die angegebenen Werte an.

Parameter:
valuesarray-artig

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

transform_affine(values)[Quelle]#

Wendet nur den affinen Teil dieser Transformation auf das angegebene Array von Werten an.

transform(values) ist immer äquivalent zu transform_affine(transform_non_affine(values)).

Bei nicht-affinen Transformationen ist dies im Allgemeinen eine No-Op. Bei affinen Transformationen ist dies äquivalent zu transform(values).

Parameter:
valuesarray

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

transform_non_affine(values)[Quelle]#

Wendet nur den nicht-affinen Teil dieser Transformation an.

transform(values) ist immer äquivalent zu transform_affine(transform_non_affine(values)).

Bei nicht-affinen Transformationen ist dies im Allgemeinen äquivalent zu transform(values). Bei affinen Transformationen ist dies immer eine No-Op.

Parameter:
valuesarray

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

transform_path(path)[Quelle]#

Wendet die Transformation auf Path path an und gibt einen neuen Path zurück.

In einigen Fällen kann diese Transformation dem Pfad Kurven hinzufügen, die als Liniensegmente begonnen haben.

transform_path_affine(path)[Quelle]#

Wendet den affinen Teil dieser Transformation auf Path path an und gibt einen neuen Path zurück.

transform_path(path) ist äquivalent zu transform_path_affine(transform_path_non_affine(values)).

transform_path_non_affine(path)[Quelle]#

Wendet den nicht-affinen Teil dieser Transformation auf Path path an und gibt einen neuen Path zurück.

transform_path(path) ist äquivalent zu transform_path_affine(transform_path_non_affine(values)).

class matplotlib.transforms.AffineDeltaTransform(transform, **kwargs)[Quelle]#

Bases: Affine2DBase

Ein Transformationswrapper für die Transformation von Verschiebungen zwischen Punktpaaren.

Diese Klasse ist dazu bestimmt, Verschiebungen ("Positionsdifferenzen") zwischen Punktpaaren zu transformieren (z. B. als offset_transform von Collections): Gegeben sei eine Transformation t, so dass t = AffineDeltaTransform(t) + offset, erfüllt AffineDeltaTransform AffineDeltaTransform(a - b) == AffineDeltaTransform(a) - AffineDeltaTransform(b).

Dies wird durch Nullsetzen der Offset-Komponenten der Transformationsmatrix erreicht.

Diese Klasse ist ab Version 3.3 experimentell und die API kann sich ändern.

Parameter:
shorthand_namestr

Ein String, der den "Namen" der Transformation darstellt. Der Name hat keine Bedeutung, außer zur Verbesserung der Lesbarkeit von str(transform) bei DEBUG=True.

get_matrix()[Quelle]#

Gibt die Matrix für den affinen Teil dieser Transformation zurück.

pass_through = True#

Wenn pass_through True ist, werden alle Vorfahren immer invalidiert, auch wenn 'self' bereits ungültig ist.

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

Bases: BboxBase

Eine veränderliche Begrenzungsbox.

Beispiele

Erstellen aus bekannten Grenzen

Der Standardkonstruktor nimmt die Grenz-"Punkte" [[xmin, ymin], [xmax, ymax]] entgegen.

>>> Bbox([[1, 1], [3, 7]])
Bbox([[1.0, 1.0], [3.0, 7.0]])

Alternativ kann eine Bbox aus dem abgeflachten Punkte-Array, den sogenannten "Extents" (xmin, ymin, xmax, ymax), erstellt werden.

>>> Bbox.from_extents(1, 1, 3, 7)
Bbox([[1.0, 1.0], [3.0, 7.0]])

oder aus den "Bounds" (xmin, ymin, width, height).

>>> Bbox.from_bounds(1, 1, 2, 6)
Bbox([[1.0, 1.0], [3.0, 7.0]])

Erstellen aus Punktesammlungen

Das "leere" Objekt für die Akkumulation von Bboxs ist die Null-Bbox, die ein Platzhalter für die leere Menge ist.

>>> Bbox.null()
Bbox([[inf, inf], [-inf, -inf]])

Das Hinzufügen von Punkten zur Null-Bbox ergibt die Bbox dieser Punkte.

>>> box = Bbox.null()
>>> box.update_from_data_xy([[1, 1]])
>>> box
Bbox([[1.0, 1.0], [1.0, 1.0]])
>>> box.update_from_data_xy([[2, 3], [3, 2]], ignore=False)
>>> box
Bbox([[1.0, 1.0], [3.0, 3.0]])

Das Setzen von ignore=True ist äquivalent zum Neuanfang von einer Null-Bbox.

>>> box.update_from_data_xy([[1, 1]], ignore=True)
>>> box
Bbox([[1.0, 1.0], [1.0, 1.0]])

Warnung

Es wird empfohlen, ignore immer explizit anzugeben. Wenn nicht, kann der Standardwert von ignore jederzeit von Code mit Zugriff auf Ihre Bbox geändert werden, z. B. über die Methode ignore.

Eigenschaften der ``null`` Bbox

Hinweis

Das aktuelle Verhalten von Bbox.null() kann überraschend sein, da es nicht alle Eigenschaften der "leeren Menge" besitzt und sich daher nicht wie ein "Null"-Objekt im mathematischen Sinne verhält. Dies kann in Zukunft geändert werden (mit einer Vorlaufzeit).

Die Null-Bbox ist die Identität für Schnitte

>>> Bbox.intersection(Bbox([[1, 1], [3, 7]]), Bbox.null())
Bbox([[1.0, 1.0], [3.0, 7.0]])

außer mit sich selbst, wo sie den vollen Raum zurückgibt.

>>> Bbox.intersection(Bbox.null(), Bbox.null())
Bbox([[-inf, -inf], [inf, inf]])

Eine Vereinigung, die Null enthält, gibt immer den vollen Raum zurück (nicht die andere Menge!)

>>> Bbox.union([Bbox([[0, 0], [0, 0]]), Bbox.null()])
Bbox([[-inf, -inf], [inf, inf]])
Parameter:
pointsndarray

Ein (2, 2)-Array der Form [[x0, y0], [x1, y1]].

property bounds#

Gibt (x0, y0, width, height) zurück.

static from_bounds(x0, y0, width, height)[Quelle]#

Erstellt eine neue Bbox aus x0, y0, width und height.

width und height können negativ sein.

static from_extents(*args, minpos=None)[Quelle]#

Erstellt eine neue Bbox aus links, unten, rechts und oben.

Die y-Achse steigt nach oben.

Parameter:
left, bottom, right, topfloat

Die vier Grenzen der Bounding Box.

minposfloat or None

Wenn dies angegeben ist, hat die Bbox einen minimalen positiven Wert. Dies ist nützlich bei der Arbeit mit logarithmischen Skalen und anderen Skalen, bei denen negative Grenzen zu Gleitkommafehlern führen.

frozen()[Quelle]#

Die Basisklasse für alles, was am Transformationsbaum teilnimmt und seine Eltern invalidieren oder invalidiert werden muss. Dazu gehören auch Klassen, die nicht wirklich Transformationen sind, wie Begrenzungsrahmen, da einige Transformationen von Begrenzungsrahmen abhängen, um ihre Werte zu berechnen.

get_points()[Quelle]#

Gibt die Punkte der Bounding Box als Array der Form [[x0, y0], [x1, y1]] zurück.

ignore(value)[Quelle]#

Legt fest, ob die vorhandenen Grenzen der Box bei nachfolgenden Aufrufen von update_from_data_xy() ignoriert werden sollen.

valuebool
property intervalx#

Das Paar von x-Koordinaten, die die Bounding Box definieren.

Es ist nicht garantiert, dass diese von links nach rechts sortiert sind.

property intervaly#

Das Paar von y-Koordinaten, die die Bounding Box definieren.

Es ist nicht garantiert, dass diese von unten nach oben sortiert sind.

property minpos#

Der kleinste positive Wert in beiden Richtungen innerhalb der Bbox.

Dies ist nützlich bei der Arbeit mit logarithmischen Skalen und anderen Skalen, bei denen negative Grenzen zu Gleitkommafehlern führen, und wird als minimale Ausdehnung anstelle von p0 verwendet.

property minposx#

Der kleinste positive Wert in der x-Richtung innerhalb der Bbox.

Dies ist nützlich bei der Arbeit mit logarithmischen Skalen und anderen Skalen, bei denen negative Grenzen zu Gleitkommafehlern führen, und wird als minimale x-Ausdehnung anstelle von x0 verwendet.

property minposy#

Der kleinste positive Wert in der y-Richtung innerhalb der Bbox.

Dies ist nützlich bei der Arbeit mit logarithmischen Skalen und anderen Skalen, bei denen negative Grenzen zu Gleitkommafehlern führen, und wird als minimale y-Ausdehnung anstelle von y0 verwendet.

mutated()[Quelle]#

Gibt zurück, ob sich die Bbox seit der Initialisierung geändert hat.

mutatedx()[Quelle]#

Gibt zurück, ob sich die x-Limits seit der Initialisierung geändert haben.

mutatedy()[Quelle]#

Gibt zurück, ob sich die y-Limits seit der Initialisierung geändert haben.

static null()[Quelle]#

Erstellt eine neue Null- Bbox von (inf, inf) bis (-inf, -inf).

property p0#

Das erste Paar von (x, y) Koordinaten, das die Bounding Box definiert.

Dies ist nicht garantiert die untere linke Ecke (dafür verwenden Sie min).

property p1#

Das zweite Paar von (x, y) Koordinaten, das die Bounding Box definiert.

Dies ist nicht garantiert die obere rechte Ecke (dafür verwenden Sie max).

set(other)[Quelle]#

Setzt diese Bounding Box aus den "eingefrorenen" Grenzen einer anderen Bbox.

set_points(points)[Quelle]#

Setzt die Punkte der Bounding Box direkt aus einem Array der Form [[x0, y0], [x1, y1]]. Es wird keine Fehlerprüfung durchgeführt, da diese Methode hauptsächlich für den internen Gebrauch bestimmt ist.

static unit()[Quelle]#

Erstellt eine neue Einheits- Bbox von (0, 0) bis (1, 1).

update_from_data_x(x, ignore=None)[Quelle]#

Aktualisiert die x-Grenzen der Bbox basierend auf den übergebenen Daten. Nach der Aktualisierung haben die Grenzen eine positive Breite und x0 ist der Minimalwert.

Parameter:
xndarray

Array von x-Werten.

ignorebool, optional
  • Wenn True, ignorieren Sie die vorhandenen Grenzen der Bbox.

  • Wenn False, schließen Sie die vorhandenen Grenzen der Bbox ein.

  • Wenn None, verwenden Sie den letzten Wert, der an ignore() übergeben wurde.

update_from_data_xy(xy, ignore=None, updatex=True, updatey=True)[Quelle]#

Aktualisiert die Grenzen der Bbox basierend auf den übergebenen xy-Koordinaten.

Nach der Aktualisierung haben die Grenzen eine positive Breite und Höhe; x0 und y0 sind die Minimalwerte.

Parameter:
xy(N, 2) array-ähnlich

Die (x, y) Koordinaten.

ignorebool, optional
  • Wenn True, ignorieren Sie die vorhandenen Grenzen der Bbox.

  • Wenn False, schließen Sie die vorhandenen Grenzen der Bbox ein.

  • Wenn None, verwenden Sie den letzten Wert, der an ignore() übergeben wurde.

updatex, updateybool, Standard: True

Wenn True, werden die x/y-Werte aktualisiert.

update_from_data_y(y, ignore=None)[Quelle]#

Aktualisiert die y-Grenzen der Bbox basierend auf den übergebenen Daten. Nach der Aktualisierung haben die Grenzen eine positive Höhe und y0 ist der Minimalwert.

Parameter:
yndarray

Array von y-Werten.

ignorebool, optional
  • Wenn True, ignorieren Sie die vorhandenen Grenzen der Bbox.

  • Wenn False, schließen Sie die vorhandenen Grenzen der Bbox ein.

  • Wenn None, verwenden Sie den letzten Wert, der an ignore() übergeben wurde.

update_from_path(path, ignore=None, updatex=True, updatey=True)[Quelle]#

Aktualisiert die Grenzen der Bbox, um die Eckpunkte des bereitgestellten Pfades zu umschließen. Nach der Aktualisierung haben die Grenzen eine positive Breite und Höhe; x0 und y0 sind die Minimalwerte.

Parameter:
pathPath
ignorebool, optional
  • Wenn True, ignorieren Sie die vorhandenen Grenzen der Bbox.

  • Wenn False, schließen Sie die vorhandenen Grenzen der Bbox ein.

  • Wenn None, verwenden Sie den letzten Wert, der an ignore() übergeben wurde.

updatex, updateybool, Standard: True

Wenn True, werden die x/y-Werte aktualisiert.

property x0#

Die erste der beiden x-Koordinaten, die die Bounding Box definieren.

Dies ist nicht garantiert kleiner als x1 (dafür verwenden Sie xmin).

property x1#

Die zweite der beiden x-Koordinaten, die die Bounding Box definieren.

Dies ist nicht garantiert größer als x0 (dafür verwenden Sie xmax).

property y0#

Die erste der beiden y-Koordinaten, die die Bounding Box definieren.

Dies ist nicht garantiert kleiner als y1 (dafür verwenden Sie ymin).

property y1#

Die zweite der beiden y-Koordinaten, die die Bounding Box definieren.

Dies ist nicht garantiert größer als y0 (dafür verwenden Sie ymax).

class matplotlib.transforms.BboxBase(shorthand_name=None)[Quelle]#

Basiert auf: TransformNode

Die Basisklasse aller Bounding Boxes.

Diese Klasse ist unveränderlich; Bbox ist eine veränderliche Unterklasse.

Die kanonische Darstellung erfolgt als zwei Punkte, ohne Einschränkungen für ihre Reihenfolge. Bequeme Eigenschaften sind vorhanden, um die linke, untere, rechte und obere Kante sowie Breite und Höhe zu erhalten, diese werden jedoch nicht explizit gespeichert.

Parameter:
shorthand_namestr

Ein String, der den "Namen" der Transformation darstellt. Der Name hat keine Bedeutung, außer zur Verbesserung der Lesbarkeit von str(transform) bei DEBUG=True.

anchored(c, container)[Quelle]#

Gibt eine Kopie der Bbox zurück, die an c innerhalb von container verankert ist.

Parameter:
c(float, float) oder {'C', 'SW', 'S', 'SE', 'E', 'NE', ...}

Entweder ein (x, y) Paar relativer Koordinaten (0 ist links oder unten, 1 ist rechts oder oben), 'C' (Mitte) oder eine Himmelsrichtung ('SW', Südwesten, ist unten links, usw.).

containerBbox

Der Kasten, innerhalb dessen die Bbox positioniert wird.

Siehe auch

Axes.set_anchor
property bounds#

Gibt (x0, y0, width, height) zurück.

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(x, y)[Quelle]#

Gibt zurück, ob (x, y) in der Bounding Box oder an deren Rand liegt.

containsx(x)[Quelle]#

Gibt zurück, ob x im geschlossenen (x0, x1) Intervall liegt.

containsy(y)[Quelle]#

Gibt zurück, ob y im geschlossenen (y0, y1) Intervall liegt.

corners()[Quelle]#

Gibt die Ecken dieses Rechtecks als Array von Punkten zurück.

Genauer gesagt gibt dies das Array [[x0, y0], [x0, y1], [x1, y0], [x1, y1]] zurück.

count_contains(vertices)[Quelle]#

Zählt die Anzahl der Eckpunkte, die in der Bbox enthalten sind. Eckpunkte mit einem nicht-endlichen x- oder y-Wert werden ignoriert.

Parameter:
vertices(N, 2) Array
count_overlaps(bboxes)[Quelle]#

Zählt die Anzahl der Bounding Boxes, die sich mit dieser überschneiden.

Parameter:
bboxesSequenz von BboxBase
expanded(sw, sh)[Quelle]#

Konstruiert eine Bbox, indem diese um ihren Mittelpunkt um die Faktoren sw und sh erweitert wird.

property extents#

Gibt (x0, y0, x1, y1) zurück.

frozen()[Quelle]#

Die Basisklasse für alles, was am Transformationsbaum teilnimmt und seine Eltern invalidieren oder invalidiert werden muss. Dazu gehören auch Klassen, die nicht wirklich Transformationen sind, wie Begrenzungsrahmen, da einige Transformationen von Begrenzungsrahmen abhängen, um ihre Werte zu berechnen.

fully_contains(x, y)[Quelle]#

Gibt zurück, ob x, y in der Bounding Box liegt, aber nicht an deren Rand.

fully_containsx(x)[Quelle]#

Gibt zurück, ob x im offenen (x0, x1) Intervall liegt.

fully_containsy(y)[Quelle]#

Gibt zurück, ob y im offenen (y0, y1) Intervall liegt.

fully_overlaps(other)[Quelle]#

Gibt zurück, ob diese Bounding Box mit der anderen Bounding Box überlappt, ohne die Ränder einzuschließen.

Parameter:
otherBboxBase
get_points()[Quelle]#
property height#

Die (vorzeichenbehaftete) Höhe der Bounding Box.

static intersection(bbox1, bbox2)[Quelle]#

Gibt den Schnittpunkt von bbox1 und bbox2 zurück, wenn sie sich schneiden, oder None, wenn nicht.

property intervalx#

Das Paar von x-Koordinaten, die die Bounding Box definieren.

Es ist nicht garantiert, dass diese von links nach rechts sortiert sind.

property intervaly#

Das Paar von y-Koordinaten, die die Bounding Box definieren.

Es ist nicht garantiert, dass diese von unten nach oben sortiert sind.

is_affine = True#
is_bbox = True#
property max#

Die obere rechte Ecke der Bounding Box.

property min#

Die untere linke Ecke der Bounding Box.

overlaps(other)[Quelle]#

Gibt zurück, ob diese Bounding Box mit der anderen Bounding Box überlappt.

Parameter:
otherBboxBase
property p0#

Das erste Paar von (x, y) Koordinaten, das die Bounding Box definiert.

Dies ist nicht garantiert die untere linke Ecke (dafür verwenden Sie min).

property p1#

Das zweite Paar von (x, y) Koordinaten, das die Bounding Box definiert.

Dies ist nicht garantiert die obere rechte Ecke (dafür verwenden Sie max).

padded(w_pad, h_pad=None)[Quelle]#

Konstruiert eine Bbox, indem diese auf allen vier Seiten aufgepolstert wird.

Parameter:
w_padfloat

Breiten-Padding.

h_padfloat, optional

Höhen-Padding. Standard ist w_pad.

rotated(radians)[Quelle]#

Gibt die achsenparallele Bounding Box zurück, die das Ergebnis der Drehung dieser Bbox um einen Winkel von radians umschließt.

shrunk(mx, my)[Quelle]#

Gibt eine Kopie der Bbox zurück, die um den Faktor mx in der x-Richtung und um den Faktor my in der y-Richtung verkleinert wurde. Die untere linke Ecke des Kastens bleibt unverändert. Normalerweise sind mx und my kleiner als 1, dies wird jedoch nicht erzwungen.

shrunk_to_aspect(box_aspect, container=None, fig_aspect=1.0)[Quelle]#

Gibt eine Kopie des Bbox zurück, der so verkleinert wurde, dass er so groß wie möglich ist, während er das gewünschte Seitenverhältnis box_aspect hat. Wenn die Boxkoordinaten relativ sind (d. h. Bruchteile einer größeren Box wie einer Figur), dann wird das physikalische Seitenverhältnis dieser Figur mit fig_aspect angegeben, sodass box_aspect auch als Verhältnis der absoluten Abmessungen und nicht der relativen Abmessungen angegeben werden kann.

property size#

Die (vorzeichenbehaftete) Breite und Höhe des Begrenzungsrahmens.

splitx(*args)[Quelle]#

Gibt eine Liste neuer Bbox-Objekte zurück, die durch Teilen der ursprünglichen Box mit vertikalen Linien an den durch args gegebenen Bruchteilen gebildet werden.

splity(*args)[Quelle]#

Gibt eine Liste neuer Bbox-Objekte zurück, die durch Teilen der ursprünglichen Box mit horizontalen Linien an den durch args gegebenen Bruchteilen gebildet werden.

transformed(transform)[Quelle]#

Konstruiert eine Bbox, indem diese statisch mit transform transformiert wird.

translated(tx, ty)[Quelle]#

Konstruiert eine Bbox, indem diese um tx und ty verschoben wird.

static union(bboxes)[Quelle]#

Gibt eine Bbox zurück, die alle angegebenen bboxes enthält.

property width#

Die (vorzeichenbehaftete) Breite des Begrenzungsrahmens.

property x0#

Die erste der beiden x-Koordinaten, die die Bounding Box definieren.

Dies ist nicht garantiert kleiner als x1 (verwenden Sie dafür xmin).

property x1#

Die zweite der beiden x-Koordinaten, die die Bounding Box definieren.

Dies ist nicht garantiert größer als x0 (verwenden Sie dafür xmax).

property xmax#

Die rechte Kante des Begrenzungsrahmens.

property xmin#

Die linke Kante des Begrenzungsrahmens.

property y0#

Die erste der beiden y-Koordinaten, die die Bounding Box definieren.

Dies ist nicht garantiert kleiner als y1 (verwenden Sie dafür ymin).

property y1#

Die zweite der beiden y-Koordinaten, die die Bounding Box definieren.

Dies ist nicht garantiert größer als y0 (verwenden Sie dafür ymax).

property ymax#

Die obere Kante des Begrenzungsrahmens.

property ymin#

Die untere Kante des Begrenzungsrahmens.

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

Bases: Affine2DBase

BboxTransform transformiert Punkte linear von einer Bbox zu einer anderen.

Erstellt eine neue BboxTransform, die Punkte linear von boxin nach boxout transformiert.

get_matrix()[Quelle]#

Gibt die Matrix für den affinen Teil dieser Transformation zurück.

is_separable = True#

True, wenn diese Transformation in den x- und y-Dimensionen separierbar ist.

class matplotlib.transforms.BboxTransformFrom(boxin, **kwargs)[Quelle]#

Bases: Affine2DBase

BboxTransformFrom transformiert Punkte linear von einer gegebenen Bbox zur Einheits-Begrenzungsbox.

Parameter:
shorthand_namestr

Ein String, der den "Namen" der Transformation darstellt. Der Name hat keine Bedeutung, außer zur Verbesserung der Lesbarkeit von str(transform) bei DEBUG=True.

get_matrix()[Quelle]#

Gibt die Matrix für den affinen Teil dieser Transformation zurück.

is_separable = True#

True, wenn diese Transformation in den x- und y-Dimensionen separierbar ist.

class matplotlib.transforms.BboxTransformTo(boxout, **kwargs)[Quelle]#

Bases: Affine2DBase

BboxTransformTo ist eine Transformation, die Punkte linear von der Einheits-Begrenzungsbox zu einer gegebenen Bbox transformiert.

Erstellt eine neue BboxTransformTo, die Punkte linear von der Einheits-Begrenzungsbox zu boxout transformiert.

get_matrix()[Quelle]#

Gibt die Matrix für den affinen Teil dieser Transformation zurück.

is_separable = True#

True, wenn diese Transformation in den x- und y-Dimensionen separierbar ist.

class matplotlib.transforms.BboxTransformToMaxOnly(boxout, **kwargs)[Quelle]#

Bases: BboxTransformTo

[Veraltet] BboxTransformToMaxOnly ist eine Transformation, die Punkte linear von der Einheits-Begrenzungsbox zu einer gegebenen Bbox mit einer festen oberen linken Ecke von (0, 0) transformiert.

Anmerkungen

Seit Version 3.9 veraltet.

Erstellt eine neue BboxTransformTo, die Punkte linear von der Einheits-Begrenzungsbox zu boxout transformiert.

get_matrix()[Quelle]#

Gibt die Matrix für den affinen Teil dieser Transformation zurück.

class matplotlib.transforms.BlendedAffine2D(x_transform, y_transform, **kwargs)[Quelle]#

Bases: _BlendedMixin, Affine2DBase

Eine "gemischte" Transformation verwendet eine Transformation für die x-Richtung und eine andere für die y-Richtung.

Diese Version ist eine Optimierung für den Fall, dass beide Kindtransformationen vom Typ Affine2DBase sind.

Erstellt eine neue "gemischte" Transformation, die x_transform zur Transformation der x-Achse und y_transform zur Transformation der y-Achse verwendet.

Sowohl x_transform als auch y_transform müssen 2D-Affine-Transformationen sein.

Sie werden im Allgemeinen diesen Konstruktor nicht direkt aufrufen, sondern stattdessen die Funktion blended_transform_factory verwenden, die automatisch bestimmen kann, welche Art von gemischter Transformation erstellt werden soll.

get_matrix()[Quelle]#

Gibt die Matrix für den affinen Teil dieser Transformation zurück.

is_separable = True#

True, wenn diese Transformation in den x- und y-Dimensionen separierbar ist.

class matplotlib.transforms.BlendedGenericTransform(x_transform, y_transform, **kwargs)[Quelle]#

Bases: _BlendedMixin, Transform

Eine "gemischte" Transformation verwendet eine Transformation für die x-Richtung und eine andere für die y-Richtung.

Diese "generische" Version kann beliebige Kindtransformationen in der x- und y-Richtung verarbeiten.

Erstellt eine neue "gemischte" Transformation, die x_transform zur Transformation der x-Achse und y_transform zur Transformation der y-Achse verwendet.

Sie werden im Allgemeinen diesen Konstruktor nicht direkt aufrufen, sondern stattdessen die Funktion blended_transform_factory verwenden, die automatisch bestimmen kann, welche Art von gemischter Transformation erstellt werden soll.

contains_branch(other)[Quelle]#

Gibt zurück, ob die gegebene Transformation ein Teilbaum dieser Transformation ist.

Diese Routine verwendet die Gleichheit von Transformationen zur Identifizierung von Teilbäumen. Daher wird in vielen Fällen die Objekt-ID verwendet.

Für den Fall, dass die gegebene Transformation die gesamte Transformation darstellt, wird True zurückgegeben.

property depth#

Gibt die Anzahl der Transformationen zurück, die miteinander verkettet wurden, um diese Transformationsinstanz zu bilden.

Hinweis

Für den Sonderfall einer zusammengesetzten Transformation wird die maximale Tiefe der beiden zurückgegeben.

frozen()[Quelle]#

Gibt eine gefrorene Kopie dieses Transformationsknotens zurück. Die gefrorene Kopie wird nicht aktualisiert, wenn sich ihre Kinder ändern. Nützlich zum Speichern eines zuvor bekannten Zustands einer Transformation, bei der normalerweise copy.deepcopy() verwendet werden könnte.

get_affine()[Quelle]#

Gibt den affinen Teil dieser Transformation zurück.

property has_inverse#

Gibt True zurück, wenn das Argument wahr ist, andernfalls False. Die integrierten True und False sind die einzigen beiden Instanzen der Klasse bool. Die Klasse bool ist eine Unterklasse der Klasse int und kann nicht unterklassifiziert werden.

input_dims = 2#

Die Anzahl der Eingabedimensionen dieser Transformation. Muss in der Unterklasse überschrieben werden (mit Ganzzahlen).

inverted()[Quelle]#

Gibt die entsprechende Umkehrtansformation zurück.

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

Der Rückgabewert dieser Methode sollte als temporär behandelt werden. Eine Änderung an self führt nicht zu einer entsprechenden Änderung an seiner umgekehrten Kopie.

property is_affine#

Gibt True zurück, wenn das Argument wahr ist, andernfalls False. Die integrierten True und False sind die einzigen beiden Instanzen der Klasse bool. Die Klasse bool ist eine Unterklasse der Klasse int und kann nicht unterklassifiziert werden.

is_separable = True#

True, wenn diese Transformation in den x- und y-Dimensionen separierbar ist.

output_dims = 2#

Die Anzahl der Ausgabedimensionen dieser Transformation. Muss in der Unterklasse überschrieben werden (mit Ganzzahlen).

pass_through = True#

Wenn pass_through True ist, werden alle Vorfahren immer invalidiert, auch wenn 'self' bereits ungültig ist.

transform_non_affine(values)[Quelle]#

Wendet nur den nicht-affinen Teil dieser Transformation an.

transform(values) ist immer äquivalent zu transform_affine(transform_non_affine(values)).

Bei nicht-affinen Transformationen ist dies im Allgemeinen äquivalent zu transform(values). Bei affinen Transformationen ist dies immer eine No-Op.

Parameter:
valuesarray

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

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

Bases: Affine2DBase

Eine zusammengesetzte Transformation, die durch Anwendung der Transformation a und dann der Transformation b gebildet wird.

Diese Version ist eine Optimierung, die den Fall behandelt, dass beide a und b 2D-Affines sind.

Erstellt eine neue zusammengesetzte Transformation, die das Ergebnis der Anwendung von Affine2DBase a und dann Affine2DBase b ist.

Sie werden diesen Konstruktor im Allgemeinen nicht direkt aufrufen, sondern stattdessen a + b schreiben, was automatisch die beste Art von zusammengesetzter Transformationsinstanz zur Erstellung auswählt.

property depth#

Gibt die Anzahl der Transformationen zurück, die miteinander verkettet wurden, um diese Transformationsinstanz zu bilden.

Hinweis

Für den Sonderfall einer zusammengesetzten Transformation wird die maximale Tiefe der beiden zurückgegeben.

get_matrix()[Quelle]#

Gibt die Matrix für den affinen Teil dieser Transformation zurück.

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

Bases: Transform

Eine zusammengesetzte Transformation, die durch Anwendung der Transformation a und dann der Transformation b gebildet wird.

Diese "generische" Version kann beliebige zwei beliebige Transformationen verarbeiten.

Erstellt eine neue zusammengesetzte Transformation, die das Ergebnis der Anwendung der Transformation a und dann der Transformation b ist.

Sie werden diesen Konstruktor im Allgemeinen nicht direkt aufrufen, sondern stattdessen a + b schreiben, was automatisch die beste Art von zusammengesetzter Transformationsinstanz zur Erstellung auswählt.

contains_branch_seperately(other_transform)[Quelle]#

Gibt zurück, ob der gegebene Zweig ein Teilbaum dieser Transformation in jeder separaten Dimension ist.

Eine häufige Verwendung dieser Methode ist die Identifizierung, ob eine Transformation eine gemischte Transformation ist, die die Datentransformation eines Achsenobjekts enthält. z.B.

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

Gibt die Anzahl der Transformationen zurück, die miteinander verkettet wurden, um diese Transformationsinstanz zu bilden.

Hinweis

Für den Sonderfall einer zusammengesetzten Transformation wird die maximale Tiefe der beiden zurückgegeben.

frozen()[Quelle]#

Gibt eine gefrorene Kopie dieses Transformationsknotens zurück. Die gefrorene Kopie wird nicht aktualisiert, wenn sich ihre Kinder ändern. Nützlich zum Speichern eines zuvor bekannten Zustands einer Transformation, bei der normalerweise copy.deepcopy() verwendet werden könnte.

get_affine()[Quelle]#

Gibt den affinen Teil dieser Transformation zurück.

property has_inverse#

Gibt True zurück, wenn das Argument wahr ist, andernfalls False. Die integrierten True und False sind die einzigen beiden Instanzen der Klasse bool. Die Klasse bool ist eine Unterklasse der Klasse int und kann nicht unterklassifiziert werden.

inverted()[Quelle]#

Gibt die entsprechende Umkehrtansformation zurück.

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

Der Rückgabewert dieser Methode sollte als temporär behandelt werden. Eine Änderung an self führt nicht zu einer entsprechenden Änderung an seiner umgekehrten Kopie.

property is_affine#

Gibt True zurück, wenn das Argument wahr ist, andernfalls False. Die integrierten True und False sind die einzigen beiden Instanzen der Klasse bool. Die Klasse bool ist eine Unterklasse der Klasse int und kann nicht unterklassifiziert werden.

property is_separable#

Gibt True zurück, wenn das Argument wahr ist, andernfalls False. Die integrierten True und False sind die einzigen beiden Instanzen der Klasse bool. Die Klasse bool ist eine Unterklasse der Klasse int und kann nicht unterklassifiziert werden.

pass_through = True#

Wenn pass_through True ist, werden alle Vorfahren immer invalidiert, auch wenn 'self' bereits ungültig ist.

transform_affine(values)[Quelle]#

Wendet nur den affinen Teil dieser Transformation auf das angegebene Array von Werten an.

transform(values) ist immer äquivalent zu transform_affine(transform_non_affine(values)).

Bei nicht-affinen Transformationen ist dies im Allgemeinen eine No-Op. Bei affinen Transformationen ist dies äquivalent zu transform(values).

Parameter:
valuesarray

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

transform_non_affine(values)[Quelle]#

Wendet nur den nicht-affinen Teil dieser Transformation an.

transform(values) ist immer äquivalent zu transform_affine(transform_non_affine(values)).

Bei nicht-affinen Transformationen ist dies im Allgemeinen äquivalent zu transform(values). Bei affinen Transformationen ist dies immer eine No-Op.

Parameter:
valuesarray

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

transform_path_non_affine(path)[Quelle]#

Wendet den nicht-affinen Teil dieser Transformation auf Path path an und gibt einen neuen Path zurück.

transform_path(path) ist äquivalent zu transform_path_affine(transform_path_non_affine(values)).

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

Bases: Affine2DBase

Eine spezielle Klasse, die die Identitätstransformation auf schnelle Weise durchführt.

Parameter:
shorthand_namestr

Ein String, der den "Namen" der Transformation darstellt. Der Name hat keine Bedeutung, außer zur Verbesserung der Lesbarkeit von str(transform) bei DEBUG=True.

frozen()[Quelle]#

Gibt eine gefrorene Kopie dieses Transformationsknotens zurück. Die gefrorene Kopie wird nicht aktualisiert, wenn sich ihre Kinder ändern. Nützlich zum Speichern eines zuvor bekannten Zustands einer Transformation, bei der normalerweise copy.deepcopy() verwendet werden könnte.

get_affine()[Quelle]#

Gibt den affinen Teil dieser Transformation zurück.

get_matrix()[Quelle]#

Gibt die Matrix für den affinen Teil dieser Transformation zurück.

inverted()[Quelle]#

Gibt die entsprechende Umkehrtansformation zurück.

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

Der Rückgabewert dieser Methode sollte als temporär behandelt werden. Eine Änderung an self führt nicht zu einer entsprechenden Änderung an seiner umgekehrten Kopie.

transform(values)[Quelle]#

Wendet diese Transformation auf die angegebenen Werte an.

Parameter:
valuesarray-artig

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

transform_affine(values)[Quelle]#

Wendet nur den affinen Teil dieser Transformation auf das angegebene Array von Werten an.

transform(values) ist immer äquivalent zu transform_affine(transform_non_affine(values)).

Bei nicht-affinen Transformationen ist dies im Allgemeinen eine No-Op. Bei affinen Transformationen ist dies äquivalent zu transform(values).

Parameter:
valuesarray

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

transform_non_affine(werte)[source]#

Wendet nur den nicht-affinen Teil dieser Transformation an.

transform(values) ist immer äquivalent zu transform_affine(transform_non_affine(values)).

Bei nicht-affinen Transformationen ist dies im Allgemeinen äquivalent zu transform(values). Bei affinen Transformationen ist dies immer eine No-Op.

Parameter:
valuesarray

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

transform_path(pfad)[source]#

Wendet die Transformation auf Path path an und gibt einen neuen Path zurück.

In einigen Fällen kann diese Transformation dem Pfad Kurven hinzufügen, die als Liniensegmente begonnen haben.

transform_path_affine(pfad)[source]#

Wendet den affinen Teil dieser Transformation auf Path path an und gibt einen neuen Path zurück.

transform_path(path) ist äquivalent zu transform_path_affine(transform_path_non_affine(values)).

transform_path_non_affine(pfad)[source]#

Wendet den nicht-affinen Teil dieser Transformation auf Path path an und gibt einen neuen Path zurück.

transform_path(path) ist äquivalent zu transform_path_affine(transform_path_non_affine(values)).

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

Bases: BboxBase

Ein Bbox, bei dem einige Elemente auf bestimmte Werte gesperrt sein können.

Wenn sich der untergeordnete Begrenzungsrahmen ändert, werden die Grenzen dieses Bbox entsprechend aktualisiert, mit Ausnahme der gesperrten Elemente.

Parameter:
bboxBbox

Der untergeordnete Begrenzungsrahmen, der umhüllt werden soll.

x0float oder None

Der gesperrte Wert für x0 oder None, um ihn nicht zu sperren.

y0float oder None

Der gesperrte Wert für y0 oder None, um ihn nicht zu sperren.

x1float oder None

Der gesperrte Wert für x1 oder None, um ihn nicht zu sperren.

y1float oder None

Der gesperrte Wert für y1 oder None, um ihn nicht zu sperren.

get_points()[source]#
property locked_x0#

float oder None: Der für den gesperrten x0 verwendete Wert.

property locked_x1#

float oder None: Der für den gesperrten x1 verwendete Wert.

property locked_y0#

float oder None: Der für den gesperrten y0 verwendete Wert.

property locked_y1#

float oder None: Der für den gesperrten y1 verwendete Wert.

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

Bases: Affine2DBase

Eine Transformation, die um xt und yt verschiebt, nachdem xt und yt durch scale_trans transformiert wurden.

Parameter:
shorthand_namestr

Ein String, der den "Namen" der Transformation darstellt. Der Name hat keine Bedeutung, außer zur Verbesserung der Lesbarkeit von str(transform) bei DEBUG=True.

get_matrix()[source]#

Gibt die Matrix für den affinen Teil dieser Transformation zurück.

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

Basiert auf: TransformNode

Die Basisklasse aller TransformNode-Instanzen, die tatsächlich eine Transformation durchführen.

Alle nicht-affinen Transformationen sollten Unterklassen dieser Klasse sein. Neue affine Transformationen sollten Unterklassen von Affine2D sein.

Unterklassen dieser Klasse sollten die folgenden Mitglieder überschreiben (mindestens)

Die folgenden Attribute können überschrieben werden, wenn die Standardeinstellung ungeeignet ist

  • is_separable (standardmäßig True für 1D -> 1D-Transformationen, sonst False)

  • has_inverse (standardmäßig True, wenn inverted() überschrieben wird, sonst False)

Wenn die Transformation etwas nicht standardmäßiges mit matplotlib.path.Path-Objekten tun muss, z. B. Kurven hinzufügen, wo zuvor Liniensegmente waren, sollte sie überschreiben

Parameter:
shorthand_namestr

Ein String, der den "Namen" der Transformation darstellt. Der Name hat keine Bedeutung, außer zur Verbesserung der Lesbarkeit von str(transform) bei DEBUG=True.

__add__(other)[source]#

Zwei Transformationen komponieren, so dass self von other gefolgt wird.

A + B gibt eine Transformation C zurück, so dass C.transform(x) == B.transform(A.transform(x)).

__sub__(other)[source]#

Komponiere self mit der Umkehrung von other, wobei identische Terme, falls vorhanden, gekürzt werden.

# In general:
A - B == A + B.inverted()
# (but see note regarding frozen transforms below).

# If A "ends with" B (i.e. A == A' + B for some A') we can cancel
# out B:
(A' + B) - B == A'

# Likewise, if B "starts with" A (B = A + B'), we can cancel out A:
A - (A + B') == B'.inverted() == B'^-1

Kürzung (anstatt naiv A + B.inverted() zurückzugeben) ist aus mehreren Gründen wichtig

  • Sie vermeidet Ungenauigkeiten bei Fließkommazahlen bei der Berechnung der Umkehrung von B: B - B wird garantiert exakt gekürzt (was zur Identitätstransformation führt), während B + B.inverted() um einen kleinen Epsilon-Wert abweichen kann.

  • B.inverted() gibt immer eine gefrorene Transformation zurück: Wenn man A + B + B.inverted() berechnet und später B mutiert, dann wird B.inverted() nicht aktualisiert und die letzten beiden Terme kürzen sich nicht mehr; andererseits ist A + B - B immer gleich A, auch wenn B mutiert wird.

contains_branch(other)[source]#

Gibt zurück, ob die gegebene Transformation ein Teilbaum dieser Transformation ist.

Diese Routine verwendet die Gleichheit von Transformationen zur Identifizierung von Teilbäumen. Daher wird in vielen Fällen die Objekt-ID verwendet.

Für den Fall, dass die gegebene Transformation die gesamte Transformation darstellt, wird True zurückgegeben.

contains_branch_seperately(other_transform)[source]#

Gibt zurück, ob der gegebene Zweig ein Teilbaum dieser Transformation in jeder separaten Dimension ist.

Eine häufige Verwendung dieser Methode ist die Identifizierung, ob eine Transformation eine gemischte Transformation ist, die die Datentransformation eines Achsenobjekts enthält. z.B.

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

Gibt die Anzahl der Transformationen zurück, die miteinander verkettet wurden, um diese Transformationsinstanz zu bilden.

Hinweis

Für den Sonderfall einer zusammengesetzten Transformation wird die maximale Tiefe der beiden zurückgegeben.

get_affine()[source]#

Gibt den affinen Teil dieser Transformation zurück.

get_matrix()[source]#

Gibt die Matrix für den affinen Teil dieser Transformation zurück.

has_inverse = False#

True, wenn diese Transformation eine entsprechende Umkehrtansformation hat.

input_dims = None#

Die Anzahl der Eingabedimensionen dieser Transformation. Muss in der Unterklasse überschrieben werden (mit Ganzzahlen).

inverted()[source]#

Gibt die entsprechende Umkehrtansformation zurück.

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

Der Rückgabewert dieser Methode sollte als temporär behandelt werden. Eine Änderung an self führt nicht zu einer entsprechenden Änderung an seiner umgekehrten Kopie.

is_separable = False#

True, wenn diese Transformation in den x- und y-Dimensionen separierbar ist.

output_dims = None#

Die Anzahl der Ausgabedimensionen dieser Transformation. Muss in der Unterklasse überschrieben werden (mit Ganzzahlen).

transform(werte)[source]#

Wendet diese Transformation auf die angegebenen Werte an.

Parameter:
valuesarray-artig

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

transform_affine(werte)[source]#

Wendet nur den affinen Teil dieser Transformation auf das angegebene Array von Werten an.

transform(values) ist immer äquivalent zu transform_affine(transform_non_affine(values)).

Bei nicht-affinen Transformationen ist dies im Allgemeinen eine No-Op. Bei affinen Transformationen ist dies äquivalent zu transform(values).

Parameter:
valuesarray

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

transform_angles(winkel, punkte, radiant=False, pushoff=1e-05)[source]#

Transformiere eine Reihe von Winkeln, die an bestimmten Positionen verankert sind.

Parameter:
winkel(N,) Array-ähnlich

Die zu transformierenden Winkel.

punkte(N, 2) Array-ähnlich

Die Punkte, an denen die Winkel verankert sind.

radiantbool, standardmäßig: False

Ob winkel Radianten oder Grade sind.

pushofffloat

Für jeden Punkt in punkte und jeden Winkel in winkel wird der transformierte Winkel berechnet, indem ein Segment der Länge pushoff von diesem Punkt aus transformiert wird und es relativ zur horizontalen Achse macht. Dann wird der Winkel zwischen der horizontalen Achse und dem transformierten Segment gemessen.

Gibt zurück:
(N,) Array
transform_bbox(bbox)[source]#

Transformiere die gegebene Begrenzungsbox.

Für intelligentere Transformationen, einschließlich Caching (eine häufige Anforderung in Matplotlib), siehe TransformedBbox.

transform_non_affine(werte)[source]#

Wendet nur den nicht-affinen Teil dieser Transformation an.

transform(values) ist immer äquivalent zu transform_affine(transform_non_affine(values)).

Bei nicht-affinen Transformationen ist dies im Allgemeinen äquivalent zu transform(values). Bei affinen Transformationen ist dies immer eine No-Op.

Parameter:
valuesarray

Die Eingabewerte als Array der Länge input_dims oder Form (N, input_dims).

Gibt zurück:
Array

Die Ausgabewerte als Array der Länge output_dims oder Form (N, output_dims), abhängig von der Eingabe.

transform_path(pfad)[source]#

Wendet die Transformation auf Path path an und gibt einen neuen Path zurück.

In einigen Fällen kann diese Transformation dem Pfad Kurven hinzufügen, die als Liniensegmente begonnen haben.

transform_path_affine(pfad)[source]#

Wendet den affinen Teil dieser Transformation auf Path path an und gibt einen neuen Path zurück.

transform_path(path) ist äquivalent zu transform_path_affine(transform_path_non_affine(values)).

transform_path_non_affine(pfad)[source]#

Wendet den nicht-affinen Teil dieser Transformation auf Path path an und gibt einen neuen Path zurück.

transform_path(path) ist äquivalent zu transform_path_affine(transform_path_non_affine(values)).

transform_point(punkt)[source]#

Gibt einen transformierten Punkt zurück.

Diese Funktion wird nur aus Kompatibilitätsgründen beibehalten; die allgemeinere Methode transform kann sowohl eine Liste von Punkten als auch einen einzelnen Punkt transformieren.

Der Punkt wird als Sequenz der Länge input_dims angegeben. Der transformierte Punkt wird als Sequenz der Länge output_dims zurückgegeben, abhängig von der Eingabe.

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

Bases: object

Die Basisklasse für alles, was am Transformationsbaum teilnimmt und seine Eltern invalidieren oder invalidiert werden muss. Dazu gehören auch Klassen, die nicht wirklich Transformationen sind, wie Begrenzungsrahmen, da einige Transformationen von Begrenzungsrahmen abhängen, um ihre Werte zu berechnen.

Parameter:
shorthand_namestr

Ein String, der den "Namen" der Transformation darstellt. Der Name hat keine Bedeutung, außer zur Verbesserung der Lesbarkeit von str(transform) bei DEBUG=True.

frozen()[source]#

Gibt eine gefrorene Kopie dieses Transformationsknotens zurück. Die gefrorene Kopie wird nicht aktualisiert, wenn sich ihre Kinder ändern. Nützlich zum Speichern eines zuvor bekannten Zustands einer Transformation, bei der normalerweise copy.deepcopy() verwendet werden könnte.

invalidate()[source]#

Ungültig machen dieses TransformNode und löst die Ungültigmachung seiner Vorfahren aus. Sollte aufgerufen werden, wenn sich die Transformation ändert.

is_affine = False#
is_bbox = False#
pass_through = False#

Wenn pass_through True ist, werden alle Vorfahren immer invalidiert, auch wenn 'self' bereits ungültig ist.

set_children(*children)[source]#

Setze die Kinder der Transformation, damit das Ungültigmachungssystem weiß, welche Transformationen diese Transformation ungültig machen können. Sollte vom Konstruktor aller Transformationen aufgerufen werden, die von anderen Transformationen abhängen.

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

Bases: Transform

Eine Hilfsklasse, die eine einzelne Kindertransformation enthält und sich äquivalent zu dieser verhält.

Dies ist nützlich, wenn ein Knoten des Transformationsbaums zur Laufzeit durch eine Transformation eines anderen Typs ersetzt werden muss. Diese Klasse ermöglicht es, dass diese Ersetzung die Ungültigmachung korrekt auslöst.

TransformWrapper-Instanzen müssen während ihrer gesamten Lebensdauer dieselben Eingabe- und Ausgabedimensionen haben, daher darf die Kindertransformation nur durch eine andere Kindertransformation mit denselben Dimensionen ersetzt werden.

child: Eine Transform-Instanz. Dieses Kind kann später mit set() ersetzt werden.

frozen()[source]#

Gibt eine gefrorene Kopie dieses Transformationsknotens zurück. Die gefrorene Kopie wird nicht aktualisiert, wenn sich ihre Kinder ändern. Nützlich zum Speichern eines zuvor bekannten Zustands einer Transformation, bei der normalerweise copy.deepcopy() verwendet werden könnte.

property has_inverse#

Gibt True zurück, wenn das Argument wahr ist, andernfalls False. Die integrierten True und False sind die einzigen beiden Instanzen der Klasse bool. Die Klasse bool ist eine Unterklasse der Klasse int und kann nicht unterklassifiziert werden.

property input_dims#

Der Typ des None-Singulars.

property is_affine#

Gibt True zurück, wenn das Argument wahr ist, andernfalls False. Die integrierten True und False sind die einzigen beiden Instanzen der Klasse bool. Die Klasse bool ist eine Unterklasse der Klasse int und kann nicht unterklassifiziert werden.

property is_separable#

Gibt True zurück, wenn das Argument wahr ist, andernfalls False. Die integrierten True und False sind die einzigen beiden Instanzen der Klasse bool. Die Klasse bool ist eine Unterklasse der Klasse int und kann nicht unterklassifiziert werden.

property output_dims#

Der Typ des None-Singulars.

pass_through = True#

Wenn pass_through True ist, werden alle Vorfahren immer invalidiert, auch wenn 'self' bereits ungültig ist.

set(child)[source]#

Ersetze das aktuelle Kind dieser Transformation durch ein anderes.

Das neue Kind muss dieselbe Anzahl von Ein- und Ausgabedimensionen wie das aktuelle Kind haben.

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

Bases: BboxBase

Ein Bbox, der automatisch durch eine gegebene Transformation transformiert wird. Wenn sich entweder der untergeordnete Begrenzungsrahmen oder die Transformation ändert, werden die Grenzen dieses Bbox entsprechend aktualisiert.

Parameter:
bboxBbox
transformTransform
contains(x, y)[source]#

Gibt zurück, ob (x, y) in der Bounding Box oder an deren Rand liegt.

fully_contains(x, y)[source]#

Gibt zurück, ob x, y in der Bounding Box liegt, aber nicht an deren Rand.

get_points()[source]#
class matplotlib.transforms.TransformedPatchPath(patch)[source]#

Bases: TransformedPath

Ein TransformedPatchPath speichert eine nicht-affin transformierte Kopie des Patch zwischen. Diese zwischengespeicherte Kopie wird automatisch aktualisiert, wenn sich der nicht-affine Teil der Transformation oder der Patch ändert.

Parameter:
patchPatch
class matplotlib.transforms.TransformedPath(path, transform)[source]#

Basiert auf: TransformNode

Ein TransformedPath speichert eine nicht-affin transformierte Kopie des Path zwischen. Diese zwischengespeicherte Kopie wird automatisch aktualisiert, wenn sich der nicht-affine Teil der Transformation ändert.

Hinweis

Pfade werden von dieser Klasse als unveränderlich betrachtet. Jede Änderung der Scheitelpunkte/Codes des Pfades löst keine Neuberechnung der Transformation aus.

Parameter:
pathPath
transformTransform
get_affine()[source]#
get_fully_transformed_path()[source]#

Gibt eine vollständig transformierte Kopie des Kindpfades zurück.

get_transformed_path_and_affine()[Quelle]#

Gibt eine Kopie des Kindpfads zurück, wobei der nicht-affine Teil der Transformation bereits angewendet wurde, zusammen mit dem affinen Teil des Pfads, der zur Vervollständigung der Transformation erforderlich ist.

get_transformed_points_and_affine()[Quelle]#

Gibt eine Kopie des Kindpfads zurück, wobei der nicht-affine Teil der Transformation bereits angewendet wurde, zusammen mit dem affinen Teil des Pfads, der zur Vervollständigung der Transformation erforderlich ist. Im Gegensatz zu get_transformed_path_and_affine() wird keine Interpolation durchgeführt.

matplotlib.transforms.blended_transform_factory(x_transform, y_transform)[Quelle]#

Erstellt eine neue "gemischte" Transformation, die x_transform zur Transformation der x-Achse und y_transform zur Transformation der y-Achse verwendet.

Eine schnellere Version der gemischten Transformation wird für den Fall zurückgegeben, dass beide Kindtransformationen affin sind.

matplotlib.transforms.composite_transform_factory(a, b)[Quelle]#

Erstellt eine neue zusammengesetzte Transformation, die das Ergebnis der Anwendung der Transformation a und dann der Transformation b ist.

Es werden Kurzversionen der gemischten Transformation für den Fall bereitgestellt, dass beide Kindtransformationen affin sind oder eine davon die Identitätstransformation ist.

Zusammengesetzte Transformationen können auch über den Operator '+' erstellt werden, z.B.

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

Prüft, ob ein Intervall einen gegebenen Wert einschliesslich der Endpunkte enthält.

Parameter:
interval(float, float)

Die Endpunkte des Intervalls.

valfloat

Wert, der geprüft werden soll, ob er innerhalb des Intervalls liegt.

Gibt zurück:
bool

Ob val innerhalb des intervalls liegt.

matplotlib.transforms.interval_contains_open(interval, val)[Quelle]#

Prüft, ob ein Intervall einen gegebenen Wert ausschliesslich der Endpunkte enthält.

Parameter:
interval(float, float)

Die Endpunkte des Intervalls.

valfloat

Wert, der geprüft werden soll, ob er innerhalb des Intervalls liegt.

Gibt zurück:
bool

Ob val innerhalb des intervalls liegt.

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

Modifiziert die Endpunkte eines Bereichs nach Bedarf, um Singularitäten zu vermeiden.

Parameter:
vmin, vmaxfloat

Die ursprünglichen Endpunkte.

expanderfloat, Standard: 0.001

Bruchteiliger Betrag, um den vmin und vmax erweitert werden, wenn das ursprüngliche Intervall zu klein ist, basierend auf tiny.

tinyfloat, Standard: 1e-15

Schwellenwert für das Verhältnis des Intervalls zum maximalen Absolutwert seiner Endpunkte. Wenn das Intervall kleiner als dieser Wert ist, wird es erweitert. Dieser Wert sollte etwa 1e-15 oder grösser sein; andernfalls nähert sich das Intervall der doppelten Präzisionsauflösungsgrenze.

increasingbool, Standard: True

Wenn True, werden vmin und vmax vertauscht, wenn vmin > vmax.

Gibt zurück:
vmin, vmaxfloat

Endpunkte, erweitert und/oder vertauscht, falls erforderlich. Wenn ein Eingabewert inf oder NaN ist oder wenn beide Eingabewerte 0 oder sehr nahe bei Null sind, werden -expander, expander zurückgegeben.

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

Gibt eine neue Transformation mit einem hinzugefügten Offset zurück.

Parameter:
transTransform-Unterklasse

Jede Transformation, auf die ein Offset angewendet wird.

figFigure, Standard: None

Aktuelle Abbildung. Es kann None sein, wenn units 'dots' sind.

x, yfloat, Standard: 0.0

Der anzuwendende Offset.

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

Einheiten des Offsets.

Gibt zurück:
Transform-Unterklasse

Transformation mit angewendetem Offset.