【问题标题】:iphone: Use Core Plot with large number of data point, or another graphing solution?iphone:使用具有大量数据点的 Core Plot,还是其他图形解决方案?
【发布时间】:2010-12-01 10:20:39
【问题描述】:

我想使用核心图,但在我着手实现它之前,我想知道它如何处理大量数据点。我们想在折线图上显示的一些数据有大约 5000 个数据点。

核心图能否在屏幕上显示所有这些数据而无需滚动查看更多数据?它会很快加载这么多点吗? core plot 会缓存这样的大图吗?

任何关于这方面的 cmet 都会很棒。

【问题讨论】:

    标签: iphone core-graphics core-plot


    【解决方案1】:

    核心图能否在屏幕上显示所有这些数据,而无需滚动查看更多数据?

    当然,绘图空间和坐标轴的比例与数据点的数量无关。

    它会很快加载这么多点吗?

    这取决于您开始使用的格式(Core Plot 支持多种获取数据的方式)、您使用的设备以及您如何定义“相当快”。我的直觉是,无论您使用哪种格式,加载数据都不会成为您的瓶颈——绘制 5000 个点会。您可能必须尝试一下,看看它是否能满足您的需求。

    核心图是否会缓存像这样较大的图?

    它以一种有效的格式缓存数据,并且有一些方法可以添加和删除数据点,而无需重新加载所有内容。它不会显式缓存位图。 Core Plot 使用 Core Animation 来处理所有的图形元素,因此它利用了 CA 内置的缓存和优化。

    【讨论】:

    • 我尝试了一个包含大约 2300 个数据点的测试,核心图需要将近 60 秒才能在 iPhone 4 上加载图表。奇怪的是,我自己使用 CA 构建的轻量级图表只需几秒钟即可加载,这是加载数据点的两倍。为什么核心剧情会这么慢?
    • Core Plot 是一个通用框架——它可能会检查比您的自定义解决方案更多的选项。它确实存在大型数据集的已知性能问题,但您可以采取一些措施来提高性能。在您的绘图上设置 cachePrecision = CPPlotCachePrecisionDouble。不要使用绘图符号。仅使用不透明的颜色。
    • 嗨,我也遇到了 Coreplot 的问题,因为我在绘图中应用了 1000 个数据后性能变得非常慢。你能给我一个使用 core-plot 创建项目的例子吗5000条数据绘图带放大缩小功能,性能不会变慢?谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多