2012-09-05 47 views
0

我有一個包含多個系列的圖表,我有一個按鈕可將yAxis重置爲特定的值。我想將這個具體數量設置爲yAxis值的第85個百分點。有沒有辦法計算這個? 的jsfiddle例如:http://jsfiddle.net/inadcod/TynwP/計算高級搜索yAxis的第85個百分點

+1

實例給定y軸的分鐘將有助於 –

+0

將Y軸到第85百分位的意思是什麼?您只想查看高於百分位數的項目?這個問題不是很清楚。 – wergeld

+0

'yAxis到第85百分位'是什麼意思?你想重新計算所有的系列數據,還是隻顯示yAxis標籤上的最大值的85%? –

回答

1

很奇怪,要做到這一點在客戶端上,你可以很容易地進行排序和在實際發送數據的服務器上獲取第85百分位的值,並將其用作y軸的最大值。

無論如何,您可以使用series.points對象數組訪問數據值,它包含給定系列的所有點,它具有其中point.y似乎是您感興趣的許多屬性。遍歷所有這些並將它們存儲在另一個數組中以方便使用,並對這個新數組進行排序取數組的長度和倍數,取決於你想要的因子(0.85),這就是元素a.k.a.第85個百分點的指數。設置使用此值

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/

+0

感謝您的回答。我必須按照請求的方式在客戶端執行此操作。我希望我能夠實施它。再次感謝。 – inadcod

0

你可以這樣來做:

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

觀看演示在這裏:http://jsfiddle.net/gyavJ/

+0

這需要顯示高達85%的圖表。我在上面添加了關於百分比如何計算的評論。無論如何,謝謝你的答案。 – inadcod