Skip to content

Commit f47c820

Browse files
committed
adjust hour period case
1 parent 12ce066 commit f47c820

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

src/plots/cartesian/axes.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -706,18 +706,21 @@ axes.calcTicks = function calcTicks(ax, opts) {
706706
var tickformat = axes.getTickFormat(ax);
707707
if(isPeriod && tickformat) {
708708
if(
709-
!(/%[fLQsSMHIX]/.test(tickformat))
709+
!(/%[fLQsSMX]/.test(tickformat))
710710
// %f: microseconds as a decimal number [000000, 999999]
711711
// %L: milliseconds as a decimal number [000, 999]
712712
// %Q: milliseconds since UNIX epoch
713713
// %s: seconds since UNIX epoch
714714
// %S: second as a decimal number [00,61]
715715
// %M: minute as a decimal number [00,59]
716-
// %H: hour (24-hour clock) as a decimal number [00,23]
717-
// %I: hour (12-hour clock) as a decimal number [01,12]
718716
// %X: the locale’s time, such as %-I:%M:%S %p
719717
) {
720718
if(
719+
/%[HI]/.test(tickformat)
720+
// %H: hour (24-hour clock) as a decimal number [00,23]
721+
// %I: hour (12-hour clock) as a decimal number [01,12]
722+
) definedDelta = ONEHOUR;
723+
else if(
721724
/%p/.test(tickformat) // %p: either AM or PM
722725
) definedDelta = HALFDAY;
723726
else if(
@@ -824,6 +827,8 @@ axes.calcTicks = function calcTicks(ax, opts) {
824827
periodLength = ONEDAY;
825828
} else if(definedDelta === HALFDAY && delta >= HALFDAY) {
826829
periodLength = HALFDAY;
830+
} else if(definedDelta === ONEHOUR && delta >= ONEHOUR) {
831+
periodLength = ONEHOUR;
827832
}
828833

829834
if(periodLength && ax.rangebreaks) {

test/jasmine/tests/axes_test.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5524,7 +5524,7 @@ describe('Test axes', function() {
55245524
});
55255525
});
55265526

5527-
['%Q', '%s', '%H', '%I', '%X'].forEach(function(formatter, i) {
5527+
['%Q', '%s', '%X'].forEach(function(formatter, i) {
55285528
it('should respect daily tickformat that includes ' + formatter, function(done) {
55295529
Plotly.newPlot(gd, {
55305530
data: [{
@@ -5554,8 +5554,6 @@ describe('Test axes', function() {
55545554
], [
55555555
['', 'Wed-1577836800000', 'Wed-1577847600000', 'Wed-1577858400000', 'Wed-1577869200000', 'Wed-1577880000000', 'Wed-1577890800000', 'Wed-1577901600000', 'Wed-1577912400000', 'Thu-1577923200000'],
55565556
['', 'Wed-1577836800', 'Wed-1577847600', 'Wed-1577858400', 'Wed-1577869200', 'Wed-1577880000', 'Wed-1577890800', 'Wed-1577901600', 'Wed-1577912400', 'Thu-1577923200'],
5557-
['', 'Wed-00', 'Wed-03', 'Wed-06', 'Wed-09', 'Wed-12', 'Wed-15', 'Wed-18', 'Wed-21', 'Thu-00'],
5558-
['', 'Wed-12', 'Wed-03', 'Wed-06', 'Wed-09', 'Wed-12', 'Wed-03', 'Wed-06', 'Wed-09', 'Thu-12'],
55595557
['', 'Wed-00:00:00', 'Wed-03:00:00', 'Wed-06:00:00', 'Wed-09:00:00', 'Wed-12:00:00', 'Wed-15:00:00', 'Wed-18:00:00', 'Wed-21:00:00', 'Thu-00:00:00']
55605558
][i]);
55615559
})
@@ -5566,6 +5564,16 @@ describe('Test axes', function() {
55665564

55675565

55685566
[
5567+
{
5568+
formatter: '%H',
5569+
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'],
5570+
labels: ['', 'Wed-00', 'Wed-03', 'Wed-06', 'Wed-09', 'Wed-12', 'Wed-15', 'Wed-18', 'Wed-21', 'Thu-00']
5571+
},
5572+
{
5573+
formatter: '%I',
5574+
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'],
5575+
labels: ['', 'Wed-12', 'Wed-03', 'Wed-06', 'Wed-09', 'Wed-12', 'Wed-03', 'Wed-06', 'Wed-09', 'Thu-12']
5576+
},
55695577
{
55705578
formatter: '%p',
55715579
positions: ['2019-12-31 21:00', '2020-01-01 06:00', '2020-01-01 18:00', '2020-01-02 06:00'],

0 commit comments

Comments
 (0)