Skip to content

Commit 0e124c2

Browse files
committed
move tick labels to period positions
1 parent 9f3e1db commit 0e124c2

File tree

2 files changed

+32
-11
lines changed

2 files changed

+32
-11
lines changed

src/plots/cartesian/axes.js

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -696,10 +696,38 @@ axes.calcTicks = function calcTicks(ax, opts) {
696696
);
697697

698698
if(isPeriod) {
699-
ticksOut[i].periodX = i ? (
700-
tickVals[i].value +
701-
tickVals[i - 1].value
702-
) / 2 : false;
699+
var v = tickVals[i].value;
700+
701+
var a, b;
702+
if(i === tickVals.length - 1) {
703+
a = i - 1;
704+
b = i;
705+
} else {
706+
a = i;
707+
b = i + 1;
708+
}
709+
var A = tickVals[a].value;
710+
var B = tickVals[b].value;
711+
712+
var delta = Math.abs(B - A);
713+
var sign = A > B ? -1 : 1;
714+
var half = sign / 2;
715+
716+
if(delta >= ONEAVGYEAR) {
717+
v += half * ONEAVGYEAR;
718+
} else if(delta >= ONEDAY * 28) { // Months could have days less than ONEAVGMONTH
719+
v += half * ONEAVGMONTH;
720+
} else if(delta >= ONEDAY) {
721+
v += half * ONEDAY;
722+
} else if(delta >= ONEHOUR) {
723+
v += half * ONEHOUR;
724+
} else if(delta >= ONEMIN) {
725+
v += half * ONEMIN;
726+
} else if(delta >= ONESEC) {
727+
v += half * ONESEC;
728+
}
729+
730+
ticksOut[i].periodX = v;
703731
}
704732
}
705733

@@ -2532,13 +2560,6 @@ axes.drawLabels = function(gd, ax, opts) {
25322560
var axLetter = axId.charAt(0);
25332561
var cls = opts.cls || axId + 'tick';
25342562
var vals = opts.vals;
2535-
if(
2536-
ax.showticklabels &&
2537-
ax.ticklabelmode === 'period'
2538-
) {
2539-
vals = vals.slice();
2540-
vals.shift();
2541-
}
25422563

25432564
var labelFns = opts.labelFns;
25442565
var tickAngle = opts.secondary ? 0 : ax.tickangle;
5.13 KB
Loading

0 commit comments

Comments
 (0)