2017-09-05 8 views
0

どのようにして簡単な折れ線グラフをプログラム的にズーム(全体のグラフを表示)することができますか?私はドキュメントで適切な方法を見つけることができません。ExtJS 6チャートをプログラムでリセットリセット

私はExt.chart.interactions.CrossZoomを使用します。

+0

この質問が何らかの理由で間違っているようであれば、その理由を記入してください。私は、このタスクは、そのtrivialityのために箱からソリューションを持っていると確信して、私は本当にドキュメントでそれについて何も見つけることができません。 –

答えて

1

CrossZoom classには、文書化されていないundoZoomメソッドがあります。クロスズーム相互作用がzoomHistory財産で歴史のズームを保持

chart.getInteraction('crosszoom').undoZoom(); 

編集

を: あなたはそうのような、それを使用することができます。 undoZoomメソッドは、ズーム履歴に沿って、一度に1ステップずつズームします。 undoZoom方法に基づき、私は直接その初期のズームにグラフをリセットしresetZoom方法作成した

https://fiddle.sencha.com/#view/editor&fiddle/264t

別の編集

:ここ

Ext.define(null, { 
    override: 'Ext.chart.interactions.CrossZoom', 

    resetZoom: function() { 
     var zoomMap = this.zoomHistory[0], 
      axes = this.getChart().getAxes(); 

     if (zoomMap) { 
      for (var i = 0; i < axes.length; i++) { 
       var axis = axes[i]; 
       if (zoomMap[axis.getId()]) { 
        axis.setVisibleRange(zoomMap[axis.getId()]); 
       } 
      } 
     } 
     this.getUndoButton().setDisabled(true); 
     this.zoomHistory = []; 
     this.sync(); 
    } 
}); 

は作業フィドルです

@SergeyNovikovはコメントに記載されており、undoZoomメソッドとresetZoomオーバーライドからわかるようにe、それはすべて軸 'setVisibleRangeの方法になります。したがって、最小/最大値を引数として直接使用してズームをリセットすることもできます。

+0

ニースの答え、ありがとう!実際には、 '.setVisibleRange()'とaxisの最小値/最大値を引数として使用できます。あなたはそれを完璧にするために答えに加えることができます。 –

関連する問題