在Chart.js中映射数据(来自getJSON响应)

时间:2019-03-21 10:50:23

标签: javascript jquery chart.js

我在将数据解析到图表时遇到问题。 可以肯定的是,这应该包含在我使用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会生成一个没有数据的空图表。如何以正确的方式映射标签和数据?

1 个答案:

答案 0 :(得分:2)

labelsdata变量位于undefined的{​​{1}} $.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);

});