Skip to content

Commit 5d8b0e0

Browse files
committed
revise dtick in respect to tickformat on period labels only when we could reduce ticks
- revert changes of date_axes baseline - update date_axes2 baseline - fixup jasmine tests
1 parent d8227f1 commit 5d8b0e0

File tree

4 files changed

+12
-11
lines changed

4 files changed

+12
-11
lines changed

src/plots/cartesian/axes.js

+8-7
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,7 @@ axes.calcTicks = function calcTicks(ax, opts) {
606606
}
607607

608608
var isDLog = (ax.type === 'log') && !(isNumeric(ax.dtick) || ax.dtick.charAt(0) === 'L');
609+
var isMDate = (ax.type === 'date') && !(isNumeric(ax.dtick) || ax.dtick.charAt(0) === 'M');
609610

610611
var tickformat = axes.getTickFormat(ax);
611612
var isPeriod = ax.ticklabelmode === 'period';
@@ -628,12 +629,12 @@ axes.calcTicks = function calcTicks(ax, opts) {
628629
// %I: hour (12-hour clock) as a decimal number [01,12]
629630
) {
630631
definedDelta = ONEHOUR;
631-
if(noDtick) ax.dtick = ONEHOUR;
632+
if(noDtick && !isMDate && ax.dtick < ONEHOUR) ax.dtick = ONEHOUR;
632633
} else if(
633634
/%p/.test(tickformat) // %p: either AM or PM
634635
) {
635636
definedDelta = HALFDAY;
636-
if(noDtick) ax.dtick = HALFDAY;
637+
if(noDtick && !isMDate && ax.dtick < HALFDAY) ax.dtick = HALFDAY;
637638
} else if(
638639
/%[Aadejuwx]/.test(tickformat)
639640
// %A: full weekday name
@@ -646,36 +647,36 @@ axes.calcTicks = function calcTicks(ax, opts) {
646647
// %x: the locale’s date, such as %-m/%-d/%Y
647648
) {
648649
definedDelta = ONEDAY;
649-
if(noDtick) ax.dtick = ONEDAY;
650+
if(noDtick && !isMDate && ax.dtick < ONEDAY) ax.dtick = ONEDAY;
650651
} else if(
651652
/%[UVW]/.test(tickformat)
652653
// %U: Sunday-based week of the year as a decimal number [00,53]
653654
// %V: ISO 8601 week of the year as a decimal number [01, 53]
654655
// %W: Monday-based week of the year as a decimal number [00,53]
655656
) {
656657
definedDelta = ONEWEEK;
657-
if(noDtick) ax.dtick = ONEWEEK;
658+
if(noDtick && !isMDate && ax.dtick < ONEWEEK) ax.dtick = ONEWEEK;
658659
} else if(
659660
/%[Bbm]/.test(tickformat)
660661
// %B: full month name
661662
// %b: abbreviated month name
662663
// %m: month as a decimal number [01,12]
663664
) {
664665
definedDelta = ONEAVGMONTH;
665-
if(noDtick) ax.dtick = 'M1';
666+
if(noDtick && ax.dtick < (isMDate ? 'M1' : ONEMINMONTH)) ax.dtick = 'M1';
666667
} else if(
667668
/%[q]/.test(tickformat)
668669
// %q: quarter of the year as a decimal number [1,4]
669670
) {
670671
definedDelta = ONEAVGQUARTER;
671-
if(noDtick) ax.dtick = 'M3';
672+
if(noDtick && ax.dtick < (isMDate ? 'M3' : ONEMINQUARTER)) ax.dtick = 'M3';
672673
} else if(
673674
/%[Yy]/.test(tickformat)
674675
// %Y: year with century as a decimal number, such as 1999
675676
// %y: year without century as a decimal number [00,99]
676677
) {
677678
definedDelta = ONEAVGYEAR;
678-
if(noDtick) ax.dtick = 'M12';
679+
if(noDtick && ax.dtick < (isMDate ? 'M12' : ONEMINYEAR)) ax.dtick = 'M12';
679680
}
680681
}
681682
}

test/image/baselines/date_axes.png

142 Bytes
Loading
-5.83 KB
Loading

test/jasmine/tests/axes_test.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -5625,13 +5625,13 @@ describe('Test axes', function() {
56255625
[
56265626
{
56275627
formatter: '%H',
5628-
positions: ['2019-12-31 23:30', '2020-01-01 00:30', '2020-01-01 01:30', '2020-01-01 02:30', '2020-01-01 03:30', '2020-01-01 04:30', '2020-01-01 05:30', '2020-01-01 06:30', '2020-01-01 07:30', '2020-01-01 08:30', '2020-01-01 09:30', '2020-01-01 10:30', '2020-01-01 11:30', '2020-01-01 12:30', '2020-01-01 13:30', '2020-01-01 14:30', '2020-01-01 15:30', '2020-01-01 16:30', '2020-01-01 17:30', '2020-01-01 18:30', '2020-01-01 19:30', '2020-01-01 20:30', '2020-01-01 21:30', '2020-01-01 22:30', '2020-01-01 23:30', '2020-01-02 00:30', '2020-01-02 01:30'],
5629-
labels: ['Tue-23', 'Wed-00', 'Wed-01', 'Wed-02', 'Wed-03', 'Wed-04', 'Wed-05', 'Wed-06', 'Wed-07', 'Wed-08', 'Wed-09', 'Wed-10', 'Wed-11', 'Wed-12', 'Wed-13', 'Wed-14', 'Wed-15', 'Wed-16', 'Wed-17', 'Wed-18', 'Wed-19', 'Wed-20', 'Wed-21', 'Wed-22', 'Wed-23', 'Thu-00', ' ']
5628+
positions: ['2019-12-31 21:30', '2020-01-01 00:30', '2020-01-01 03:30', '2020-01-01 06:30', '2020-01-01 09:30', '2020-01-01 12:30', '2020-01-01 15:30', '2020-01-01 18:30', '2020-01-01 21:30', '2020-01-02 00:30'],
5629+
labels: [' ', 'Wed-00', 'Wed-03', 'Wed-06', 'Wed-09', 'Wed-12', 'Wed-15', 'Wed-18', 'Wed-21', 'Thu-00']
56305630
},
56315631
{
56325632
formatter: '%I',
5633-
positions: ['2019-12-31 23:30', '2020-01-01 00:30', '2020-01-01 01:30', '2020-01-01 02:30', '2020-01-01 03:30', '2020-01-01 04:30', '2020-01-01 05:30', '2020-01-01 06:30', '2020-01-01 07:30', '2020-01-01 08:30', '2020-01-01 09:30', '2020-01-01 10:30', '2020-01-01 11:30', '2020-01-01 12:30', '2020-01-01 13:30', '2020-01-01 14:30', '2020-01-01 15:30', '2020-01-01 16:30', '2020-01-01 17:30', '2020-01-01 18:30', '2020-01-01 19:30', '2020-01-01 20:30', '2020-01-01 21:30', '2020-01-01 22:30', '2020-01-01 23:30', '2020-01-02 00:30', '2020-01-02 01:30'],
5634-
labels: ['Tue-11', 'Wed-12', 'Wed-01', 'Wed-02', 'Wed-03', 'Wed-04', 'Wed-05', 'Wed-06', 'Wed-07', 'Wed-08', 'Wed-09', 'Wed-10', 'Wed-11', 'Wed-12', 'Wed-01', 'Wed-02', 'Wed-03', 'Wed-04', 'Wed-05', 'Wed-06', 'Wed-07', 'Wed-08', 'Wed-09', 'Wed-10', 'Wed-11', 'Thu-12', ' ']
5633+
positions: ['2019-12-31 21:30', '2020-01-01 00:30', '2020-01-01 03:30', '2020-01-01 06:30', '2020-01-01 09:30', '2020-01-01 12:30', '2020-01-01 15:30', '2020-01-01 18:30', '2020-01-01 21:30', '2020-01-02 00:30'],
5634+
labels: [' ', 'Wed-12', 'Wed-03', 'Wed-06', 'Wed-09', 'Wed-12', 'Wed-03', 'Wed-06', 'Wed-09', 'Thu-12']
56355635
},
56365636
{
56375637
formatter: '%p',

0 commit comments

Comments
 (0)