$(function (){
Highcharts.setOptions({
global: {
useUTC: false
}
});
});
var chart;
var varseries;
// 动态曲线图
function b(){
chart = new Highcharts.Chart({
chart:{
// 将报表对象渲染到层上
renderTo:'container2' ,
defaultSeriesType:'spline',
marginRight: 10
}, // chart end
title:{
text:'辛加涛 动态曲线图'
},
yAxis:{
title:{
text:'PCA值'
},
tickPositions: [-10,-5,0,5,10,15, 20,25,30,35,40,45,50,55,60,70,80,90,100], //指定竖轴坐标点的值
//指定y 直线的样式
plotLines: [
{
value: 0,
width: 1,
color: '#808080'
}
]
},
/* xAxis: {
type: 'datetime',
labels: {
step: 4,
formatter: function () {
return Highcharts.dateFormat('%Y-%m-%d %H:%M:%S' , this.value);
}
}
},*/
xAxis: {
title: {
text: '时间'
},
//linear" or "datetime"
type: 'datetime',
//坐标间隔
tickPixelInterval: 150
},
//鼠标放在某个点上时的提示信息
//dateFormat,numberFormat是highCharts的工具类
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);//2数据保留2位小数
}
},
legend: {
enabled: true
},
exporting: {
enabled: true
},
// 设定报表对象的初始数据
/* series:[{
data:[0,0]
}]*/
series: [{
name: 'Random data',
data: (function() {
var data = [],
time = (new Date()).getTime(),
i;
for (i = -19; i <= 0; i++) {
data.push({
x: time + i * 1000,
y: 0
});
}
return data;
})()
}]
}); // Highcharts.Chart end
varseries = chart.series[0];
run();
}
var interval;
function run(){
interval = setInterval(functiongetForm,1000);
}
// 获取后台数据
function functiongetForm(){
$.ajax({
type: 'POST',
url: $.contextPath + "/DemoAction.do?method=quxianPic",
dataType: 'json',
success: function(rdata) {
// data= jQuery.parseJSON(data);
varseries.addPoint([rdata.x,rdata.y],true,true);
chart.redraw();
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
}
});
}
/**
* 动态曲线图
*/
public ActionForward quxianPic(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
System.out.println("进入quxianPic Action");
try {
JSONObject jsonObject = jsonObject = new JSONObject();
jsonObject = new JSONObject();
int x = (int) (Math.random() * 50);
int y = (int) (Math.random() * 50);
jsonObject.put("x", new Date().getTime());
jsonObject.put("y", y);
// 返回
RiaUtils.writeJsonText2Page(jsonObject.toString(), response);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}