@@ -34,6 +34,7 @@ var ONEAVGMONTH = constants.ONEAVGMONTH;
34
34
var ONEMINMONTH = constants . ONEMINMONTH ;
35
35
var ONEWEEK = constants . ONEWEEK ;
36
36
var ONEDAY = constants . ONEDAY ;
37
+ var HALFDAY = ONEDAY / 2 ;
37
38
var ONEHOUR = constants . ONEHOUR ;
38
39
var ONEMIN = constants . ONEMIN ;
39
40
var ONESEC = constants . ONESEC ;
@@ -503,7 +504,7 @@ function autoShiftMonthBins(binStart, data, dtick, dataMin, calendar) {
503
504
// will always give a somewhat odd-looking label, until we do something
504
505
// smarter like showing the bin boundaries (or the bounds of the actual
505
506
// data in each bin)
506
- binStart -= ONEDAY / 2 ;
507
+ binStart -= HALFDAY ;
507
508
}
508
509
var nextBinStart = axes . tickIncrement ( binStart , dtick ) ;
509
510
@@ -705,7 +706,7 @@ axes.calcTicks = function calcTicks(ax, opts) {
705
706
var tickformat = axes . getTickFormat ( ax ) ;
706
707
if ( isPeriod && tickformat ) {
707
708
if (
708
- ! ( / % [ f L Q s S M H I p X ] / . test ( tickformat ) )
709
+ ! ( / % [ f L Q s S M H I X ] / . test ( tickformat ) )
709
710
// %f: microseconds as a decimal number [000000, 999999]
710
711
// %L: milliseconds as a decimal number [000, 999]
711
712
// %Q: milliseconds since UNIX epoch
@@ -714,10 +715,12 @@ axes.calcTicks = function calcTicks(ax, opts) {
714
715
// %M: minute as a decimal number [00,59]
715
716
// %H: hour (24-hour clock) as a decimal number [00,23]
716
717
// %I: hour (12-hour clock) as a decimal number [01,12]
717
- // %p: either AM or PM
718
718
// %X: the locale’s time, such as %-I:%M:%S %p
719
719
) {
720
720
if (
721
+ / % p / . test ( tickformat ) // %p: either AM or PM
722
+ ) definedDelta = HALFDAY ;
723
+ else if (
721
724
/ % [ A a d e j u w x ] / . test ( tickformat )
722
725
// %A: full weekday name
723
726
// %a: abbreviated weekday name
@@ -819,6 +822,8 @@ axes.calcTicks = function calcTicks(ax, opts) {
819
822
periodLength = ONEWEEK ;
820
823
} else if ( delta >= ONEDAY ) {
821
824
periodLength = ONEDAY ;
825
+ } else if ( definedDelta === HALFDAY && delta >= HALFDAY ) {
826
+ periodLength = HALFDAY ;
822
827
}
823
828
824
829
if ( periodLength && ax . rangebreaks ) {
0 commit comments