I am having a problem with visualization of time series data on graph view library in android studio. When I am trying to plot my graph against very small values(in the intervals of 0.00003) on x-axis, there is no graph. However, when I am try to plot against integer values(in the interval of 1), the graph shown is as expected.
My Working code -
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_time);
Intent intent = getIntent();
int sample_freq = 32768;
double [] data = intent.getDoubleArrayExtra(DataActivity.EXTRA_TIME_DATA);
int n = data.length;
GraphView graph = findViewById(R.id.graph);
double sample_time = 1/sample_freq;
DataPoint[] points = new DataPoint[n];
for(int i = 0; i < n ; i++)
{
points[i] = new DataPoint(i, data[i]);
}
LineGraphSeries<DataPoint> series = new LineGraphSeries<>(points);
graph.getViewport().setYAxisBoundsManual(true);
graph.getViewport().setMinY(-15);
graph.getViewport().setMaxY(15);
graph.getViewport().setXAxisBoundsManual(true);
graph.getViewport().setMinX(100);
graph.getViewport().setMaxX(5000);
graph.getViewport().setScalable(true);
graph.getViewport().setScalableY(true);
graph.addSeries(series);
TextView textView = findViewById(R.id.textView);
String message = String.valueOf(n);
textView.setText(message);
}
Code which is not working -
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_time);
Intent intent = getIntent();
int sample_freq = 32768;
double [] data = intent.getDoubleArrayExtra(DataActivity.EXTRA_TIME_DATA);
int n = data.length;
GraphView graph = findViewById(R.id.graph);
double sample_time = 1/sample_freq;
DataPoint[] points = new DataPoint[n];
for(int i = 0; i < n ; i++)
{
points[i] = new DataPoint(i*sample_time, data[i]);
}
LineGraphSeries<DataPoint> series = new LineGraphSeries<>(points);
graph.getViewport().setYAxisBoundsManual(true);
graph.getViewport().setMinY(-15);
graph.getViewport().setMaxY(15);
graph.getViewport().setXAxisBoundsManual(true);
graph.getViewport().setMinX(0.01);
graph.getViewport().setMaxX(1);
graph.getViewport().setScalable(true);
graph.getViewport().setScalableY(true);
graph.addSeries(series);
TextView textView = findViewById(R.id.textView);
String message = String.valueOf(n);
textView.setText(message);
}