Noter
Cliquez ici pour télécharger l'exemple de code complet
transforme.offset_copy #
Cela illustre l'utilisation de transforms.offset_copy
pour effectuer une transformation qui positionne un élément de dessin tel qu'une chaîne de texte à un décalage spécifié dans les coordonnées de l'écran (points ou pouces) par rapport à un emplacement donné dans n'importe quelle coordonnée.
Chaque artiste (texte, Line2D, etc.) a une transformation qui peut être définie lors de la création de l'artiste, par exemple par la fonction pyplot correspondante. Par défaut, il s'agit généralement de la transformation Axes.transData, allant des unités de données aux pixels d'écran. Nous pouvons utiliser la offset_copy
fonction pour faire une copie modifiée de cette transformation, où la modification consiste en un décalage.
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()