我有两个 ArrayList 对象,分别代表大量数据点的 X 和 Y 坐标,我想在 Android 应用程序中使用 GraphView 库来绘制这些数据点。虽然我知道如何使用 LineGraphSeries 构造函数绘制有限数量的点,但我不确定如何有效地处理更大的数据集。
有限积分示例代码:
GraphView graph = (GraphView) findViewById(R.id.graph);
LineGraphSeries 系列 = new LineGraphSeries(new DataPoint[] { 新数据点(0, 1), 新数据点(1, 5), 新数据点(2, 3), 新数据点(3, 2), 新数据点(4, 6) }); graph.addSeries(系列);
问题:
我需要从 ArrayList 对象中绘制数千个点。如何将这些列表转换为 GraphView 可以使用的格式,而无需手动创建每个 DataPoint?
代码片段:
这是我的 ArrayList 对象:
ArrayList<Double> xValues = new ArrayList<>();
ArrayList<Double> yValues = new ArrayList<>();
// 假设这些列表填充有数千个点
我尝试过的:
在循环中手动创建 DataPoint 对象(对于大型数据集效率不高)。 查看 GraphView 文档以寻找处理大型数据集的方法,但找不到合适的方法。 问题:
如何高效地将 ArrayList 数据传递到 GraphView 以绘制具有数千个点的线性图表?
尝试的解决方案:
我尝试使用 loo 将 ArrayList 转换为 DataPoint 对象数组
DataPoint[] dataPoints = new DataPoint[xValues.size()];
for (int i = 0; i < xValues.size(); i++) {
dataPoints[i] = new DataPoint(xValues.get(i), yValues.get(i));
}
LineGraphSeries<DataPoint> series = new LineGraphSeries<>(dataPoints);
graph.addSeries(series);
有没有更有效的方法来处理这个问题?
感谢您的协助!
你可以这样做,
LineGraphSeries<DataPoint> series = new LineGraphSeries<DataPoint>(new DataPoint[] {
new DataPoint(X[0], Y[0]),
new DataPoint(X[1], Y[1]),
new DataPoint(X[2], Y[2]),
new DataPoint(X[3], Y[3]),
new DataPoint(X[4], Y[4])
});
或
If u have bulk of data means use `for loop`
这可能对你有帮助。
如果你想用 1000 个点填充
LineGraphSeries
那么你应该考虑定义一个列表并在构造 的对象时传递它
LineGraphSeries
班级
List<DataPoint> myPointList = ....
LineGraphSeries<DataPoint> series = new LineGraphSeries<DataPoint>(Arrays.asList(myPointList));
....