javascript - Chart.js 中的映射数据(来自 getJSON 响应)

标签 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 生成了一个没有数据的空图表。如何以正确的方式映射标签和数据?

最佳答案

labelsdata变量是 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/

相关文章:

javascript - 美国 map 插件,具有状态数据/悬停功能的新按钮

javascript - 如何找到声明了某些 js 函数的 .js 文件(来自 Chrome)?

php - 只缓存最新版本的javascript文件

javascript - Chart.js 轴始终显示为零

javascript - 如何将一个html文件包含在另一个html文件中?最好、最有效的方法是什么?

jquery - 如何在不重新加载页面的情况下提交表单并更新颜色框

javascript - JavaScript 中的 Java 式 OOP 和 jQuery 失败

javascript - JQuery不会提交表单,因为它有多个表单按钮

vuejs2 - Chartjs(非Vue)不在V-if/V-show中呈现图表图表

javascript - 如何使用 JSON.parse() 的输出作为 HTML 图表数据字段的输入?