Ray*_*Ray 5 bigdata highcharts
我需要用Highcharts绘制数万个(可能是数十万个)点.有没有办法可以在服务器上集群数据,所以它会显示少于1000个点,但是当你放大它时会对服务器进行AJAX调用以获取该缩放区域的数据(它可能会通过相同的聚类算法).如何与Highcharts API接口?
这是芭芭拉答案的改进,
它注册到 setExtremes 事件,以了解这是否是重置缩放事件。如果是 - 它会获取整个数据集,从而允许重置缩放正常工作。
它还允许放大 x 和 y。
var isReset = false;
...
xAxis: {
events: {
afterSetExtremes : afterSetExtremes,
setExtremes: function (e) {
if (e.max == null || e.min == null) {
isReset = true;
}
else
{
isReset = false;
}
}
},
minRange: 3600 * 1000 // one hour
},
series: [{
data: data,
dataGrouping: {
enabled: false
}
}]
});
});
});
/**
* Load new data depending on the selected min and max
*/
function afterSetExtremes(e) {
var url,
currentExtremes = this.getExtremes(),
range = e.max - e.min;
var chart = $('#container').highcharts();
var min = 0;
var max = 1.35e12;
if(!isReset)
{
min = e.min;
max = e.max;
}
chart.showLoading('Loading data from server...');
$.getJSON('http://www.highcharts.com/samples/data/from-sql.php?start=' + Math.round(min) +
'&end=' + Math.round(max) + '&callback=?', function (data) {
chart.series[0].setData(data);
chart.hideLoading();
});
}
Run Code Online (Sandbox Code Playgroud)