Skip to content

Commit ca993b9

Browse files
committed
apply weekly and quarter offsets in periodic labels
1 parent cd53a6a commit ca993b9

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/plots/cartesian/axes.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ var cleanTicks = require('./clean_ticks');
2424

2525
var constants = require('../../constants/numerical');
2626
var ONEAVGYEAR = constants.ONEAVGYEAR;
27+
var ONEAVGQUARTER = constants.ONEAVGYEAR / 4;
2728
var ONEAVGMONTH = constants.ONEAVGMONTH;
29+
var ONEWEEK = constants.ONEDAY * 7;
2830
var ONEDAY = constants.ONEDAY;
2931
var ONEHOUR = constants.ONEHOUR;
3032
var ONEMIN = constants.ONEMIN;
@@ -725,15 +727,15 @@ axes.calcTicks = function calcTicks(ax, opts) {
725727
_has('%U') || // Sunday-based week of the year as a decimal number [00,53]
726728
_has('%V') || // ISO 8601 week of the year as a decimal number [01, 53]
727729
_has('%W') // Monday-based week of the year as a decimal number [00,53]
728-
) definedDelta = ONEDAY * 7;
730+
) definedDelta = ONEWEEK;
729731
else if(
730732
_has('%B') || // full month name
731733
_has('%b') || // abbreviated month name
732734
_has('%m') // month as a decimal number [01,12]
733735
) definedDelta = ONEAVGMONTH;
734736
else if(
735737
_has('%q') // quarter of the year as a decimal number [1,4]
736-
) definedDelta = ONEAVGYEAR / 4;
738+
) definedDelta = ONEAVGQUARTER;
737739
else if(
738740
_has('%Y') || // year with century as a decimal number, such as 1999
739741
_has('%y') // year without century as a decimal number [00,99]
@@ -774,8 +776,12 @@ axes.calcTicks = function calcTicks(ax, opts) {
774776
var delta = definedDelta || Math.abs(B - A);
775777
if(delta >= ONEDAY * 365) { // Years could have days less than ONEAVGYEAR period
776778
v += ONEAVGYEAR / 2;
779+
} else if(delta >= ONEAVGQUARTER) {
780+
v += ONEAVGQUARTER / 2;
777781
} else if(delta >= ONEDAY * 28) { // Months could have days less than ONEAVGMONTH period
778782
v += ONEAVGMONTH / 2;
783+
} else if(delta >= ONEWEEK) {
784+
v += ONEWEEK / 2;
779785
} else if(delta >= ONEDAY) {
780786
v += ONEDAY / 2;
781787
}

0 commit comments

Comments
 (0)