2017-04-13 13 views
0

私のアプリケーションではfrequency responseグラフを表示することができますが、この機能を持つグラフライブラリは見つかりません。私は現在、いくつかの他の図表のためにMPAndroidChartを使用しています(それは素晴らしいです!)しかし、悲しいことに、ログプロットを行うためにそれを使用する方法を見つけることができませんでした。私もnumAndroidCharts(numcharts logplot example)を使用してみましたが、正しく動作するようにサンプルコードを取得できなかったので、そのライブラリは壊れている/古くなっているようです。あなたはこれを達成するために知っているとにかくありますか?androidのLogLinearとLogLogプロット

+0

'MPAndroidChart'をログスケールで使うことができます。あなたは' Math.log10(value) 'で値を変換し、この変換された値を' Entry'に設定し、スケールにあなたの希望する値をラベルする必要があります。 (私はそれをこのようにしています)あなたはすでにこれを試してみましたか? – yennsarah

+0

こんにちはアミリン、いいえ、私はそれを試していません。だから私は対数のx軸が必要な場合、私はポイント(log10(x)、y)を追加するエントリの値(x、y)を追加したいと思いますが、望ましい値? – Jonathan

+1

たとえば、値が '1E-5'、' Math.log10(value)= -5'なら '-5'があなたのラベルになります。例えば、 'String.format(Locale.ENGLISH、"%.2E "、Math.pow(10、value))のように、値をログスケールに変換する' AxisFormatter'が必要です。答え。 – yennsarah

答えて

1

私はMPAndroidChartを換算値の対数スケールで使用します。例えば

あなたの値が1E-5の場合:

value = 1E-5; 
Entry entry = new Entry(); 
entry.setX(Math.log10(value)); // entry.getX() will return -5 

あなたの値は、今あなたはそれが本当に対数値を表していることを示すために、AxisFormatterを作成する必要が-5あるので:あなたが必要

public class Log10AxisValueFormatter implements IAxisValueFormatter { 
    @Override 
    public String getFormattedValue(float value, AxisBase axis) { 
     return String.format(Locale.ENGLISH, "%.2E", Math.pow(10,value)); 
    } 
} 

グラフを作成するときに、このインスタンスを軸に設定します。

XAxis xAxis = chart.getXAxis(); 
xAxis.setValueFormatter(new Log10AxisValueFormatter()); 
+0

それはうまくいった、ありがとう! – Jonathan

関連する問題