ответ
Это была бы хорошая функция, но я не думаю, что есть прямой способ сделать это. Вы можете использовать обратный вызов afterBuildTicks в сочетании с параметрами min, max и autoSkip.
Исправление
afterBuildTicks обратного вызова передается объект масштаба. Объект scale имеет массив всех тиков, которые будут отображаться (хранятся в scale.ticks), чтобы вы могли установить тики в этом массиве. Chart.js пытается сделать вашу диаграмму красивой, поэтому она не будет показывать все тики по умолчанию. Чтобы исправить это, установите минимальное и максимальное значения минимального и максимального значений в вашем пользовательском диапазоне шкалы. Также установите autoSkip = false, чтобы убедиться, что все тики отображаются.
Пример
jsfiddle with your example scale
jsfiddle with a smaller scale range
var ticks = [11000, 10000, 7000, 3000, 1000, 500, 100];
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"],
datasets: [{
data: [6000, 5000, 8000, 2000, 10000, 3500, 6000, 2000, 4000, 6000]
}]
},
options: {
scales: {
yAxes: [{
ticks: {
autoSkip: false,
min: ticks[ticks.length - 1],
max: ticks[0]
},
afterBuildTicks: function(scale) {
scale.ticks = ticks;
return;
},
beforeUpdate: function(oScale) {
return;
}
}]
}
}
});
@L Бахр Спасибо за ваш ответ братан. это помогает мне! –
Рад, что я мог помочь. Можете ли вы отметить это как принятый ответ, так как он ответил на ваш вопрос –
Мне очень жаль, что это помогает, но он не отвечает точно, чтобы исправить мою диаграмму, потому что, когда я установил значение в миллионы, тысячи, сто, десять диаграмм нехорошо смотреть. Итак, на данный момент я не переопределял масштаб оси y. К сожалению, моя проблема сейчас находится в опасности, когда у нее есть миллион, тысячи значений. –