2013-04-24 51 views
0

我想創建一個散點圖,當您選擇一個點時,它將創建一個包含不同數據的新圖。這工作正常。高點重置縮放不會居中數據點

問題是,當你放大第二個散點圖,然後按下重置縮放,圖表調整大小,並將所有數據推到左邊(我假設因爲我所有的數據點都有相同的x座標或因爲值非常小)。我想通過使用setExtremes()重置縮放將使用這些值作爲最小值和最大值。

這裏的的jsfiddle:http://jsfiddle.net/kzBxB/5/

下面是我用來創建新的圖表功能。我是否需要更改任何內容以使「重置縮放」能夠記錄我給定的xAxis最小值和最大值?

function newPoints() { 
    var chart = jQuery('#container').highcharts(); 
    for (var i = 0; i < chart.series.length; i++) { 
     serie = chart.series[i]; 

     //sets the new x axis and new data 
     chart.yAxis[0].setExtremes(0, 10); 
     chart.xAxis[0].setExtremes(.001, .003); 

     chart.addSeries({ 
      type: 'scatter', 
      name: serie.name, 
      data: [ 
       [.002, 1], 
       [.002, 2], 
       [.002, 3], 
       [.002, 4], 
       [.002, 5][.002, 6] 
      ] 
     }, false); 

     //removes the old series 
     serie.remove(false); 
    } 
    //redraws the chart 
    chart.redraw(); 

} 

回答

1

問題是所有值都具有相同的x值,所以Highcharts不知道在哪裏繪製它們(點的範圍是多少)。在這種情況下,我建議使用afterSetExtremes事件:

xAxis: { 
     events: { 
      afterSetExtremes: function(e){ 
       if(e.min === e.max){ 
        this.setExtremes(.001, .003); 
       } 
      } 
     } 
    }, 

而且例如:http://jsfiddle.net/kzBxB/7/