通过前两章的学习,相信大家对highcharts已经有了初步的了解。这一章将通过一个例子来模拟Highcharts如何实现经常变化的数据显示。
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图表应用-模拟心电图