-
Notifications
You must be signed in to change notification settings - Fork 5
/
roundplotlimits.m
47 lines (42 loc) · 1.28 KB
/
roundplotlimits.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
% expand the current plot limits to the nearest value with a given
% precision (default 1 decimal point).
%
% ax gca axis handle
% axdir 'y' axis to process ('xy' is also supported)
% specialval NaN if present and the limits and any specialval are
% outside range we rescale to include it. Can be
% scalar or vector.
% precision 1 number of decimal points
%
% outlim = roundplotlimits(ax,axdir,specialval,precision)
function outlim = roundplotlimits(ax,axdir,specialval,precision)
if ieNotDefined('ax')
ax = gca;
end
if ieNotDefined('axdir')
axdir = 'y';
end
if ieNotDefined('precision')
precision = 1;
end
if ieNotDefined('specialval')
specialval = NaN;
end
outlim = [];
for thisax = ax(:)'
axlim = [];
for thisdir = axdir(:)'
lim = get(thisax,[thisdir 'lim']);
lim = [reduceprecision(lim(1),precision,@floor) ...
reduceprecision(lim(2),precision,@ceil)];
if lim(2) < max(specialval(:))
lim(2) = max(specialval(:));
end
if lim(1) > min(specialval(:))
lim(1) = min(specialval(:));
end
set(thisax,[thisdir 'lim'],lim);
axlim = [axlim lim];
end
outlim = [outlim; axlim];
end