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;
}
最后要說明的是,兩個方法有一個共同的地方,就是折線的條數要相同,上面的示例中為兩條。
效果如下:


