transforme.offset_copy #

Cela illustre l'utilisation de transforms.offset_copypour 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_copyfonction pour faire une copie modifiée de cette transformation, où la modification consiste en un décalage.

transoffset
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()

Galerie générée par Sphinx-Gallery