Coordinate transformations and second axis

Hi Everyone,

after trying every example I could find in the documentation, gallery
and online I thought let's give the mailing list a try.
I have an image displayed with imshow.
I would like to display the pixel coordinates on the left y and bottom
x axis and the physical coordinates (in arcseconds) on the right y and
top x axis.
I tried it with twinx & twiny but then only a part of the image is
shown (image is in pixel coordinates), I also tried creating a new
axes object with ax2=plt.subplot(1,1,1, frameon=False) but then the
image is no longer shown (this might be a bug).
Is this possible with the current version (0.99) of matplotlib?

Kind regards,

Pim Schellart

As far as I know, there is no easy way to do that with mpl (especially
when image is involved).
You may manually add ticks and ticklabels (but without using set_ticks, etc).

If you're using 0.99 and later, you may use axes_grid toolkit, but it
has some cons. So, if you're going to use it, please read through the
documentation.

from mpl_toolkits.axes_grid.parasite_axes import SubplotHost
import matplotlib.pyplot as plt
import matplotlib.transforms as mtransforms

fig = plt.figure(1, (4,3))

ax = SubplotHost(fig, 111)
fig.add_subplot(ax)
ax.imshow([[1,2],[3,4]], origin="lower")

# transform from arcsecond to pixel
tr = mtransforms.Affine2D().translate(+1,+1).scale(2., 2.)
ax2 = ax.twin(tr)

plt.show()

Regards,

-JJ

ยทยทยท

On Wed, Oct 7, 2009 at 6:14 AM, Pim Schellart <p.schellart@...287...> wrote:

Hi Everyone,

after trying every example I could find in the documentation, gallery
and online I thought let's give the mailing list a try.
I have an image displayed with imshow.
I would like to display the pixel coordinates on the left y and bottom
x axis and the physical coordinates (in arcseconds) on the right y and
top x axis.
I tried it with twinx & twiny but then only a part of the image is
shown (image is in pixel coordinates), I also tried creating a new
axes object with ax2=plt.subplot(1,1,1, frameon=False) but then the
image is no longer shown (this might be a bug).
Is this possible with the current version (0.99) of matplotlib?

Kind regards,

Pim Schellart

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
matplotlib-users List Signup and Options