Nihat wrote:
> Hello all,
>
> I believe it is an easy thing to do but I haven't figured out how to 
> convert between coordinate systems using transData or transAxes.
>
> x = numpy.arange(0.0, 1.0+0.01, 0.01)
> y = numpy.cos(2*2*numpy.pi*x)
> pylab.plot(x, y)
>
> I want to transform y1 to axis scale between 0 and 1.
> Also, I want to transform a value in axis scale, say 0.25, to a 
> corresponding y value in the data coordinates.
>
> I used
>
> ax = gca()
> (x_screen, y_screen) = ax.transData.transform([x[10], y[10])
> (x10, y10) = ax.transAxes.inverted().transform([x_screen, y_screen])
>
> Is it the proper way of doing it?  Where can I find more info on 
> transformations in general?
The new transformations infrastructure is documented in the new docs 
(which are still in progress...)

   http://matplotlib.sourceforge.net/doc/html/devel/transformations.html

This document, however, doesn't describe what things like transData and 
transAxes are defined to be.  That would probably be a useful thing to 
document.

transAxes places the axes within the figure.

transData maps from the data's coordinates all the way to the figure 
space which is (0, 0) to (1, 1).  transData is a composite of the scale 
(for eg. logarithm), the limits (the currently "zoomed" in portion of 
the data), and the transAxes.  It's the "fast lane" between the data and 
the screen.

In your example, if you expect to go between data and screen 
coordinates, you would do:

(x_screen, y_screen) = ax.transData.transform([x[10], y[10])
(x10, y10) = ax.transData.inverted().transform([x_screen, y_screen])

Note, we use transData both ways.
>
> Currently I am doing it manually scaling things with axis limits, 
> etc.  I believe the neat thing is to use the transforms.  Can somebody 
> explain me how it is done with transforms?  I am using v0.98.1.

I hope that answers your question, but it's not entirely clear what you 
would like to do.  Please ask further if the above didn't help.

Cheers,
Mike

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to