2017-04-13 23 views
0

中的圖我希望我的應用程序能夠顯示frequency response圖,但我找不到任何具有此功能的圖形庫。我目前使用MPAndroidChart作爲其他圖表(這真是太棒了!),但遺憾的是我找不到任何方法來使用它來做日誌圖。我也嘗試使用numAndroidCharts(numcharts logplot example),但該庫看起來破/過時,因爲我甚至無法讓示例代碼正常工作。無論如何,你知道要實現這一目標嗎?LogLinear和LogLog在android

+0

你可以使用'MPAndroidChart'和log scale,你需要用'Math.log10(value)'轉換你的值,把這個轉換後的值設置爲你的Entry,並用你想要的值標出這個scale。 (我這樣做了)你已經嘗試過了嗎? – yennsarah

+0

嗨Amylinn,不,我還沒有嘗試過。所以,如果我想要一個對數x軸,並且我想爲該條目添加一個值(x,y),我添加了該點(log10(x),y​​),但是,期望值? – Jonathan

+1

例如,如果您的值爲'1E-5','Math.log10(value)= -5','-5'就是您的標籤。所以你需要一個'AxisFormatter'來將你的值轉換回日誌範圍,例如'String.format(Locale.ENGLISH,「%.2E」,Math.pow(10,value));'我會添加一個答案。 – yennsarah

回答

1

我使用MPAndroidChart與轉換後的值的對數刻度。

例如,如果你的價值是1E-5

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

因爲你的價值,現在是-5你需要創建一個AxisFormatter以表明它確實代表對數值:

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