# Pre-determine plot ranges?

3 views (last 30 days)
Chris on 21 Aug 2019
Commented: Chris on 23 Aug 2019
Given two vectors of the same length is there a way to determine the axes ranges that would result if the data were plotted without plotting the data?
I am looking to update xlim and ylim manually after the plotted data is changed* but with out relying on the automatic resizing as there are other things plotted that I dont want to be used in determining the plot ranges. Also I would rather not redraw the entire figure with just the modified data then redraw the larger thing.
(plotted data is changed*: I am manipulating the XData and YData parameter of plotted data directly with a handle.)

Adam Danz on 21 Aug 2019
Edited: Adam Danz on 21 Aug 2019
If vector1 and vector1 are the x and y values to be plotted, the xlim and ylim for a tight axis would be,
xlim([min(vector1), max(vector1)]);
ylim([min(vector2), max(vector2)]);
If you'd like to access those values from the line object handle 'h',
xlim([min(h.XData), max(h.XData)]);
ylim([min(h.YData), max(h.YData)]);
If you'd like to add 5% of the data range on each side so your max and min data points are not on the axis edges,
xlim([min(x),max(x)] + [-1,1]*.05*range(x))
ylim([min(y),max(y)] + [-1,1]*.05*range(y))
Chris on 23 Aug 2019
yep good edit. initilization wont be a problem and the changed data points will be of the same magnitude so reusing tick should work.

### Categories

Find more on Axis Labels in Help Center and File Exchange

R2019a

### Community Treasure Hunt

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

Start Hunting!