在高图表中计算yAxis的第85个百分位数



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

非常奇怪的是,您希望在客户端上这样做,您可以非常容易地在实际发送数据的服务器上排序并获得第85个百分点的值,并将其用作y轴的最大值。

无论如何,您可以使用series.points对象数组访问数据值,它包含给定序列的所有点,它有许多属性,point.y似乎是您感兴趣的。为了方便起见,循环遍历所有这些并将它们存储在另一个数组中,然后对这个新数组进行排序。取数组的长度,乘以你想要的因子(0.85),这就是元素的索引,也就是第85个百分点。使用此值设置给定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/

您可以这样做:

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

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

最新更新