Notiz
Klicken Sie hier , um den vollständigen Beispielcode herunterzuladen
transforms.offset_copy #
Dies veranschaulicht die Verwendung von transforms.offset_copy
zum Ausführen einer Transformation, die ein Zeichnungselement, wie z. B. eine Textzeichenfolge, an einem bestimmten Versatz in Bildschirmkoordinaten (Punkte oder Zoll) relativ zu einer Position positioniert, die in beliebigen Koordinaten angegeben ist.
Jeder Künstler (Text, Line2D usw.) hat eine Transformation, die beim Erstellen des Künstlers festgelegt werden kann, z. B. durch die entsprechende Pyplot-Funktion. Standardmäßig ist dies normalerweise die Axes.transData-Transformation, die von Dateneinheiten zu Bildschirmpixeln übergeht. Wir können die offset_copy
Funktion verwenden, um eine modifizierte Kopie dieser Transformation zu erstellen, wobei die Modifikation aus einem Offset besteht.
import matplotlib.pyplot as plt
import matplotlib.transforms as mtransforms
import numpy as np
xs = np.arange(7)
ys = xs**2
fig = plt.figure(figsize=(5, 10))
ax = plt.subplot(2, 1, 1)
# If we want the same offset for each text instance,
# we only need to make one transform. To get the
# transform argument to offset_copy, we need to make the axes
# first; the subplot function above is one way to do this.
trans_offset = mtransforms.offset_copy(ax.transData, fig=fig,
x=0.05, y=0.10, units='inches')
for x, y in zip(xs, ys):
plt.plot(x, y, 'ro')
plt.text(x, y, '%d, %d' % (int(x), int(y)), transform=trans_offset)
# offset_copy works for polar plots also.
ax = plt.subplot(2, 1, 2, projection='polar')
trans_offset = mtransforms.offset_copy(ax.transData, fig=fig,
y=6, units='dots')
for x, y in zip(xs, ys):
plt.polar(x, y, 'ro')
plt.text(x, y, '%d, %d' % (int(x), int(y)),
transform=trans_offset,
horizontalalignment='center',
verticalalignment='bottom')
plt.show()