Highcharts動態添加點數據


Highcharts用來作為圖表數據的展示十分方便,效果也比較好。highcharts不僅可以實現死數據的展示,也能實現動態數據的實時添加顯示,類似財經股票的實時刷新效果,實現過程並不難,大致如下。

 

引用HighCharts 3.0后,可以對裝載Highcharts圖表的DIV容器加上一個方法highcharts(),該方法可以將圖表裝載到相應的容器中。js部分的代碼如下:

 

 其中主要的方法包括

function loadMoreDataForNoiseChart(seriesObj) {
    var series = seriesObj[0];
    var series1 = seriesObj[1];
    chartsTime = setInterval(function () {
        count;
        var x = (newDate()).getTime()(8 * 60 * 60 * 1000); // 當前時間 
        var y;
        // 第一條線 
        y = Math.floor(Math.random() * 70);
        var newPoint;
        newPoint = {
            x: x, // current time 
            y: y,
            marker: {
                symbol: 'url(../../../Content/images/warnning.png)'
            }
        };
        series.addPoint(newPoint, false, true);  //只有第一條線的 第二個參數設為false 
        //第二條線 
        var y1;
        y1 = Math.floor(Math.random() * 70);
        var newPoint1;
        newPoint1 = {
            x: x, // current time 
            y: y1
        };
        series1.addPoint(newPoint1, true, true);
    }, 1500); //1.5秒添加一次 
}

 

getDataForNoiseMonitor()的具體實現如下:

//獲得前幾分鍾的數據,使效果看起來比較好
function getDataForNoiseMonitor() {
    var dataArr = [];
    var plotName = ['一米陽光', '千里走單騎'];
    for (var i = 0; i < myPlotName.length; i++) {
        var tempObj = {
            name: myPlotName[i],
            data: []
        };
        var time = (newDate()).getTime()(8 * 60 * 60 * 1000), j;   //調整時間 
        for (j = -10; j <= 0; j++) {
            tempObj.data.push({
                x: time + j * 3000,      //前3分鍾的時間 
                y: Math.floor(Math.random() * 70)
            });
        }
        dataArr.push(tempObj);
    }
    returndataArr;
}

  

最后要說明的是,兩個方法有一個共同的地方,就是折線的條數要相同,上面的示例中為兩條。

效果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM