我有一个显示正确图表的图表(即输入正确)。
我是使用默认的工具提示行为还是我为格式化创建自己的函数,有一些奇怪的行为,我没有得到。无论我将鼠标放在图表上的哪个位置,工具提示的值始终相同。
图表是正确的,我100%确定值不一样。下面是我用于图表设置的代码。
function graphUtilPing(utilGws) {
var options = {
chart : {
renderTo : 'ping_util',
type : 'spline',
width:'900'
},
series:[],
title : {
text : 'Utilisation'
},
xAxis : {
type:'datetime',
title : {
text : 'Time of the day'
}
},
yAxis : {
title : {
text : 'Percentage (%)',
},
},
tooltip:{
shared:false,
formatter :
function() {
var d = new Date(this.x);
var hrs = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
var ds = (hrs < 9 ? "0"+hrs : hrs) + ":" + (minutes < 9 ? "0"+minutes : minutes) + ":" + (seconds < 9 ? "0"+seconds : seconds);
return '<b>' + this.series.name + '</b><br/>'
+ ds + ": " + this.point.y.toFixed(2) + '%';
}
}
};
for (var key in utilGws) {
var gw = utilGws[key];
var gwUtilValues = gw[0];
var gwMsTimes = gw[2];
var chartObj = {
name: key,
data: array_combine(gwMsTimes, gwUtilValues)
};
options.series.push(chartObj);
}
chart = new Highcharts.Chart(options);
return chart;
}
我正在使用Chrome,这个问题在IE上也是可以重现的。
即使不更改工具提示对象,我得到的行为也是一样的。
任何想法可能是什么问题?
更新:问题可重现的示例:http://jsfiddle.net/Htj74/3/
答案 0 :(得分:1)
问题在于您的数据时间是相反的。它来自05 Dec 2012 23:45:00
到05 Dec 2012 00:00:00
。它应该是05 Dec 2012 00:00:00
到05 Dec 2012 23:45:00
。
问题是arrayCombine
。它应该如下。
function array_combine (a1, a2) {
var data = [];
for (var i = 0, length = a1.length; i < length ; i++) {
data.push([ a1[i], a2[i] ]);
}
return data;
}