matplotlib
Koordinatensysteme
Suche…
Bemerkungen
Matplotlib verfügt über vier verschiedene Koordinatensysteme, mit denen das Positionieren verschiedener Objekte, z. B. Text, vereinfacht werden kann. Jedes System hat ein entsprechendes Transformationsobjekt, das Koordinaten von diesem System in das sogenannte Anzeigekoordinatensystem transformiert.
Das Datenkoordinatensystem ist das System, das durch die Daten in den jeweiligen Achsen definiert wird. Dies ist nützlich, wenn Sie versuchen, ein Objekt relativ zu den aufgezeichneten Daten zu positionieren. Der Bereich wird durch die xlim
und ylim
Eigenschaften der Axes
. Das entsprechende Transformationsobjekt ist ax.transData
.
Achsen-Koordinatensystem ist das an sein Axes
Objekt gebundene System. Punkte (0, 0) und (1, 1) definieren die unteren linken und rechten oberen Ecken der Achsen. Daher ist es hilfreich, wenn Sie sich relativ zu den Achsen wie in der Mitte des Diagramms positionieren. Das entsprechende Transformationsobjekt ist ax.transAxes
.
Das Koordinatensystem der Figur ist analog zum Koordinatensystem der Achsen, außer dass es an die Figure
gebunden ist. Die Punkte (0, 0) und (1, 1) stehen für die linke untere und die rechte obere Ecke der Figur. Dies ist nützlich, wenn Sie versuchen, etwas relativ zum gesamten Bild zu positionieren. Das entsprechende Transformationsobjekt ist fig.transFigure
.
Das Anzeigekoordinatensystem ist das in Pixel angegebene Bildsystem. Punkte (0, 0) und (Breite, Höhe) sind die unteren linken und oberen rechten Pixel des Bildes oder der Anzeige. Es kann absolut zum Positionieren verwendet werden. Da Transformationsobjekte Koordinaten in dieses Koordinatensystem transformieren, ist dem Anzeigesystem kein Transformationsobjekt zugeordnet. None
oder matplotlib.transforms.IdentityTransform()
kann jedoch bei Bedarf verwendet werden.
Weitere Details finden Sie hier .
Koordinatensysteme und Text
Die Koordinatensysteme von Matplotlib sind sehr praktisch, wenn Sie versuchen, die von Ihnen erstellten Plots mit Anmerkungen zu versehen. Manchmal möchten Sie Text relativ zu Ihren Daten positionieren, z. B. wenn Sie versuchen, einen bestimmten Punkt zu kennzeichnen. Zu anderen Zeiten möchten Sie vielleicht einen Text oberhalb der Figur hinzufügen. Dies kann leicht erreicht werden, indem ein geeignetes Koordinatensystem ausgewählt wird, indem ein Transformationsobjekt an den transform
im Aufruf von text()
.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([2.], [3.], 'bo')
plt.text( # position text relative to data
2., 3., 'important point', # x, y, text,
ha='center', va='bottom', # text alignment,
transform=ax.transData # coordinate system transformation
)
plt.text( # position text relative to Axes
1.0, 1.0, 'axes corner',
ha='right', va='top',
transform=ax.transAxes
)
plt.text( # position text relative to Figure
0.0, 1.0, 'figure corner',
ha='left', va='top',
transform=fig.transFigure
)
plt.text( # position text absolutely at specific pixel on image
200, 300, 'pixel (200, 300)',
ha='center', va='center',
transform=None
)
plt.show()