使用Core Plot在iPhone上实时绘图?

21

我想使用core-plot来动态绘制折线图。数据不会一次性到位,我们将动态地逐点接收。

是否可以使用core-plot动态绘制图表,即在接收到(x,y)点时逐点绘制?

请帮帮我,谢谢。


嘿,布拉德。感谢你的评论。你能否建议一个更近期的教程吗?提前致谢。 - Mehdi Mahmoudi
1
这里有一个教程(法语),但代码是英文的:http://www.geckogeek.fr/installer-et-utiliser-coreplot-sur-iphone-ipad.html - Vinzius
1
非常感谢,这样做更简单了 :) - Mehdi Mahmoudi
2个回答

20

是的,你可以相对容易地实现这一点。对于每个接收到的数据点,将其附加到要显示的值数组中。当这些数据点进入时,在Core Plot图表上调用-reloadData(或只需调用特定的绘图),重新绘制图形,并在响应-numbersForPlot:field:recordIndexRange:委托方法时传递刚刚添加值的数组。

如果需要调整情节范围以跟踪您的数据点(用于移动的滚动条),请重新计算X轴的新CPPlotRange并设置情节空间的xRange属性为该值。

使用CPTestApp-iPhoneAAPLotStockPlot示例作为设置线图总体的模板,并从该起点进行修改。

我在科学应用程序中在Mac上执行类似的操作: alt text
(来源:sunsetlakesoftware.com)


谢谢Brad。 我想再请你帮个忙。如何在Core-plot中实现ZoomIn和ZoomOut?如果您能提供一些示例,那就太好了。 请帮帮我。 - Appbrain
@ram007:目前还没有原生支持捏合缩放的功能。您可以将图形放置在UIScrollView中,然后根据滚动视图缩放比例的变化重新调整图形范围,但这也会在捏合事件期间缩放轴线。不幸的是,最好的方法是通过修改CPResponder以处理多点触控手势来添加此功能,这需要一些工作。 - Brad Larson
@BradLarson 如果一开始不知道最小值和最大值,你如何制作实时图表?图表是如何创建比例尺的? - Nic Hubbard
@Nic - 当你添加点时,可以根据需要调整比例尺。如果你希望保持固定的Y高度,可以这样做,或者你可以根据追加的新值进行缩放。同样,X比例尺可以随着输入样本移动。根据新数据如何调整图形取决于你。 - Brad Larson
@BradLarson,我该如何在音频文件播放时接收音频字节,并根据声音强度绘制图形? - Tirth

8
听起来你可能会用到我制作的演示项目,相关信息我在这里发布了(与核心绘图无关)。
它绘制了一个图表,但很容易修改为使用除“心跳”之外的其他输入……请参考EAGLView.m中第320行,输入数据将存储在数组中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接