Skip to content

Commit 66a98be

Browse files
committed
fixups for pre-tick0 and tick0 label in period mode
1 parent 79385c2 commit 66a98be

File tree

1 file changed

+18
-17
lines changed

1 file changed

+18
-17
lines changed

src/plots/cartesian/axes.js

+18-17
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,7 @@ axes.calcTicks = function calcTicks(ax, opts) {
592592
}
593593

594594
var isDLog = (ax.type === 'log') && !(isNumeric(ax.dtick) || ax.dtick.charAt(0) === 'L');
595+
595596
var tickVals;
596597
function generateTicks() {
597598
var xPrevious = null;
@@ -620,13 +621,12 @@ axes.calcTicks = function calcTicks(ax, opts) {
620621
generateTicks();
621622

622623
var isPeriod = ax.ticklabelmode === 'period';
623-
var addOneTickToStart = isPeriod && tickVals.length > 2;
624-
625-
if(addOneTickToStart) {
626-
tickVals.push({
624+
if(isPeriod) {
625+
// add one label to show pre tick0 period
626+
tickVals = [{
627627
minor: false,
628628
value: axes.tickIncrement(tickVals[0].value, ax.dtick, !axrev, ax.caldendar)
629-
});
629+
}].concat(tickVals);
630630
}
631631

632632
if(ax.rangebreaks) {
@@ -715,6 +715,7 @@ axes.calcTicks = function calcTicks(ax, opts) {
715715
}
716716
}
717717

718+
var removedPreTick0Label = false;
718719
var ticksOut = new Array(tickVals.length);
719720
for(var i = 0; i < tickVals.length; i++) {
720721
var _minor = tickVals[i].minor;
@@ -732,19 +733,12 @@ axes.calcTicks = function calcTicks(ax, opts) {
732733

733734
var a = i;
734735
var b = i + 1;
735-
if(addOneTickToStart) {
736-
if(i === tickVals.length - 1) {
737-
a = i;
738-
b = 0;
739-
} else if(i === tickVals.length - 2) {
740-
a = i - 1;
741-
b = i;
742-
}
736+
if(i < tickVals.length - 1) {
737+
a = i;
738+
b = i + 1;
743739
} else {
744-
if(i === tickVals.length - 1) {
745-
a = i - 1;
746-
b = i;
747-
}
740+
a = i - 1;
741+
b = i;
748742
}
749743

750744
var A = tickVals[a].value;
@@ -763,10 +757,17 @@ axes.calcTicks = function calcTicks(ax, opts) {
763757

764758
if(v > maxRange || v < minRange) { // hide label if outside the range
765759
ticksOut[i].text = '';
760+
if(i === 0) removedPreTick0Label = true;
766761
}
767762
}
768763
}
769764

765+
if(removedPreTick0Label && ticksOut.length > 1) {
766+
// redo tick0 text
767+
ax._prevDateHead = '';
768+
ticksOut[1].text = axes.tickText(ax, tickVals[1].value).text;
769+
}
770+
770771
ax._inCalcTicks = false;
771772

772773
return ticksOut;

0 commit comments

Comments
 (0)