我在将数据解析到我的图表时遇到问题。 当然,这应该包含在我使用 getJSON 并且不想使用 ajax 的自动过程中,所以我有:
$.getJSON('file.json').done( function (results) {
var labels = [];
var data = [];
var labels = results.map(function (item) {
return item.updatedLaels
});
var data = results.map(function (item) {
return item.updatedData;
});
console.log(labels)
console.log(data)
});
因此,标签和数据当然会以适当的方式记录到控制台,例如:
(5) [1,2,3,4,5]
但是这部分怎么用:
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: labels,
datasets: [{
label: 'Example',
data: data,
borderColor: 'rgba(75, 192, 192, 1)',
backgroundColor: 'rgba(75, 192, 192, 0.2)',
}]
},
});
因为 index.html 生成了一个没有数据的空图表。如何以正确的方式映射标签和数据?
最佳答案
labels
和 data
变量是 undefined
在你的$.getJSON
之外的 done
callback
功能。
您可以调用 done
中的函数即createChart(labels, data)
或者可以给你里面的图表代码 done
$.getJSON('file.json').done( function (results) {
var labels = [];
var data = [];
var labels = results.map(function (item) {
return item.updatedLabels
});
var data = results.map(function (item) {
return item.updatedData;
});
// Create chart
createChart(labels, data);
});
function createChart(labels, data) {
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: labels,
datasets: [{
label: 'Example',
data: data,
borderColor: 'rgba(75, 192, 192, 1)',
backgroundColor: 'rgba(75, 192, 192, 0.2)',
}]
},
});
}
关于javascript - Chart.js 中的映射数据(来自 getJSON 响应),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55278747/