2016-04-29 5 views
1

長時間のシリーズのアプリケーションがあり、ナビゲータの最大サイズを制限したいと考えています。ドキュメント内にafterSetExtremesというイベントが見つかりました。キャプチャしてそこからナビゲータのサイズを制限できると思っていました。しかし、実際には期待どおりに動作しません。私はプロットされたデータのxサイズを制限することができるようです。しかし、ナビゲータはプロットされたデータのサイズに全く従いません。ここに何かがないのですか?どうすればそれを正しく動作させることができますか?理想的には、ナビゲータは特定のサイズ以上のサイズで固定されたままになります。達成することは可能ですか?highstock.jsのナビゲータのサイズを制限するにはどうすればよいですか?

ここjsfiddle:

http://jsfiddle.net/jn3cww8n/2/

$(function() { 
$('#container').highcharts('StockChart', { 
    xAxis: { 
     events: { 
      afterSetExtremes: function(e) { 

       var dmin = Math.abs(e.min - this.oldMin), 
        dmax = Math.abs(e.max - this.oldMax), 
        range = e.max - e.min, 
        new_min = e.min, 
        new_max = e.max, 
        yr_range = range/1000/60/60/24; 
       if (0.0 === dmin && 0.0 < dmax) { 
        $('#report').html('Max changed ' + yr_range); 

        if (31536000000.0 < range) { 
         $('#report').html('setting new max'); 
         new_max = new_min + 31536000000.0; 
        } 

       } else if (0.0 < dmin && 0.0 === dmax) { 
        $('#report').html('Min changed ' + yr_range); 

        if (31536000000.0 < range) { 
         $('#report').html('setting new min'); 
         new_min = new_max - 31536000000.0; 
        } 

       } else { 
        $('#report').html('Nothing changed'); 
       } 

       this.setExtremes(new_min, new_max); 

      } 
     } 
    }, 
    rangeSelector: { 
     selected: 1 
    }, 
    series: [{ 
     name: 'USD to EUR', 
     data: usdeur 
    }] 
}); 
}); 
+0

ナビゲータのポイントは、あなたが持つ可能性があるシリーズ全体の範囲の概要を提供することです。表示/ナビゲートできるものを制限したい場合は、系列を切り捨てて必要な値の範囲のみを含めることができますか? – wergeld

+0

ユーザーはいつでも閲覧したい期間にナビゲートすることができなければなりませんが、より大きな時系列の期間を制限したいと考えています。だから私は本当に時系列を切り捨てることはできません。時系列がグループ化されたデータグループで意味をなさないため、データグループ化は機能しません。 – c00kiemonster

+0

「より大きな時系列を見ることのできる期間を制限する」とはどういう意味ですか?データセットが時間単位である場合は、週単位のデータのみをユーザーに表示させたい場合などですか?それとも、JANからDECへのデータがある場合は、APRからAUGへのデータを表示できるようにするだけですか? – wergeld

答えて

1

私はこの1つ上のタックを変更しました。ナビゲータの最大サイズの代わりに、ユーザーのサイズを変更することを制限しました。

私はthis投稿からアイデアを得ました。必要な

わずか2変更:

  1. ブランクdrawHandle機能Highcharts.Scroller.prototype.drawHandle = function() {};
  2. Commmentうち数行:

    22472,22476c22472,22476 
    
    <      //if (isOnNavigator && math.abs(chartX - zoomedMin - navigatorLeft) < handleSensitivity) { 
    
    <       //scroller.grabbedLeft = true; 
    
    <       //scroller.otherHandlePos = zoomedMax; 
    
    <       //scroller.fixedExtreme = baseXAxis.max; 
    
    <       //chart.fixedRange = null; 
    
    --- 
    
    >      if (isOnNavigator && math.abs(chartX - zoomedMin - navigatorLeft) < handleSensitivity) { 
    
    >       scroller.grabbedLeft = true; 
    
    >       scroller.otherHandlePos = zoomedMax; 
    
    >       scroller.fixedExtreme = baseXAxis.max; 
    
    >       chart.fixedRange = null; 
    
    22479,22483c22479,22483 
    
    <      //} else if (isOnNavigator && math.abs(chartX - zoomedMax - navigatorLeft) < handleSensitivity) { 
    
    <       //scroller.grabbedRight = true; 
    
    <       //scroller.otherHandlePos = zoomedMin; 
    
    <       //scroller.fixedExtreme = baseXAxis.min; 
    
    <       //chart.fixedRange = null; 
    
    --- 
    
    >      } else if (isOnNavigator && math.abs(chartX - zoomedMax - navigatorLeft) < handleSensitivity) { 
    
    >       scroller.grabbedRight = true; 
    
    >       scroller.otherHandlePos = zoomedMin; 
    
    >       scroller.fixedExtreme = baseXAxis.min; 
    
    >       chart.fixedRange = null; 
    
    22486,22487c22486 
    
    <      //} else if (chartX > navigatorLeft + zoomedMin - scrollbarPad && chartX < navigatorLeft + zoomedMax + scrollbarPad) { 
    
    <      if (chartX > navigatorLeft + zoomedMin - scrollbarPad && chartX < navigatorLeft + zoomedMax + scrollbarPad) { 
    
    --- 
    
    >      } else if (chartX > navigatorLeft + zoomedMin - scrollbarPad && chartX < navigatorLeft + zoomedMax + scrollbarPad) { 
    

プリティ・クリーンすべてのすべて。

関連する問題