Nota
Haga clic aquí para descargar el código de ejemplo completo
transforma.offset_copy #
Esto ilustra el uso de transforms.offset_copy
para hacer una transformación que coloca un elemento de dibujo, como una cadena de texto, en un desplazamiento especificado en las coordenadas de la pantalla (puntos o pulgadas) en relación con una ubicación dada en cualquier coordenada.
Cada Artista (Texto, Línea2D, etc.) tiene una transformación que se puede configurar cuando se crea el Artista, como por ejemplo, mediante la función pyplot correspondiente. De forma predeterminada, suele ser la transformación Axes.transData, que pasa de unidades de datos a píxeles de pantalla. Podemos usar la offset_copy
función para hacer una copia modificada de esta transformación, donde la modificación consiste en un desplazamiento.
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()