gpt4 book ai didi

javascript - Chart.js 更新函数(图表、标签、数据)不会更新图表

转载 作者:行者123 更新时间:2023-12-05 00:48:42 25 4
gpt4 key购买 nike

我无法调试以下代码。我想更新图表数据(不在顶部添加;删除当前数据并添加全新的数据集)。 (不)codepen 上的工作示例:

https://codepen.io/anon/pen/bvBxpr

var config = {
type: 'line',
data: {
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [{
label: "My First dataset",
data: [65, 0, 80, 81, 56, 85, 40],
fill: false
}]
}
};

var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx, config);

labelsNew = ["Why", "u", "no", "work", "???"];
dataNew = [2, 4, 5, 6, 10];

function updateData(chart, label, data) {
removeData();
chart.data.labels.push(label);
chart.data.datasets.forEach((dataset) => {
dataset.data.push(data);
});
chart.update();
};

function removeData(chart) {
chart.data.labels.pop();
chart.data.datasets.forEach((dataset) => {
dataset.data.pop();
});
chart.update();
}

$('.button-container').on('click', 'button', updateData(myChart, labelsNew, dataNew));

最佳答案

我想通了。这有效:

function addData(chart, label, data) {
chart.data.labels = label
chart.data.datasets.forEach((dataset) => {
dataset.data = data;
});
chart.update();
}

$("#btn").click(function() {
addData (myChart, labelsNew, dataNew);
});

而不是推送数据(添加),数据需要通过“=”分配。

关于javascript - Chart.js 更新函数(图表、标签、数据)不会更新图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49360165/

25 4 0