我想平均分配线的所有点。默认情况下看起来不错:
如果我使用此功能添加数据,则会得到以下结果:
var myLineChart = new Chart(ctx, config);
function addData(a) {
config.data.labels.push(a);
config.data.datasets.forEach(function(dataset) {
dataset.data.push(a);
});
if (config.data.datasets[0].data.length > 10) {
config.data.datasets[0].data.shift();
}
myLineChart.update();
}
如果我添加更多元素,它将变得不可读。几天以来,我一直试图修复此问题,因此帮助会非常好:)。您可以在此处查看和查看配置以及整个代码:https://pastebin.com/wrTak2Rx
addData
功能中的问题是labels
和data
不同步。使用length
将数据固定为10的固定Array.shift()
时,标签正在稳定增长。如果您还可以将Array.shift()
保持为10的固定labels
,则可以轻松解决。
按钮,看看会发生什么。length
请查看以下可运行的代码示例。继续按下Add Value
let index = config.data.datasets[0].data.length; function addData(a) { config.data.labels.push('Data ' + ++index); config.data.datasets.forEach(dataset => dataset.data.push(a)); if (config.data.datasets[0].data.length > 10) { config.data.labels.shift(); config.data.datasets[0].data.shift(); } myLineChart.update(); }
var ctx = document.getElementById('myChart').getContext('2d'); var config = { type: 'line', data: { labels: ['Data 1','Data 2','Data 3','Data 4','Data 5','Data 6','Data 7','Data 8','Data 9','Data 10'], datasets: [{ label: 'CPU Allocation of all cores', data: [0,0,0,0,0,0,0,0,0,0], borderColor: [ '#61559a', '#61559a', '#61559a', '#61559a', '#61559a', '#61559a', '#61559a', '#61559a', '#61559a', '#61559a' ], borderWidth: 1 }] }, options: { scaleOverride : true, scaleSteps : 10, scaleStepWidth : 10, scaleStartValue : 0, responsive: true, title: { display: false }, tooltips: { mode: 'index', intersect: false, }, hover: { mode: 'nearest', intersect: true }, scales: { xAxes: [{ display: false }], yAxes: [{ ticks: { suggestedMin: 0, suggestedMax: 100, stepSize: 10, beginAtZero: true }, display: true, scaleLabel: { display: true, labelString: 'Percent' } }] } } } var myLineChart = new Chart(ctx, config); let index = config.data.datasets[0].data.length; function addData(a) { config.data.labels.push('Data ' + ++index); config.data.datasets.forEach(dataset => dataset.data.push(a)); if (config.data.datasets[0].data.length > 10) { config.data.labels.shift(); config.data.datasets[0].data.shift(); } myLineChart.update(); }