gpt4 book ai didi

javascript - 使用 Ajax 正确方式在 ChartJS (v2.6.0) 中刷新条形图

转载 作者:行者123 更新时间:2023-11-30 07:54:00 24 4
gpt4 key购买 nike

我正在根据下拉列表的变化刷新我的条形图。我只是想知道我是否以正确的方式进行操作。在我的代码中,每次我用新 Canvas 替换现有 Canvas 时。有没有更好的方法来实现同样的目标?

我的 JS 代码:

var chart_= function () {

$('#canvas_id').replaceWith('<canvas id="canvas_id" style="height:280px"></canvas>');
$.ajax({
type: 'POST', //post method
url: 'url', //ajaxformexample url
dataType: "json",
success: function (result, textStatus, jqXHR)
{
// GENERATE CHART DATA
var labels = result.obj.map(function (e) {
return e.label;
});
var data = result.obj.map(function (e) {
return e.data;
});
new Chart($("#canvas_id"), {
type: 'bar',
options: options_object,
data: {
labels: labels,
datasets: [
{
label: "",
backgroundColor: '#00c0ef',
data: data
}
]
}

});

}
});
};

最佳答案

肯定有一些更好的方法,我一直在使用 Chart.js 进行一些实时更新图表,实现您想要的一个好方法是声明一个图表,其中包含一些最初预定义的设置。

var chart = new Chart( canvas, {
type: "bar",
data: {}
options: {}
}

这样,每当您需要更新图表时,您只需访问已经存在的图表即可。并将数据更新为您从 ajax 调用中获得的数据,并使用 chart.update() 方法,这样您就可以继续使用预先存在的 Canvas

$.ajax({
type: 'POST', //post method
url: 'url', //ajaxformexample url
dataType: "json",
success: function (result, textStatus, jqXHR)
{
chart.data = result;
chart.update();
}
});

希望这对您有所帮助!

关于javascript - 使用 Ajax 正确方式在 ChartJS (v2.6.0) 中刷新条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45386406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com