我有一个包含多个系列的图表,其中有一个按钮可以将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/