我正在使用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()限制可见数据的范围,并让用户滚动查看数据
-要么-
自己将数据点抽取到合理数量的可显示点。