tick = ticks[i];
tick.label = call(tickOpts.callback, [tick.value, i, ticks], me);
}
+ // Ticks should be skipped when callback returns null or undef, so lets remove those.
+ for (i = 0; i < ilen; i++) {
+ if (isNullOrUndef(ticks[i].label)) {
+ ticks.splice(i, 1);
+ ilen--;
+ i--;
+ }
+ }
}
afterTickToLabelConversion() {
call(this.options.afterTickToLabelConversion, [this]);
--- /dev/null
+module.exports = {
+ description: 'https://github.com/chartjs/Chart.js/issues/8892',
+ config: {
+ type: 'line',
+ data: {
+ labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
+ datasets: [
+ {
+ data: [12, 19, 3, 5, 2, 3],
+ },
+ {
+ data: [7, 11, 5, 8, 3, 7],
+ }
+ ]
+ },
+ options: {
+ scales: {
+ x: {
+ ticks: {
+ callback: function(val, index) {
+ if (index === 1) {
+ return undefined;
+ }
+ if (index === 3) {
+ return null;
+ }
+ return this.getLabelForValue(val);
+ }
+ }
+ },
+ y: {
+ ticks: {
+ callback: function(val, index) {
+ return index % 2 === 0 ? '' + val : null;
+ }
+ }
+ }
+ },
+ }
+ },
+ options: {
+ spriteText: true
+ }
+};