gpt4 book ai didi

javascript - Chart.js ajax 与多个数据集

转载 作者:行者123 更新时间:2023-12-03 03:07:04 26 4
gpt4 key购买 nike

当折线图只有一条线时,我通过从 ajax 调用检索数据集成功地创建了折线图。我现在需要创建一个包含 2 条线的折线图,但我无法让它工作。

我的ajax返回数据是用php构建的。这是代码:

$returnData['line'] = array(
'type' => 'line',
'title' => 'Title',
'labels' => array('Jan','Feb'),
'datasets' => array(
array(
'data' => array(0,50),
'borderColor' => "#f7464a",
'label' => "Label 1",
'fill' => false
),
array(
'data' => array(10,20),
'borderColor' => "#8e5ea2",
'label' => "Label 2",
'fill' => true
)
)
);
echo json_encode($returnData);

我的 jQuery ajax 调用是:

$.ajax({
url: "https://example.com/chart_data",
type: "POST",
dataType: 'json',
success: function(rtnData) {
$.each(rtnData, function(dataType, data) {
console.log(data.datasets);
var ctx = document.getElementById("linechart").getContext("2d");
var config = {
type: data.type,
data: {
datasets: [data.datasets],
labels: data.labels
},
options: {
responsive: true,
title: {
display: true,
text: data.title
}
}
};
window.myPie = new Chart(ctx, config);
});
},
error: function(rtnData) {
alert('error' + rtnData);
}
});

当我查看控制台中记录的内容时,数据看起来不错,所以我不知道为什么这不起作用。我得到的只是图表,但没有线条。

我正在寻找一种面向 future 的解决方案,只需修改 php 代码即可根据需要向图表添加尽可能多的行,而无需更改 jQuery。

最佳答案

我发现了我的错误,以防其他人遇到这个问题......需要从“数据集”参数中删除方括号:

$.ajax({
url: "https://example.com/chart_data",
type: "POST",
dataType: 'json',
success: function(rtnData) {
$.each(rtnData, function(dataType, data) {
console.log(data.datasets);
var ctx = document.getElementById("linechart").getContext("2d");
var config = {
type: data.type,
data: {
datasets: data.datasets,
labels: data.labels
},
options: {
responsive: true,
title: {
display: true,
text: data.title
}
}
};
window.myPie = new Chart(ctx, config);
});
},
error: function(rtnData) {
alert('error' + rtnData);
}
});

关于javascript - Chart.js ajax 与多个数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47121429/

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