trasforma.offset_copy #

Questo illustra l'uso di transforms.offset_copyper eseguire una trasformazione che posiziona un elemento di disegno come una stringa di testo in corrispondenza di un offset specificato nelle coordinate dello schermo (punti o pollici) rispetto a una posizione specificata in qualsiasi coordinata.

Ogni artista (testo, Line2D, ecc.) ha una trasformazione che può essere impostata quando l'artista viene creato, ad esempio dalla funzione pyplot corrispondente. Per impostazione predefinita si tratta in genere della trasformazione Axes.transData, che va dalle unità di dati ai pixel dello schermo. Possiamo usare la offset_copyfunzione per creare una copia modificata di questa trasformazione, dove la modifica consiste in un offset.

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

Galleria generata da Sphinx-Gallery