如何将 ArrayList 传递到 GraphView 以绘制大量点

问题描述 投票:0回答:2

我有两个 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);

有没有更有效的方法来处理这个问题?

感谢您的协助!

android arraylist android-graphview
2个回答
0
投票

你可以这样做,

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`

这可能对你有帮助。


0
投票

如果你想用 1000 个点填充

LineGraphSeries
那么你应该考虑定义一个列表并在构造 的对象时传递它
LineGraphSeries
班级

示例

List<DataPoint> myPointList = ....
LineGraphSeries<DataPoint> series = new LineGraphSeries<DataPoint>(Arrays.asList(myPointList));
....
© www.soinside.com 2019 - 2024. All rights reserved.