Skip to content

Commit 08c69d7

Browse files
committed
label the period before the first tick
1 parent 79f6875 commit 08c69d7

File tree

1 file changed

+25
-8
lines changed

1 file changed

+25
-8
lines changed

src/plots/cartesian/axes.js

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

594594
var isDLog = (ax.type === 'log') && !(isNumeric(ax.dtick) || ax.dtick.charAt(0) === 'L');
595-
596595
var tickVals;
597596
function generateTicks() {
598597
var xPrevious = null;
@@ -620,6 +619,16 @@ axes.calcTicks = function calcTicks(ax, opts) {
620619

621620
generateTicks();
622621

622+
var isPeriod = ax.ticklabelmode === 'period';
623+
var addOneTickToStart = isPeriod && tickVals.length > 2;
624+
625+
if(addOneTickToStart) {
626+
tickVals.push({
627+
minor: false,
628+
value: 2 * tickVals[0].value - tickVals[1].value
629+
});
630+
}
631+
623632
if(ax.rangebreaks) {
624633
// replace ticks inside breaks that would get a tick
625634
// and reduce ticks
@@ -684,7 +693,6 @@ axes.calcTicks = function calcTicks(ax, opts) {
684693
var minRange = Math.min(rng[0], rng[1]);
685694
var maxRange = Math.max(rng[0], rng[1]);
686695

687-
var isPeriod = ax.ticklabelmode === 'period';
688696
var definedDelta;
689697
if(isPeriod && ax.tickformat) {
690698
var _has = function(str) {
@@ -722,14 +730,23 @@ axes.calcTicks = function calcTicks(ax, opts) {
722730
if(isPeriod) {
723731
var v = tickVals[i].value;
724732

725-
var a, b;
726-
if(i === tickVals.length - 1) {
727-
a = i - 1;
728-
b = i;
733+
var a = i;
734+
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+
}
729743
} else {
730-
a = i;
731-
b = i + 1;
744+
if(i === tickVals.length - 1) {
745+
a = i - 1;
746+
b = i;
747+
}
732748
}
749+
733750
var A = tickVals[a].value;
734751
var B = tickVals[b].value;
735752

0 commit comments

Comments
 (0)