2017-08-04 5 views
1

私は現在AndroidPlotを使用して動的XYプロットを表示しています。このデータを通常表示するPythonスクリプトには、Matplotlibを使用して対数スケールでデータをグラフ化する機能も含まれています。 AndroidPlotを使用して対数のY軸を持つことは可能ですか、それとも均等に値を持たないティックを持つy軸を使用することも可能ですか?AndroidPlot Logarithmic Axis?

ありがとうございました。

答えて

0

これは確かAndroidplotで行うことができますが、設定パラメータを設定するだけでは簡単ではありません。

最も簡単なアプローチは、おそらくXYSeriesの実装を拡張し、getY(int)メソッドを調整して、生の値の代わりにログ値を返すことです。唯一のy軸上のlog10実装する例:限りティックが行くように

class LogXYSeries extends SimpleXYSeries { 

     public LogXYSeries(String title) { 
      super(title); 
     } 

     @Override 
     public Number getY(int index) { 
      final Number rawY = super.getY(index); 
      if(rawY != null) { 
       Math.log10(rawY.doubleValue()); 
      } 
      return null; 
     } 
} 

を、あなたは固定値増加によってまたは値の可視範囲のも、細分化として表示されるように、それらを設定することができます(デフォルトはシリーズデータに最小値/最大値を合わせることもできますが、望む場合は手動で設定することもできます)。私は、あなたがログスケールで探しているものが細分化されると思います。

あなたが達成しようとしていることを誤解しただけで、目盛りのラベルにログスケールを適用したい場合は、それも可能です。ドメイン&のXYPlotsのRange Labelsのドキュメントにexample of setting a custom formatterがあります。

+0

ログスケールをダニに適用することを目指しています。私は間違っているかもしれませんが、カスタムフォーマッタを設定しても、実際の値ではなく目盛りラベルの外観が変わるだけですか?いずれにしても、これは本当に役に立ちました!ありがとうございました。 –

+0

それは正しいです。それらはラベルの点では依然として正確ですが、プロットされたデータは、ログのスケーリングが適用されないために異なって見えます。 LogXYSeriesのアプローチはおそらく後になっていますが、私はちょうど大文字小文字の区別としてログ値としてラベルを印刷する方法について言及したいと思いました。 – Nick