keeping zoom...

fred <fredmfp@...287...> writes:

imshow(rand(50,50))
then zoom with the mouse and redo
imshow(rand(50,50))
the zoom factor is not kept, ie xrange/yrange are still (0,50).

How can I keep the zoom factor ?

Try:

imshow(rand(50,50))
# zoom with mouse
xlim=getp(gca(), 'xlim'); ylim = getp(gca(), 'ylim')
imshow(rand(50,50))
setp(gca(), 'xlim', xlim); setp(gca(), 'ylim', ylim)

···

--
Jouni K. Sepp�nen
http://www.iki.fi/jks

Jouni K. Sepp�nen a �crit :

Try:

imshow(rand(50,50))
# zoom with mouse
xlim=getp(gca(), 'xlim'); ylim = getp(gca(), 'ylim')
imshow(rand(50,50))
setp(gca(), 'xlim', xlim); setp(gca(), 'ylim', ylim)

Well..., I forgot to mention something, sorry
I already apply this trick: I use get_{x,y}lim and set_{x,y}lim.
Which works almost fine.

In fact, I use a grid, which is defined by xmin, xmax, dx & ymin, ymax, dy.
I don't want do display on the axes the number of points, but the real world
axis dimension.

If xmin=ymin=0 and xmax=ymax=500 with dx=dy=1,
the trick does work fine.

Now, if I set xmax=ymax=1000 but dx=dy=2 (so I have the same number of points)
I have to use imshow extent option, because of the use of _xlim & _ylim.

Please see http://fredantispam.free.fr/a.png without extent option,
http://fredantispam.free.fr/b.png with extent option.

But in this case, after zoomed,

the trick does not work anymore: x & y limits are right,
but the whole data is displayed by imshow.

Maybe I'm doing something wrong ?

TIA.

Cheers,

···

fred a �crit :

Maybe I'm doing something wrong ?

Yes

You only need to set extent to the const xmin/xmax & ymin/ymax
and not those you get with get_xlim & get_ylim.

Sorry for the noise.

Cheers,

···

fred a �crit :

Sorry for the noise.

Thanks anyway, Jouni, I fixed my issue thanks to you

You showed me that the get_?lim methods were right,
so I followed my feeling further.

Cheers,

···

fred a �crit :

I get anoter issue now.

How can I know if the displayed image has been zoomed or not
(I mean not on testing xlim & ylim) ?

TIA

···