В настоящее время я получаю некоторые данные через датчик Bluetooth и хотел бы построить график в реальном времени, где ось Y - это данные, а ось X - время
. Я пытался следовать примеру наhttps://www.youtube.com/watch?v=knlbFXRHff8.Но все данные на графике обновляются каждую секунду.Я хотел бы добавить текущие данные и время к последней части линейного графика и сохранить предыдущие данные на графике.Следующее в моей текущей работе:
Настройка фона:
SimpleDateFormat mdformat = new SimpleDateFormat("mm:ss");
GraphView graph = (GraphView) findViewById(R.id.graph);
series = new LineGraphSeries<DataPoint>();
graph.addSeries(series);
Viewport viewport = graph.getViewport();
viewport.setXAxisBoundsManual(true);
viewport.setYAxisBoundsManual(true);
viewport.setMinY(0);
viewport.setMaxY(40);
viewport.setScrollable(true);
graph.getGridLabelRenderer().setLabelFormatter(new DefaultLabelFormatter(){
@Override
public String formatLabel (double value, boolean isValueX){
if(isValueX){
return mdformat.format(new Date((long)value));
}else {
return super.formatLabel(value, isValueX);
}
}
});
graph.getGridLabelRenderer().setHumanRounding(false);
graph.getGridLabelRenderer().setNumHorizontalLabels(5);
Добавление данных: эта часть находится внутри того места, где телефон Android получает данные Bluetooth
private void addEntry() {
series.appendData(new DataPoint(new Date().getTime(), d), true, 100);
}