# Affines and ax.text()

Hi All,

I'm having a problem using Affines to generate a rotated XY plot. The
code below works with the exception of the ax.text(...) statement which
doesn't put the text where I think it should go.

Anyone know what I'm doing wrong?

Thanks,
Alan.

from pylab import figure, show
from matplotlib.numerix import arange
from matplotlib.transforms import Value, Affine

line_props = dict(linewidth=0.5, color='black', linestyle='-')
fig = figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])

# Create Affine with 45 degree rotation
temp_orig = Value(-20)
theta_orig = Value(-20)
temp_width = Value(120)

scale = (ax.bbox.ur().x() - ax.bbox.ll().x())/temp_width
tx = ax.bbox.ll().x() - (temp_orig*scale + theta_orig*scale)
ty = ax.bbox.ll().y() - (temp_orig*scale - theta_orig*scale)
affine = Affine(scale, Value(0)-scale, scale, scale, tx, ty)

# Plot (rotated) gridlines
temp_min = -70
temp_max = 40
theta_min = -20
theta_max = 90

temp = arange(temp_min, temp_max, 10)
theta = arange(theta_min, theta_max, 10)

for t in temp:
ax.plot((t, t), (theta_min, theta_max), transform=affine,
**line_props)

for t in theta:
ax.plot((temp_min, temp_max), (t, t), transform=affine,
**line_props)

# Plot a small square around (0,20) - this works OK
ax.plot((-1, -1, 1, 1, -1), (19, 21, 21, 19, 19), transform=affine)

# Plot text at (0, 20)- should be in the same place as the small square,
but isn't
ax.text(0, 20, 'Test', transform=affine)

show()

···

--