簡體   English   中英

CanvasJs,更新數據

[英]CanvasJs, update data

我想在圖表中顯示一些數據。 大小約為200k數據點x16-這是堆棧值。 我希望該庫能夠及時呈現這些數據。

數組看起來像:[16] [250000],其中外部數組是堆棧值,內部數組保存數據。 [n] [m] = {x:1 ... 250000,y:0 ... 1}。 如果我有[1] [7000] = {x:7000,y:data}或[12] [7000] = {7000,y:otherData}->這將被堆疊。

僅在用戶交互后才加載數據。

我的問題是,現在我無法用數據填充圖形。 我看過http://canvasjs.com/docs/charts/basics-of-creating-html5-chart/updating-chart-options/

碼:

<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();
    }

不管我怎么做,我都會得到“ 無法設置x / y / 0的“未定義”屬性 ”。

我知道它與數組初始化有關,並且已經嘗試了各種方法,但是我不知道如何正確地初始化它以稍后填充數據(並且我不知道會有多少數據)。 一旦有了它,問題就已經出現在(0,0),然后當它到達(1,0)時。

2nd有人可以給我一個建議,如何減少加載的數據? 因為如果我進行一些測試,它會非常慢,並且很可能以后會有1.000.000 x 16數據點(如http://canvasjs.com/docs/charts/chart-options/range-changing所示) / ,崩潰時> 2.000.000)。 尤其是與諸如同步,縮放和平移之類的交互。

數據應包含應以對象形式的dataSeries數組。 這個dataSeries應該包含dataPoints,它們也應該再次以object的形式出現。

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: [{
    type: "stackedColumn",
    dataPoints: dataPoints
}]

有了這個

data: myData

用戶互動后,調用update()函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM