Skip to content

Commit

Permalink
skip labels with identical text as previous label
Browse files Browse the repository at this point in the history
  • Loading branch information
archmoj committed Aug 31, 2020
1 parent 350a10a commit 50a3451
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 23 deletions.
46 changes: 29 additions & 17 deletions src/plots/cartesian/axes.js
Expand Up @@ -752,35 +752,47 @@ axes.calcTicks = function calcTicks(ax, opts) {
}
}

var removedPreTick0Label = false;
var ticksOut = new Array(tickVals.length);
var ticksOut = [];
var i;
var prevText;
for(i = 0; i < tickVals.length; i++) {
var _minor = tickVals[i].minor;
var _value = tickVals[i].value;

ticksOut[i] = axes.tickText(
var t = axes.tickText(
ax,
_value,
false, // hover
_minor // noSuffixPrefix
);

if(isPeriod) {
var v = tickVals[i].value;
if(isPeriod && prevText === t.text) continue;
prevText = t.text;

ticksOut.push(t);
}

if(isPeriod) {
var removedPreTick0Label = false;

for(i = 0; i < ticksOut.length; i++) {
var v = ticksOut[i].x;

var a = i;
var b = i + 1;
if(i < tickVals.length - 1) {
if(i < ticksOut.length - 1) {
a = i;
b = i + 1;
} else {
} else if(i > 0) {
a = i - 1;
b = i;
} else {
a = i;
b = i;
}

var A = tickVals[a].value;
var B = tickVals[b].value;
var A = ticksOut[a].x;
var B = ticksOut[b].x;
var actualDelta = Math.abs(B - A);
var delta = definedDelta || actualDelta;
var periodLength = 0;
Expand Down Expand Up @@ -828,15 +840,15 @@ axes.calcTicks = function calcTicks(ax, opts) {
removedPreTick0Label = true;
}
}
}

if(removedPreTick0Label) {
for(i = 0; i < ticksOut.length; i++) {
if(ticksOut[i].periodX <= maxRange && ticksOut[i].periodX >= minRange) {
// redo first visible tick
ax._prevDateHead = '';
ticksOut[i].text = axes.tickText(ax, tickVals[i].value).text;
break;
if(removedPreTick0Label) {
for(i = 0; i < ticksOut.length; i++) {
if(ticksOut[i].periodX <= maxRange && ticksOut[i].periodX >= minRange) {
// redo first visible tick
ax._prevDateHead = '';
ticksOut[i].text = axes.tickText(ax, ticksOut[i].x).text;
break;
}
}
}
}
Expand Down
57 changes: 51 additions & 6 deletions test/jasmine/tests/axes_test.js
Expand Up @@ -5524,7 +5524,7 @@ describe('Test axes', function() {
});
});

['%f', '%L', '%Q', '%s', '%S', '%M', '%H', '%I', '%p', '%X'].forEach(function(formatter, i) {
['%Q', '%s', '%H', '%I', '%X'].forEach(function(formatter, i) {
it('should respect daily tickformat that includes ' + formatter, function(done) {
Plotly.newPlot(gd, {
data: [{
Expand Down Expand Up @@ -5552,15 +5552,10 @@ describe('Test axes', function() {
'2020-01-01 21:00',
'2020-01-02'
], [
['', 'Wed-0', 'Wed-0', 'Wed-0', 'Wed-0', 'Wed-0', 'Wed-0', 'Wed-0', 'Wed-0', 'Thu-0'],
['', 'Wed-000', 'Wed-000', 'Wed-000', 'Wed-000', 'Wed-000', 'Wed-000', 'Wed-000', 'Wed-000', 'Thu-000'],
['', 'Wed-1577836800000', 'Wed-1577847600000', 'Wed-1577858400000', 'Wed-1577869200000', 'Wed-1577880000000', 'Wed-1577890800000', 'Wed-1577901600000', 'Wed-1577912400000', 'Thu-1577923200000'],
['', 'Wed-1577836800', 'Wed-1577847600', 'Wed-1577858400', 'Wed-1577869200', 'Wed-1577880000', 'Wed-1577890800', 'Wed-1577901600', 'Wed-1577912400', 'Thu-1577923200'],
['', 'Wed-00', 'Wed-00', 'Wed-00', 'Wed-00', 'Wed-00', 'Wed-00', 'Wed-00', 'Wed-00', 'Thu-00'],
['', 'Wed-00', 'Wed-00', 'Wed-00', 'Wed-00', 'Wed-00', 'Wed-00', 'Wed-00', 'Wed-00', 'Thu-00'],
['', 'Wed-00', 'Wed-03', 'Wed-06', 'Wed-09', 'Wed-12', 'Wed-15', 'Wed-18', 'Wed-21', 'Thu-00'],
['', 'Wed-12', 'Wed-03', 'Wed-06', 'Wed-09', 'Wed-12', 'Wed-03', 'Wed-06', 'Wed-09', 'Thu-12'],
['', 'Wed-AM', 'Wed-AM', 'Wed-AM', 'Wed-AM', 'Wed-PM', 'Wed-PM', 'Wed-PM', 'Wed-PM', 'Thu-AM'],
['', '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']
][i]);
})
Expand All @@ -5569,6 +5564,56 @@ describe('Test axes', function() {
});
});


[
{
formatter: '%p',
positions: ['2019-12-31 21:00', '2020-01-01', '2020-01-01 12:00', '2020-01-02'],
labels: ['', 'Wed-AM', 'Wed-PM', 'Thu-AM']
},
{
formatter: '%M',
positions: ['2019-12-31 21:00', '2020-01-01 12:00', '2020-01-02 12:00'],
labels: ['', 'Wed-00', '']
},
{
formatter: '%S',
positions: ['2019-12-31 21:00', '2020-01-01 12:00', '2020-01-02 12:00'],
labels: ['', 'Wed-00', '']
},
{
formatter: '%L',
positions: ['2019-12-31 21:00', '2020-01-01 12:00', '2020-01-02 12:00'],
labels: ['', 'Wed-000', '']
},
{
formatter: '%f',
positions: ['2019-12-31 21:00', '2020-01-01 12:00', '2020-01-02 12:00'],
labels: ['', 'Wed-0', '']
}
].forEach(function(t) {
it('should respect time tickformat that includes ' + t.formatter, function(done) {
Plotly.newPlot(gd, {
data: [{
hovertemplate: hovertemplate,
x: ['2020-01-01', '2020-01-02']
}],
layout: {
width: 1000,
xaxis: {
ticklabelmode: 'period',
tickformat: '%a-' + t.formatter
}
}
})
.then(function() {
_assert('', t.positions, t.labels);
})
.catch(failTest)
.then(done);
});
});

[
{
range: ['2020-12-15', '2084-12-15'],
Expand Down

0 comments on commit 50a3451

Please sign in to comment.