在highcharts中计算yAxis的第85百分位数

时间:2012-09-05 14:12:03

标签: highcharts percentile

我有一个包含多个系列的图表,我有一个按钮可以将yAxis重置为特定的数量。我想将此特定数量设置为yAxis值的第85个百分位数。有没有办法计算这个? jsfiddle示例:http://jsfiddle.net/inadcod/TynwP/

2 个答案:

答案 0 :(得分:1)

非常奇怪,您希望在客户端上执行此操作,您可以非常轻松地在实际发送数据的服务器上排序并获取第85百分位的值,并将其用作y轴的最大值。

无论如何,您可以使用series.points对象数组访问数据值,这包含给定系列的所有点,它有许多属性point.y似乎是您感兴趣的。循环遍历所有这些并将它们存储在另一个数组中以方便并对这个新数组进行排序。取数组的长度和倍数你想要的因子(0.85),这是元素a.k.a.85th百分位数的索引。使用此值

设置给定yAxis的最小值
var yData = [];
$.each(chart.series[0].points, function() {
    yData.push(this.y);
});
var sortedY = sort(yData);
var eightyFifthPercentile = sortedY[Math.floor(sortedY.length * 0.85)];

alert(eightyFifthPercentile); 

http://jsfiddle.net/jugal/HkS2Y/

答案 1 :(得分:0)

你可以这样做:

var yAxis = chart.yAxis[0];
var extremes = yAxis.getExtremes();
yAxis.setExtremes(extremes.min, extremes.dataMax * 0.85);

在此处查看演示:http://jsfiddle.net/gyavJ/