Skip to content

Commit

Permalink
move tick labels to period positions
Browse files Browse the repository at this point in the history
  • Loading branch information
archmoj committed Jul 20, 2020
1 parent 9f3e1db commit 0e124c2
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 11 deletions.
43 changes: 32 additions & 11 deletions src/plots/cartesian/axes.js
Original file line number Diff line number Diff line change
Expand Up @@ -696,10 +696,38 @@ axes.calcTicks = function calcTicks(ax, opts) {
);

if(isPeriod) {
ticksOut[i].periodX = i ? (
tickVals[i].value +
tickVals[i - 1].value
) / 2 : false;
var v = tickVals[i].value;

var a, b;
if(i === tickVals.length - 1) {
a = i - 1;
b = i;
} else {
a = i;
b = i + 1;
}
var A = tickVals[a].value;
var B = tickVals[b].value;

var delta = Math.abs(B - A);
var sign = A > B ? -1 : 1;
var half = sign / 2;

if(delta >= ONEAVGYEAR) {
v += half * ONEAVGYEAR;
} else if(delta >= ONEDAY * 28) { // Months could have days less than ONEAVGMONTH
v += half * ONEAVGMONTH;
} else if(delta >= ONEDAY) {
v += half * ONEDAY;
} else if(delta >= ONEHOUR) {
v += half * ONEHOUR;
} else if(delta >= ONEMIN) {
v += half * ONEMIN;
} else if(delta >= ONESEC) {
v += half * ONESEC;
}

ticksOut[i].periodX = v;
}
}

Expand Down Expand Up @@ -2532,13 +2560,6 @@ axes.drawLabels = function(gd, ax, opts) {
var axLetter = axId.charAt(0);
var cls = opts.cls || axId + 'tick';
var vals = opts.vals;
if(
ax.showticklabels &&
ax.ticklabelmode === 'period'
) {
vals = vals.slice();
vals.shift();
}

var labelFns = opts.labelFns;
var tickAngle = opts.secondary ? 0 : ax.tickangle;
Expand Down
Binary file modified test/image/baselines/date_axes_period.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 0e124c2

Please sign in to comment.