通过前两章的学习,相信大家对highcharts已经有了初步的了解。这一章将通过一个例子来模拟Highcharts如何实现经常变化的数据显示。
比如说股票的涨停、实时篮球比分以及A选手和B选手的支持率。这样的例子在生活中有很多,就不一一列举了。
实现的思路主要还是通过setInterval()方法,隔几秒刷新数据,来实现动态数据的显示。废话不多说,直接上代码。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
$(function() {
// 设置全局的时区
Highcharts.setOptions({
global : {
useUTC : false
}
});
new Highcharts.Chart({
chart : {
renderTo : 'gridTable2', // 放置图表的DIV容器对应页面的id属性
type : 'spline', // 图表类型line, spline, area, areaspline
// 事件
events : {
load : function() {
var series = this.series[0];
// 每隔1秒钟,图表更新一次,y数据值在0-100之间的随机数
setInterval(function() {
var x = (new Date()).getTime();
var y = Math.random() * 100;
series.addPoint([ x, y ], true, true);
}, 1000);
}, }
},
title : {
text : '模拟心电图' // 图表标题
},
subtitle : {
text : 'XXXX' // 副标题
},
// x轴
xAxis : {
// X轴为日期时间类型
type : 'datetime',
// X轴标签间隔
tickPixelInterval : 50
},
// y轴
yAxis : {
title : '',
max : 100, // Y轴最大值
min : 0
},
// 右下角显示的LOGO
credits : {
text : 'demo', // 设置LOGO区文字
},
// 是否启用导出功能,默认为true
exporting : {
enabled : true
},
legend : {
enabled : false
},
// 当鼠标悬置数据点时的格式化提示
tooltip : {
crosshairs : true,
formatter : function() {
return '心率
' + Highcharts.dateFormat('%H:%M:%S', this.x)
+ '
' + Highcharts.numberFormat(this.y, 2);
}
},
plotOptions : {
column : {
dataLabels : {
enabled : true
},
pointPadding : 0.2,
borderWidth : 0
}
},
// 设置默认数据
series : [ {
data : (function() { // 设置默认数据,
var data = [];
var time = (new Date()).getTime();
var i;
for (i = -19; i <= 0; i++) {
data.push({
x : time + i * 1000,
y : Math.random() * 100
});
}
return data;
})()
} ]
});
}); |
主要的代码还是没有多少变化,最重要的是在events里面加入了一个load方法。再利用setInterval方法每隔一秒更新图像。效果图:
图像每隔一秒就会发生变化。当然这只是一个模拟图。通过前面几章,大家可以发现形成图像的数据都是js里面定好的。可不可以用动态数据作为数据源呢?比如说数据都是从数据库查询得到的。答案是肯定的,下一章就着重讲解利用Struts2+json+highCharts生成柱状图。
原创文章,转载请注明: 转载自java开发者
本文链接地址: highCharts图表应用-模拟心电图