2016-11-14 42 views
0

目前我正在使用已经建立的应用程序,它使用核心绘图和特定的使用ScatterPlot绘制图形。此图形是使用从连接的蓝牙设备获取的值绘制的,因此图形是动态绘制的。 X轴具有时间值,Y轴具有来自BLE设备的值的XY图形。核心图 - 添加OutOfRange绘制图形,动态变化与标签“OL”

现在需要在图形中添加带有标签“OL”的超出范围的值,并且它不是蓝牙设备的固定常数值(它更多的是在BLE中构建的模型对象中设置的状态图层与该状态获得的垃圾值,我们可以找出它的超出范围值)。因此,例如,如果我最初得到“OL”值,那么我需要将它添加到标记为“OL”的0以上的图上。 '-OL'低于0并带有标签“-OL”。从BLE中获得的值将不断添加到数组中,并使用此数组重新绘制图形。

因此,预期行为如下: 如果我得到200作为阵列中的值,并且如果阵列具有OL值,则OL值必须绘制在200以上,并且如果BLE的下一个值是300将被添加阵列,因为OL在200以上,现在OL必须被绘制在300以上。

我尝试了2-3种不同的方法来找出解决方案,但没有成功。

图像的预期要求:

Image of the expected requirement

需要有人帮忙,如果其可以实现这一点使用核心情节。

+0

您是否需要OL值处的连接线与图形中的颜色不同,或者是否将点与相同的数据线连接? –

+0

是的,Eric的期望和形象一样。 –

+0

@EricSkroch我对此有何更新? –

回答

0

您需要红线的第二个散点图。在主图中,对于超出有效范围的值,从数据源返回nil。这将留下线中的空白,以填补其他情节。

对于第二个图,从每个数据索引中返回nil,除了那些超出有效范围的数据索引。返回这些点的范围限制值。您还需要返回超出范围值两侧的两个点的正确范围内值,以将该线连接到主要绘图线。

+0

与2个不同的散点图我们可以区分值,但我的问题也是提供OL字符串作为标签在“Y”轴像在图像。我创建了一个NSFormatter子类,并重写stringForObject和stringForValue,并返回许多网站指定的OL,但是我面临的问题是如何在格式化程序类中标识其是否为OL值。你能否尽快提供你的意见。 –

+0

使用自定义的y轴标签('CPTAxisLabelingPolicyNone')以极限值显示“OL”。您可能不需要自定义格式化程序来执行此操作。正常格式化数值,并在创建自定义标签时返回OL值的“OL”字符串。如果OL值根据新数据更改,请更新滴答位置和标签以匹配新值,并重新加载绘图数据以根据新的OL值在正确位置绘制红色线段。 –

+0

谢谢Eric的回复。我是新的核心plot.I需要更多的信息w.r.t你提供的解决方案。我尝试了自己并Google搜索,但没有成功。 “返回这些点的范围限制值。您还需要返回超出范围值两侧的两个点的正确范围内的值,以将该线连接到主要的绘图线。“ - 您能否指导我如何实现这一点。 –