我正在使用iOS图表(https://github.com/danielgindi/Charts)可视化一些数据集。我需要能够可视化并与包含400万多个点的大型数据集进行交互。但是,在图形渲染之前和之后尝试与数据进行交互时,我遇到了严重的延迟。

起初,我根本无法显示数据,但是能够通过将图表类型从直线切换为散点图来找到解决方法。

现在,我可以可视化数据集,但是在单击图形的特定区域时,加载图形需要大约30秒,而每个标记大约需要10秒才能弹出。缩放功能也明显延迟。

我已经尝试在较小的数据集上使用这些功能,并确认当数据较少时它们可以按预期工作。

如果有帮助,代码结构如下:

Populate dataPoints with X/Y coordinates

Initialize ScatterChartDataSet with dataPoints

Initialize ScatterChartData object with the set

Set graph.data equal to the data object


因此,到最后,我希望能够使用Charts可视化约400万个数据点,并在不造成重大延迟的情况下实现用户交互。关于如何加快速度的任何想法?先感谢您!

最佳答案

我认为当您尝试在屏幕上绘制整个数据集时,您将无法加快渲染速度。无论如何都是徒劳的,因为您不会看到所有数据点-您有400万个点,但最多只有几千个像素。我认为您有两种选择:

通过使用setVisibleXRangeMaximum()限制可见数据的范围,并让用户滚动查看数据

-要么-

自己将数据点抽取到合理数量的可显示点。

09-25 16:33
查看更多