我已經添加了縮放到我正在處理的高分辨率應用程序,但是當縮放時我注意到了一些非常不好的行爲。如果縮放窗口包含圖表的數據範圍之外的區域,結果縮放級別錯誤地忽略該區域。對不起,如果這有點不清楚,我不確定如何最好地解釋它。如何避免不良行爲縮放到數據範圍之外的區域
這裏的一個小提琴展示了此問題:http://jsfiddle.net/rnAEB/
$(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: "container",
zoomType: "xy"
},
title: {
text: 'Try zooming outside the data range'
},
tooltip: {
headerFormat: '<b>{series.name}</b><br />',
pointFormat: 'x = {point.x}, y = {point.y}'
},
series: [{
data: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512],
pointStart: 1
}]
});
chart.xAxis[0].setExtremes(-10, 20, true);
chart.yAxis[0].setExtremes(-500, 1000, true);
});
嘗試從(5,1000)放大到矩形(10,-500)。由此產生的縮放區域大約(5,600)到(10,-100)...這顯然不是要求的縮放請求。
我已經嘗試連接到軸的setExtremes事件,並且發生此問題時的界限未定義。但我無法弄清楚如何'劫持'setExtremes請求來修復未定義的值。我也不能從該事件中遞歸調用setExtremes。
這是預期的行爲?我可以看到爲什麼你只想放大數據的位置 - 但我真的很喜歡爲了透視而放大到沒有數據的位置的自由。
考慮到它的行爲,這是一個好方法。我想動態縮放圖表,所以提前設置邊界對我來說不起作用。我確實設法通過重寫軸縮放方法來做到這一點(暫時將其張貼爲答案)。 – Michael