import adapters from '../core/core.adapters';
import {isFinite, isNullOrUndef, mergeIf, valueOrDefault} from '../helpers/helpers.core';
-import {toRadians, isNumber} from '../helpers/helpers.math';
+import {toRadians, isNumber, _limitValue} from '../helpers/helpers.math';
import Scale from '../core/core.scale';
import {_arrayUnique, _filterBetween, _lookup} from '../helpers/helpers.collection';
end = (last - me.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;
}
}
+ start = _limitValue(start, 0, 0.25);
+ end = _limitValue(end, 0, 0.25);
me._offsets = {start, end, factor: 1 / (start + 1 + end)};
}
const hasWeekday = isNumber(weekday) || weekday === true;
const ticks = {};
let first = min;
- let time;
+ let time, count;
// For 'week' unit, handle the first day of week option
if (hasWeekday) {
}
const timestamps = options.ticks.source === 'data' && me.getDataTimestamps();
- for (time = first; time < max; time = +adapter.add(time, stepSize, minor)) {
+ for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {
addTick(ticks, time, timestamps);
}
- if (time === max || options.bounds === 'ticks') {
+ if (time === max || options.bounds === 'ticks' || count === 1) {
addTick(ticks, time, timestamps);
}
--- /dev/null
+const data = {
+ datasets: [
+ {
+ data: [
+ {
+ x: moment('15/10/2020', 'DD/MM/YYYY').valueOf(),
+ y: 55
+ },
+ {
+ x: moment('18/10/2020', 'DD/MM/YYYY').valueOf(),
+ y: 10
+ },
+ {
+ x: moment('19/10/2020', 'DD/MM/YYYY').valueOf(),
+ y: 15
+ }
+ ],
+ backgroundColor: 'blue'
+ },
+ {
+ data: [
+ {
+ x: moment('15/10/2020', 'DD/MM/YYYY').valueOf(),
+ y: 6
+ },
+ {
+ x: moment('18/10/2020', 'DD/MM/YYYY').valueOf(),
+ y: 11
+ },
+ {
+ x: moment('19/10/2020', 'DD/MM/YYYY').valueOf(),
+ y: 16
+ }
+ ],
+ backgroundColor: 'green',
+ },
+ {
+ data: [
+ {
+ x: moment('15/10/2020', 'DD/MM/YYYY').valueOf(),
+ y: 7
+ },
+ {
+ x: moment('18/10/2020', 'DD/MM/YYYY').valueOf(),
+ y: 12
+ },
+ {
+ x: moment('19/10/2020', 'DD/MM/YYYY').valueOf(),
+ y: 17
+ }
+ ],
+ backgroundColor: 'red',
+ }
+ ]
+};
+
+module.exports = {
+ description: 'https://github.com/chartjs/Chart.js/issues/7991',
+ config: {
+ type: 'bar',
+ data,
+ options: {
+ scales: {
+ x: {
+ type: 'time',
+ // offset: false,
+ time: {
+ unit: 'month',
+ },
+ },
+ y: {
+ display: false
+ }
+ }
+ }
+ },
+ options: {
+ spriteText: true,
+ canvas: {width: 256, height: 128}
+ }
+};