我正在 Android 应用程序中使用 GraphView 绘制数据。我正在使用 LineGraphSeries 并尝试使用appendData()将大量数据点附加到该系列中。但是,当我将appendData()的大小参数设置为数据列表的大小时,图表无法正确显示绘图。
这是我正在使用的代码:
GraphView graphView = (GraphView) findViewById(R.id.graph);
LineGraphSeries<DataPoint> series = new LineGraphSeries<>();
int size = Pn_points.size();
TextView i2 = (TextView) findViewById(R.id.size);
i2.setText(Integer.toString(size));
double x, y;
for (int i = 0; i < size; i++) {
x = Math.round(Mn_points.get(i) / 1000000 * 100.0) / 100.0;
y = Math.round(Pn_points.get(i) / 1000 * 100.0) / 100.0;
series.appendData(new DataPoint(x, y), true, size);
}
graphView.addSeries(series);
问题:
当我将appendData()的大小参数设置为数据列表的大小时,图表没有显示所有数据点。仅当我将此参数设置为较小的值(例如 10)时,图表才能正确显示。
预期行为:
图表应显示 Pn_points 和 Mn_points 中的所有数据点。 问题:
使用尺寸时,什么可能导致图表无法显示所有数据点? 如何确保所有数据点都正确显示在图表上? 故障排除尝试:
更改了尺寸参数:设置较小的值可以,但不是一个实际的解决方案。 检查数据范围:验证 x 和 y 值是否在合理范围内。 更新了 GraphView 库:确保 GraphView 是最新的。 谢谢您的帮助!
appendData 的最后一个参数是您希望在图表中拥有的点的最大大小。然后 graphview 将删除旧点以避免内存泄漏。这通常是一个静态值,如 100 左右。