1

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

4

2 回答 2

2

很奇怪,您希望在客户端上执行此操作,您可以非常轻松地排序并获取服务器上实际发送数据的第 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/

于 2012-09-06T21:16:20.633 回答
0

你可以这样做:

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

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

于 2012-09-05T20:01:08.173 回答