javascript - 如何使用 csv ajax 请求的返回值来获取 x 和 y 值?

标签 javascript ajax csv chart.js

我正在尝试导入 csv 文件并将其用作 ChartJs 中散点图的数据源。当我打印 dataPoints 时,我得到了正确值的对象数组,因此我知道 ajax 请求正在正确拉取。但我似乎无法将这些值作为 x 和 y 值传递到我的数据集数据中。

我能够使用canvasJS成功提取数据并将其插入x和y值,不幸的是该框架不是免费的,所以我尝试切换到chart.js。我尝试插入 data: [{dataPoints: pullData()}] 或 data: pullData() 或 data: [dataPoints] 以及许多其他组合,但似乎都不起作用。我熟悉 swift 和 java 编码,但对 Javascript 特别陌生。任何帮助将不胜感激!

const CHART = document.getElementById("scatterChart");
console.log(CHART);
var scatterChart = new Chart(CHART, {
type: 'scatter',
data: {
    datasets: [{
        label: 'Scatter Dataset',
        data: [{
            x: -10,
            y: 0
        }, {
            x: 0,
            y: 10
        }, {
            x: 10,
            y: 5
        }],
        borderColor: 'black',
         borderWidth: 1,
         pointBackgroundColor: '#00bcd6',
         pointRadius: 5,
         pointHoverRadius: 5,
         fill: false,
         tension: 0.5,
         showLine: true
    }]
},
options: {
    scales: {
        xAxes: [{
            type: 'linear',
            position: 'bottom'
        }],
        yAxes: [{
            type: 'linear',
            position: 'left'
        }]
    }
}
});

window.onload = function(){
$.ajax({
   type: "GET",
   url: "mockData.csv",
   dataType: "text",
   success: function (result){
    var data = $.csv.toArrays(result);
    var dataPoints = [];
    for (var i = 0; i < data.length; i++)
        dataPoints.push({ 
                    x: data[i][0], 
                    y: data[i][1]
        });
        console.log(dataPoints)
    return dataPoints
   }
})
};

我的目标是绘制 csv 中的点(只有 5 行和 2 列基本数字),但没有显示任何点。当我手动将值塞入 x 和 y 时,一切都显示正常。

最佳答案

您需要将图表的创建移至 ajax 调用的 success 函数内部,或将 dataPoints 传递到创建图表的其他函数中。

关于javascript - 如何使用 csv ajax 请求的返回值来获取 x 和 y 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53950218/

相关文章:

javascript - 字符串插值Vue js

javascript - Vue.js 有时无法加载组件

javascript - JQuery getJSON 从函数返回对象数组?

node.js - 将 CSV 转换为充满数字数组的 JSON 对象

Python导入CSV排序代码( Pandas ?)在条目中用 ';'和 ','分隔

javascript - 在渲染与生命周期方法中 react 计算

javascript - 在重定向到不同功能的同一功能上使用多个按钮

jquery - AJAX 的 Django ORM 问题

javascript - 防止浏览器缓存 AJAX 调用结果

PHP - 分解数组中的值,输出到制表符分隔的文件