Javascript CanvasJs,更新数据

Javascript CanvasJs,更新数据,javascript,arrays,performance,canvasjs,Javascript,Arrays,Performance,Canvasjs,我想在图表中显示一些数据。大小约为200k数据点x16-这是叠加值。我希望这个库能够及时呈现这些数据 数组看起来像:[16][250000],其中外部数组是堆叠值,内部数组保存数据。[n] [m]={x:1…250000,y:0…1}。如果我有[1][7000]={x:7000,y:data}或[12][7000]={7000,y:otherData}->这将被堆叠 数据将仅在用户交互后加载 我的问题是现在我无法用数据填充图表。我看到了 代码: <script type="text/jav

我想在图表中显示一些数据。大小约为200k数据点x16-这是叠加值。我希望这个库能够及时呈现这些数据

数组看起来像:[16][250000],其中外部数组是堆叠值,内部数组保存数据。[n] [m]={x:1…250000,y:0…1}。如果我有[1][7000]={x:7000,y:data}或[12][7000]={7000,y:otherData}->这将被堆叠

数据将仅在用户交互后加载

我的问题是现在我无法用数据填充图表。我看到了

代码:

<script type="text/javascript">
    dataPoints = []; //or: dataPoints ={};
    window.onload = function () {
        chart = new CanvasJS.Chart("chart",
                {
                    title: {
                        text: "asdf"
                    },
                    data: [{
                        type: "stackedColumn",
                        dataPoints: dataPoints
                    }]
                });

        chart.render();
    }
  function update(data) {
        //or:  dataPoints=[[],[]];
        var size= data[0].length;
        var outer= data.length;
        for (i= 0; i< outer; i++) {
            for (j= 0; j< size; j++) {                   
               dataPoints[i][j].push({y: data[i][j].y}); //here is the error
               console.log( data[i][j].y);
            }

        }
     chart.render();
    }

数据点=[]//或:数据点={};
window.onload=函数(){
chart=新建CanvasJS.chart(“chart”,
{
标题:{
文本:“asdf”
},
数据:[{
类型:“stackedColumn”,
数据点:数据点
}]
});
chart.render();
}
功能更新(数据){
//或:数据点=[],[];
变量大小=数据[0]。长度;
var outer=data.length;
对于(i=0;i
不管我怎么做,我都会得到一个“undefined”的“cannot set property of x/y/0”

我知道这与数组初始化有关,并且已经尝试了各种方法,但我不知道如何正确初始化它以稍后填充数据(我不知道会有多少数据)。一旦它已经在(0,0)出现问题,然后当它“转到(1,0)”时


2nd)有人能给我一个如何减少加载数据的建议吗?因为如果我做一些测试,速度会非常慢,并且可能会有1.000.000 x 16个数据点(如图所示,在>2.000.000时崩溃)。尤其是与同步、缩放和平移等交互。

数据应包含数据系列数组,这些数组应为对象形式。 此数据系列应包含数据点,这些数据点也应采用对象的形式

var myData = [];
function update() {
    var size= data[0].length;
    var outer= data.length;
    for (i= 0; i< outer; i++) {
        var dataSeries = [];
        for (j= 0; j< size; j++) {
            dataSeries.push({y: data[i][j]});
        }
        myData.push({type: "stackedColumn", dataPoints: dataSeries});
    }
    chart.render();
}
用这个

data: myData

并在用户交互后调用update()函数。

数据应包含数据系列数组,该数组应为对象形式。 此数据系列应包含数据点,这些数据点也应采用对象的形式

var myData = [];
function update() {
    var size= data[0].length;
    var outer= data.length;
    for (i= 0; i< outer; i++) {
        var dataSeries = [];
        for (j= 0; j< size; j++) {
            dataSeries.push({y: data[i][j]});
        }
        myData.push({type: "stackedColumn", dataPoints: dataSeries});
    }
    chart.render();
}
用这个

data: myData
并在用户交互后调用update()函数