Keep the graphic's zoom

Hi,
I would like to know how I can keep the zoom of graphic when I will go to change the variable that I'm watching at the moment.
thanks
regards

6 Comments

By "changing the variable", do you mean replotting with new values?
Mtlb Usr
Mtlb Usr on 14 Mar 2011
Hi Andrew,
No exactly. I have got a multiple Y axis variable 2D graphic and when I want to change the current y axis I have got a popupmenu to select other variable.
When I changed the variable there isn't a new plot. Instead of this there is a axis change.
Do you understand me?
thanks
regards.
I think so. Do you want to preserve the axes limits or the scale? (In other words, if your X axis limits are [3 5] after zooming, do you want to keep it at [3 5] or [Xlower Xlower+2]?)
Mtlb Usr
Mtlb Usr on 15 Mar 2011
Hi Andrew,
OK,for now I want to preserve the axis limits after zooming and then when I changed Y axis variable to keep these limits.
regards
Mtlb Usr
Mtlb Usr on 16 Mar 2011
Hi Andrew,
Finally, do you know how I can preserve the axis limits after zooming?
thanks
regards
Jan
Jan on 16 Mar 2011
Please anser my question. Keeping the limits and zooming is a contradiction. Therefore you cannot do both.

Sign in to comment.

 Accepted Answer

Jan
Jan on 14 Mar 2011
Another approach:
y1 = rand(1, 100);
y2 = rand(1, 200) * 2;
AxesH = axes('NextPlot', 'add');
Plot1H = plot(y1);
pause(2.0);
set(AxesH, 'XLimMode', 'manual', 'YLimMode', 'manual');
Plot2H = plot(y2, 'r');
Or you can replace the XData and YData of the plotted line directly instead of the last line:
set(Plot1H, 'XData', 1:200, 'YData', rand(1, 200));

7 Comments

Mtlb Usr
Mtlb Usr on 15 Mar 2011
Hi Jan,
If I understand you well, you said to me that if I changed XData & YData properties respectively I would maintain the zoom after changing the variable.
Am I right?
regards
Jan
Jan on 15 Mar 2011
What is "the zoom" and how can it be maintained?
The shown method fixes the X- and Y-limits.
Mtlb Usr
Mtlb Usr on 17 Mar 2011
Hi Jan,
I have looked your comment.
Then, I'm interested in keeping the zoom. How can I do it?
regards
Jan
Jan on 17 Mar 2011
Let me try it again: What is "keeping the zoom"? This is simply no well defined term and you have to explain it, before we can help you.
If you want to fix the axis limits, the above shown code does it already: "set(AxesH, 'XLimMode', 'manual')".
Have you tried to run the shown code? Does it solve your problem? Did problems occur? Which? Do the results differ from your expectations? If so, describe the differences.
Mtlb Usr
Mtlb Usr on 17 Mar 2011
Hi Jan,
Sorry, I haven't realized.
Well, When I said keeping the zoom is that keeping the zoom that I have applied over one variable when I decide to change for other variable.
Do you understand me now?
regards
Jan
Jan on 17 Mar 2011
Perhaps I understand. Did you try my code?
Mtlb Usr
Mtlb Usr on 17 Mar 2011
Hi Jan,
I have could resolve the issue.
I had the answer in frot of me...
The solution has been put the keeplimits arg when I call datetick function.
Sometimes, I think that when you are thinking that you have a big problem, really it's not true because you have a very simple solution for this.
However, thank you for trying to help me.
regards

Sign in to comment.

More Answers (1)

If I understand your question, you can do something like the following. Make your first plot, for example
plot(1:10)
Zoom in, and then save the values of axis:
v = axis;
Finally, make your next plot and set the axis values.
plot(3:5)
axis(v)

Categories

Asked:

on 14 Mar 2011

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!