Skip to content

Commit 979596e

Browse files
authored
Merge pull request #5088 from plotly/improve-monthly-period-positioning
Improve monthly period label positioning
2 parents 19aa8d6 + c21af6d commit 979596e

File tree

3 files changed

+19
-10
lines changed

3 files changed

+19
-10
lines changed

src/constants/numerical.js

+2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ module.exports = {
3333
*/
3434
ONEAVGYEAR: 31557600000, // 365.25 days
3535
ONEAVGQUARTER: 7889400000, // 1/4 of ONEAVGYEAR
36+
ONEMAXMONTH: 2678400000, // 31 * ONEDAY
3637
ONEAVGMONTH: 2629800000, // 1/12 of ONEAVGYEAR
38+
ONEMINMONTH: 2419200000, // 28 * ONEDAY
3739
ONEWEEK: 604800000, // 7 * ONEDAY
3840
ONEDAY: 86400000,
3941
ONEHOUR: 3600000,

src/plots/cartesian/axes.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ var cleanTicks = require('./clean_ticks');
2525
var constants = require('../../constants/numerical');
2626
var ONEAVGYEAR = constants.ONEAVGYEAR;
2727
var ONEAVGQUARTER = constants.ONEAVGQUARTER;
28+
var ONEMAXMONTH = constants.ONEMAXMONTH;
2829
var ONEAVGMONTH = constants.ONEAVGMONTH;
30+
var ONEMINMONTH = constants.ONEMINMONTH;
2931
var ONEWEEK = constants.ONEWEEK;
3032
var ONEDAY = constants.ONEDAY;
3133
var ONEHOUR = constants.ONEHOUR;
@@ -780,8 +782,13 @@ axes.calcTicks = function calcTicks(ax, opts) {
780782
v += ONEAVGYEAR / 2;
781783
} else if(delta >= ONEAVGQUARTER) {
782784
v += ONEAVGQUARTER / 2;
783-
} else if(delta >= ONEDAY * 28) { // Months could have days less than ONEAVGMONTH period
784-
v += ONEAVGMONTH / 2;
785+
} else if(delta >= ONEMINMONTH) { // Months could have days less than ONEAVGMONTH period
786+
var actualDelta = Math.abs(B - A);
787+
if(actualDelta >= ONEMINMONTH && actualDelta <= ONEMAXMONTH) {
788+
v += actualDelta / 2;
789+
} else {
790+
v += ONEAVGMONTH / 2;
791+
}
785792
} else if(delta >= ONEWEEK) {
786793
v += ONEWEEK / 2;
787794
} else if(delta >= ONEDAY) {

test/jasmine/tests/axes_test.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -5297,14 +5297,14 @@ describe('Test axes', function() {
52975297
})
52985298
.then(function() {
52995299
_assert('', [
5300-
'2019-12-16 05:15',
5301-
'2020-01-16 05:15',
5302-
'2020-02-16 05:15',
5303-
'2020-03-16 05:15',
5304-
'2020-04-16 05:15',
5305-
'2020-05-16 05:15',
5306-
'2020-06-16 05:15',
5307-
'2020-07-16 05:15'
5300+
'2019-12-16 12:00',
5301+
'2020-01-16 12:00',
5302+
'2020-02-15 12:00',
5303+
'2020-03-16 12:00',
5304+
'2020-04-16',
5305+
'2020-05-16 12:00',
5306+
'2020-06-16',
5307+
'2020-07-16'
53085308
], [
53095309
['', '1-January', '1-February', '1-March', '2-April', '2-May', '2-June', ''],
53105310
['', '1-Jan', '1-Feb', '1-Mar', '2-Apr', '2-May', '2-Jun', ''],

0 commit comments

Comments
 (0)