【问题标题】:Core Plot Gallery real time plot design criteria核心情节画廊实时情节设计标准
【发布时间】:2016-07-27 01:29:00
【问题描述】:

我对 CorePlotGallery 示例实时绘图设置的 RealTimePlot.m 的一些好奇:

// Plot space
CPTXYPlotSpace * plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:@0.0 length:@(kMaxDataPoints - 2)];
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:@0.0 length:@1.0];
plotSpace.allowsUserInteraction = YES;

它记录了一系列点 - kMaxDataPoints,最初为 52,这似乎是从初始窗口/视图大小开始的绘图点的可见范围。

委托 newData 方法修剪要添加的最早点,以维护此队列,但我的问题是这个值 (52) 是如何得出的?

即使用户捏/缩放,是否可以在运行时计算这个可见范围?

之后修剪点不是更好吗 - 添加之后,当添加点的数量已知时,从范围开始?

【问题讨论】:

    标签: objective-c macos core-plot scatter-plot


    【解决方案1】:

    这是通过说“看起来不错”而不是任何经验方法得出的“幻数”。当然,您可以根据绘图区域的大小来计算它。使用常量只是一个捷径。由于应用程序的设计,我们知道图表在 iOS 上不会改变大小,所以它是一个合理的捷径。

    我不明白问题的最后一部分。

    【讨论】:

    • 在示例中,当达到阈值时,将删除一个点,因为要添加一个点。我在想数据收集可能是分散的,需要添加的点未知,所以直到之后才知道数量。在测试中,我后来移动了删除,似乎没问题 - 也许我更喜欢它?如何计算地块面积?
    • 我们先删除旧数据,这样在删除旧数据时就不必再移动新数据了。除非您有大量数据,否则它可能没有太大区别。您可以根据需要添加或删除任意数量的点 — 为简单起见,该示例仅使用一个。绘图区是CALayer 的子类。在图形上调用-layoutIfNeeded,然后您可以读取绘图区域的bounds 以获取其大小。
    • 不明白边界如何告诉我可见范围,所以我只是试验,直到对于我的 16x16 符号,40 变成了幻数!
    • 绘图空间的绘图范围告诉您将可见的数据值。绘图区域边界告诉您可用于显示它们的物理空间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多