如何在mpandroidchart中实时显示图表?
How to display the chart with real time in mpandroidchart?
我正在使用 MPAndroidChart
我需要实时显示折线图。但问题是,它是在整个完成后显示的。实际上它应该像实时一样绘制。我试过的是,
private void updateUI(final ArrayList<TimeModel> pJsonObject) {
for(int i=0;i<pJsonObject.size();i++){
int speedRates = pJsonObject.get(i).getSpeedRate();
String time = String.valueOf(pJsonObject.get(i).getTotalTime());
xAxes.add(time);
//yAxes.add(new Entry(10, 0));
yAxes.add(new Entry(speedRates,i));
}
String[] xaxes = new String[xAxes.size()];
for (int i = 0; i < xAxes.size(); i++) {
xaxes[i] = xAxes.get(i).toString();
}
LineDataSet lineDataSet = new LineDataSet(yAxes, "Time");
lineDataSet.setDrawCircles(true);
lineDataSet.setColor(Color.GREEN);
lineDataSets.add(lineDataSet);
linechart.setData(new LineData(xaxes, lineDataSets));
linechart.setVisibleXRangeMaximum(65f);
// linechart.setTouchEnabled(true);
// linechart.setDragEnabled(true);
linechart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);
linechart.getAxisLeft().setDrawGridLines(false);
linechart.getXAxis().setDrawGridLines(false);
YAxis yAxisRight = linechart.getAxisRight();
yAxisRight.setEnabled(false);
linechart.animateXY(3000, 3000);
}
但这是一个完整的绘图。我需要在 mpandroid 图表中实时绘制。
这是代码。它启动线程,然后在循环中向图表添加条目(在本例中为 500 点),每次添加后,线程休眠 1000 毫秒(1 秒),这是你的间隔:
new Thread(new Runnable() {
@Override
public void run() {
for(int i = 0; i < 500; i++) {
runOnUiThread(new Runnable() {
@Override
public void run() {
addEntry();
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
}).start();
对于每个点间隔为 1 秒的动画,使用此
mChart.animateX(1000 * pointCount);
例如,在您的情况下:
mChart.animateX(1000 * xAxes.size());
我正在使用 MPAndroidChart 我需要实时显示折线图。但问题是,它是在整个完成后显示的。实际上它应该像实时一样绘制。我试过的是,
private void updateUI(final ArrayList<TimeModel> pJsonObject) {
for(int i=0;i<pJsonObject.size();i++){
int speedRates = pJsonObject.get(i).getSpeedRate();
String time = String.valueOf(pJsonObject.get(i).getTotalTime());
xAxes.add(time);
//yAxes.add(new Entry(10, 0));
yAxes.add(new Entry(speedRates,i));
}
String[] xaxes = new String[xAxes.size()];
for (int i = 0; i < xAxes.size(); i++) {
xaxes[i] = xAxes.get(i).toString();
}
LineDataSet lineDataSet = new LineDataSet(yAxes, "Time");
lineDataSet.setDrawCircles(true);
lineDataSet.setColor(Color.GREEN);
lineDataSets.add(lineDataSet);
linechart.setData(new LineData(xaxes, lineDataSets));
linechart.setVisibleXRangeMaximum(65f);
// linechart.setTouchEnabled(true);
// linechart.setDragEnabled(true);
linechart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);
linechart.getAxisLeft().setDrawGridLines(false);
linechart.getXAxis().setDrawGridLines(false);
YAxis yAxisRight = linechart.getAxisRight();
yAxisRight.setEnabled(false);
linechart.animateXY(3000, 3000);
}
但这是一个完整的绘图。我需要在 mpandroid 图表中实时绘制。
这是代码。它启动线程,然后在循环中向图表添加条目(在本例中为 500 点),每次添加后,线程休眠 1000 毫秒(1 秒),这是你的间隔:
new Thread(new Runnable() {
@Override
public void run() {
for(int i = 0; i < 500; i++) {
runOnUiThread(new Runnable() {
@Override
public void run() {
addEntry();
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
}).start();
对于每个点间隔为 1 秒的动画,使用此
mChart.animateX(1000 * pointCount);
例如,在您的情况下:
mChart.animateX(1000 * xAxes.size());