一般来说,曲线反应的是某个属性在一段时间内的波动变化。在Highchart曲线图上,把鼠标放到曲线上,那么随着鼠标的移动,该属性值也会显示出来方便查看。但是如果这个属性是一个复合属性,它还有更细致的组成部分需要被详细读出,那么最便捷的操作就是在曲线的这个点上进行点击操作了。
这个曲线是对总用电功率的分时展示,点击其中的任何点,都会更新一个弹出窗口,在弹出窗口里显示该点时刻用电功率排名前三的房间。
在Highcharts里添加这样的点击操作是设置Event字段属性,代码如下:
plotOptions: {
spline: {
allowPointSelect: true,
cursor: 'pointer', //鼠标移到图表上时鼠标的样式
enableMouseTracking: true, //鼠标移到图表上时是否显示提示框
events: {//监听点的鼠标事件
click: function () {
var x = (event.point.x - (Date.UTC(theYear, theMonth, theDay, 0, 0, 0, 0) + localOffset))/1000;
var hour = Math.floor(x / 3600) > 9 ? Math.floor(x / 3600) : '0' + Math.floor(x / 3600);
var minute = Math.floor((x % 3600) / 60) > 9 ? Math.floor((x % 3600) / 60) : '0' + Math.floor((x % 3600) / 60);
var second = (x % 60) > 9 ? (x % 60) : '0' + (x % 60);
var time = hour + ':' + minute + ':' + second;
//alert(hour + ':' + minute + ':' + second + ',' + event.point.y);
ShowMaxSubValues(time);
}
//mouseOver:function() {
},
lineWidth: 2,
states: {
hover: {
lineWidth: 3
}
},
marker: {
enabled: false
}
}
},
这里获取鼠标点击点对应的X轴时间值,然后调用ShowMaxSubValues()方法。
// 获取某时刻即时功率最大的三个电表名称和数值,供鼠标点击曲线图数值时显示
function ShowMaxSubValues(time) {
var date; // 日期
if (navtab.getSelectedTabItemID() == "tabitem1") { // 实时功率页面,取当前日期
date = new Date().format('yyyy-MM-dd');
} else { // 历史功率Tab2页面,取历史时间
date = $("#time").val();
}
var parms = "time=" + date + " " + time + ".000"; // 构造datetime
LG.ajax({
type: 'AjaxRealTimePower',
method: 'GetMaxValuesAtTime',
data: parms,
success: function (ajaxData) {
var json = ajaxData.topvaluesjson;
// 设置浮动框内的内容
if ((json != null) && !$('#dragableBox').hasClass("hidden")) {
$("#boxName").text(date + " " + time);
if (json.length > 0)
$("#POWER1").text(json[0].StationName + ' : ' + json[0].py);
else
$("#POWER1").text("无当日数据");
if (json.length > 1)
$("#POWER2").text(json[1].StationName + ' : ' + json[1].py);
else
$("#POWER2").text("");
if (json.length > 2)
$("#POWER3").text(json[2].StationName + ' : ' + json[2].py);
else
$("#POWER3").text("");
}
}
});
}
持续更新中。。。
玩转Highcharts图表库系列(一) 显示多条曲线
玩转Highcharts图表库系列(二) 沿X轴设置不同的背景色分辨带
玩转Highcharts图表库系列(三) 给曲线加上点击事件
玩转Highcharts图表库系列(四) 散点图和曲线图的混合显示