Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c28d0e5

Browse files
committed
centralize & refactor range expansions
1 parent 4d383f2 commit c28d0e5

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

src/plots/cartesian/axes.js

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,15 @@ var autorange = require('./autorange');
5656
axes.getAutoRange = autorange.getAutoRange;
5757
axes.findExtremes = autorange.findExtremes;
5858

59+
var epsilon = 0.0001;
60+
function expandRange(range) {
61+
var delta = (range[1] - range[0]) * epsilon;
62+
return [
63+
range[0] - delta,
64+
range[1] + delta
65+
];
66+
}
67+
5968
/*
6069
* find the list of possible axes to reference with an xref or yref attribute
6170
* and coerce it to that list
@@ -566,8 +575,9 @@ axes.calcTicks = function calcTicks(ax) {
566575
ax._tmin = axes.tickFirst(ax);
567576

568577
// add a tiny bit so we get ticks which may have rounded out
569-
var startTick = rng[0] * 1.0001 - rng[1] * 0.0001;
570-
var endTick = rng[1] * 1.0001 - rng[0] * 0.0001;
578+
var exRng = expandRange(rng);
579+
var startTick = exRng[0];
580+
var endTick = exRng[1];
571581
// check for reversed axis
572582
var axrev = (rng[1] < rng[0]);
573583

@@ -691,10 +701,9 @@ function arrayTicks(ax) {
691701
var text = ax.ticktext;
692702
var ticksOut = new Array(vals.length);
693703
var rng = Lib.simpleMap(ax.range, ax.r2l);
694-
var r0expanded = rng[0] * 1.0001 - rng[1] * 0.0001;
695-
var r1expanded = rng[1] * 1.0001 - rng[0] * 0.0001;
696-
var tickMin = Math.min(r0expanded, r1expanded);
697-
var tickMax = Math.max(r0expanded, r1expanded);
704+
var exRng = expandRange(rng);
705+
var tickMin = Math.min(exRng[0], exRng[1]);
706+
var tickMax = Math.max(exRng[0], exRng[1]);
698707
var j = 0;
699708

700709
// without a text array, just format the given values as any other ticks
@@ -956,7 +965,7 @@ axes.tickFirst = function(ax) {
956965
var sRound = axrev ? Math.floor : Math.ceil;
957966
// add a tiny extra bit to make sure we get ticks
958967
// that may have been rounded out
959-
var r0 = rng[0] * 1.0001 - rng[1] * 0.0001;
968+
var r0 = expandRange(rng)[0];
960969
var dtick = ax.dtick;
961970
var tick0 = r2l(ax.tick0);
962971

0 commit comments

Comments
 (0)