images on log axes: bug

Hi all,

In June '06, there was a short discussion on getting images displayed on log
axes (thread: "showing an image on log axes?"). John Hunter posted this
example code:

from pylab import figure, show, nx
fig = figure()
ax = fig.add_subplot(111)
im = nx.mlab.rand(500,500)
ax.imshow(im, extent=(1,501,1,501))
ax.set_xscale('log')
ax.set_yscale('log')
show()

This works, until one tries to change the display limits:

ax.set_xlim(.1, 1e3)
ax.set_ylim(.1, 1e3)
show()

The image is incorrectly drawn in the corner of the axes, instead of in the
rectangular region defined by the image's extent. I think this is a bug (as
of r3166).

I've been trying to get around this problem with existing code, including the
use of NonUniformImage()s. Perhaps it would be useful to have a
general-purpose image class, something like a DataImage (rather than an
AxesImage) that is similar to the NonUniformImage but respects
transformations from data to axes coordinates (and could be used in log or
polar plots). Something for the wishlist.

Mike