原理:使用highcharts中的series.addPoint([x, y], true, true)方法來動態加載一個點到圖形的末尾。
說明:使用highcharts時需要引入highcharts的js文件。
代碼實現部分和說明:
html頁:
<html>
<body>
<div id="container"></div>
</body>
</html>
js部分:
<script tyep="text/javascript">
$(function(){
var chart;
$('#container').highcharts({
chart: {
type: 'area',
animation: Highcharts.svg, // 舊版IE無法使用
marginRight: 10,
events: {
load: function () {
// 設置每秒的更新數據,時間間隔爲1000ms,即1s(此處可自己設置)
var series = this.series[0];
setInterval(function () {
//設置x爲添加點的時間
var x = (new Date()).getTime(),
//y的值通過方法SetYdata()得到
y = parseFloat(SetYdata());
series.addPoint([x, y], true, true);
}, 1000);
}
}
},
title: {
text: '溫度實時信息'
},
xAxis: {
type: 'datetime',
},
yAxis: {
title: {
text: '溫度'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}],
alternateGridColor: '#FDFFD5',
allowDecimals: true,
tickPixelInterval: '50',
endOnTick: true
},
tooltip: {
//鼠標移動到點上時顯示信息
formatter: function () {
return '<b>' + this.series.name + '</b><br/>' +
Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
Highcharts.numberFormat(this.y, 2) + '度';
}
},
legend: {//是否啓用圖例
enabled: false
},
credits:{//是否顯示版權
enabled:false
},
exporting: {//是否導出
enabled: false
},
series: [{
name: '溫度',
data: (function () {
// 設置初始數據爲0
var data = [],
time = (new Date()).getTime(),
i;
for (i = -19; i <= 0; i++) {
data.push({
x: time + i * 1000,
y: 0
});
}
return data;
})()
}]
});
});
});
function SetYdata(){
var y;
//通過輪詢或者廣播的方式獲取y的實時的值
return y;
}
</script>